Class javascript [dialogue avec flash]


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

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.