Class javascript [dialogue avec flash]

Soyez le premier à donner votre avis sur cette source.

Vue 19 813 fois - Téléchargée 1 653 fois


Description

Suite à la lecture d'un article sur la possibilité de dialoguer avec une animation flash depuis javascript, je viens de créer un fichier js externe qui vous permettra de piloter plusieurs propriétés de votre animation depuis javascript à travers la creation d'un objet flash, voici la façon de l'utiliser :

Faites un src sur le js externe dans le HEAD (présent dans le zip de la source) :
<script language=javascript src="ASflash.js" type=text/javascript></script>

Puis dans le corps de votre page contenant l'anim,

<script type="text/javascript">

// Creation d'un nouvel objet flash
var flash = new flashID('anim'); // anim = l'identifiant (id) de l'animation

// Exemples de fonctions :
flash.gotoAndStop(10);
flash.clipSetProperty('_root.clip1','_alpha',50);
flash.LoadMovieNum('form.swf',0);
</script>

ATTENTION, Pour dialoguer avec le swf, il faudra l'identifier dans la page HTML par son id (identifiant) et utiliser cette déclaration (Satay) :

<object type="application/x-shockwave-flash" data="anim.swf" width="400" height="400" id="anim">
<param name="movie" value="anim.swf" />
</object>

Remplacer data, width, height, id et le param movie par vos valeurs. l'id doit être celui appelé pour l'objet flashID

Vous pourrez appeler tel ou tel fonction depuis une balise lien, par exemple :

<a href="javascript:flash.play();">Lecture</a>
<a href="javascript:alert(flash.totalFrames());">Nb de frames de l'anim</a>
Des remarques ou améliorations n'hésitez pas.

Source / Exemple :


Liste des fonctions : (Regardez dans ASFlash.js pour la description)

monswf.play();
monswf.stop(); 
monswf.gotoAndStop(10);
monswf.isPlaying(); 
monswf.rewind();
monswf.getVariable('_root.var1'); 
monswf.setVariable('_root.var1','hello!');
monswf.LoadMovieNum('anim1.swf',0);
monswf.getBytesLoaded(); 
monswf.pan(40,50,1);
monswf.zoomRect(0,0,100,100);
monswf.zoom(40);
monswf.totalFrames();
monswf.currentFrame();
monswf.currentLabel();
monswf.clipgotoAndStop('_root.clip1',10);
monswf.clipLabelgotoAndStop('_root.clip1','chapitre1');
monswf.clipPlay('_root.clip1');
monswf.clipStop('_root.clip1');

monswf.ClipGetProperty('_root.clip1','_x');
monswf.ClipSetProperty('_root.clip1','_alpha',50);

Avec les propriétés :
"_x","_y","_xscale","_yscale","_currentframe","_totalframes",
"_alpha","_visibility","_width","_height","_rotation","_target",
"_framesloaded","_name","_droptarget","_url","_highquality",
"_focusrect","_soundbuftime"

Conclusion :


Tout ça avec du Javascript, c'est pas merveilleux ;)

Attention, ces methodes Javascript marchent avec Mozilla et Firefox sous peine d'avoir la dernière version du lecteur flash 7.0.19 ==> Implantation du swfLiveConnect.

A+
aFaD

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
11
Date d'inscription
dimanche 12 novembre 2000
Statut
Membre
Dernière intervention
20 décembre 2006

Merciiiiiiiiiiiiiiiiiiiiii AFAD !!!....ça marche, je confirme bien...m ckoi au juste "la méthode Satay" ???
Messages postés
3
Date d'inscription
mardi 6 juin 2006
Statut
Membre
Dernière intervention
20 décembre 2006

Merci AFAD

je testerai ça à l'occas
Messages postés
715
Date d'inscription
samedi 29 mars 2003
Statut
Membre
Dernière intervention
10 septembre 2009

Salut à tous,

la solution pour que cela fonctionne sur firefox est d'utiliser la méthode Satay pour déclarer le flash. Exemple :

<object type="application/x-shockwave-flash" data="anim.swf" width="400" height="400" id="anim">

</object>

Assurez vous que votre id corresponde bien avec l'objet flashID;

Bonne utilisation
A+
aFaD
Messages postés
11
Date d'inscription
dimanche 12 novembre 2000
Statut
Membre
Dernière intervention
20 décembre 2006

peut-etre une piste avec des FSCommand non ????
Messages postés
3
Date d'inscription
mardi 6 juin 2006
Statut
Membre
Dernière intervention
20 décembre 2006

Désolé NICOXXX je n'ai pas trouvé de solutions pour le faire fonctionner avec firefox
Afficher les 40 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.