Class javascript [dialogue avec flash]

Soyez le premier à donner votre avis sur cette source.

Vue 20 195 fois - Téléchargée 1 664 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
nicoxxx Messages postés 11 Date d'inscription dimanche 12 novembre 2000 Statut Membre Dernière intervention 20 décembre 2006
20 déc. 2006 à 21:44
Merciiiiiiiiiiiiiiiiiiiiii AFAD !!!....ça marche, je confirme bien...m ckoi au juste "la méthode Satay" ???
tazou34 Messages postés 3 Date d'inscription mardi 6 juin 2006 Statut Membre Dernière intervention 20 décembre 2006
20 déc. 2006 à 21:30
Merci AFAD

je testerai ça à l'occas
afad Messages postés 715 Date d'inscription samedi 29 mars 2003 Statut Membre Dernière intervention 10 septembre 2009
20 déc. 2006 à 15:10
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
nicoxxx Messages postés 11 Date d'inscription dimanche 12 novembre 2000 Statut Membre Dernière intervention 20 décembre 2006
20 déc. 2006 à 08:44
peut-etre une piste avec des FSCommand non ????
tazou34 Messages postés 3 Date d'inscription mardi 6 juin 2006 Statut Membre Dernière intervention 20 décembre 2006
19 déc. 2006 à 22:08
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.