- · Niveau : INTERMÉDIAIRE
- · Compatibilité : IE 4+ Netscape 4+
- · Fichier à télécharger
C’est là toute la puissance des méthodes Flash. En se basant sur le niveau ou "level" d’une animation Flash et en précisant son " target ", vous pouvez accéder directement au movieClip de votre choix. Arrêter, partir, zommer, rendre invisible un movieClip etc. Ce tutoriel donne en exemple la plupart des méthodes, le tout exécuter avec grande simplicité sans aucune fonction Javascript, c’est à dire du Javascript directement dans un hyperlien HTML !!
Le Target ou la cible
Tout repose sur l’identification du movieClip à manipuler. Les méthodes qui peuvent être associés à un movieClip demandent toujours un target. Le Target est le chemin d’accès au movieClip dans l’architecture de l’objet, en d’autres mots, un Flash complet. Avant tout il faut identifier le niveau ou "level" et ensuite le nom que vous avez donné (dans Flash) à votre movieClip. Le niveau s’identifie toujours par "_level" suivit d’un numéro. Le niveau principal ou "master level" étant 0. Donc, si vous avez un movieClip sur le timeline principal, il doit être identifié comme ceci:
_level0/nomDuMovieClip
Si le movieClip et dans un autre movieClip:
_level0/nomDuMovieClip1/nomDuMovieClip2
Et si le movieClip se retrouve sur le niveau 1
_level1/nomDuMovieClip
De cette façon, votre commande n’affectera que le movieClip et non le Flash en entier. L’exemple suivant exécute la plupart des méthodes Flash. Le Flash n’a qu’un layer, un frame sur un seul timeline. Le frame 1 ne contient qu’un movieClip fort simple qui boucle sans arrêt. Les boutons contrôlent l’animation ou le movieClip et non le Flash en entier à l’exeption de la rotation. Les petits boutons envoient les commandes au Flash à l’aide du Javascript directement dans un lien HTML, les boutons plus gros sont dans un formulaire, question de démontrer une autre façon de faire.
Bouton avec liens Javascript
Bouton de formulaire avec saisie de l’événement "onClick" et du Javascript
Télécharger l’exemple complet: flashjs.zip
Exemple complet: Noter que le nom du Flash est MonFlash_B et que le nom du movieClip Animation. ATTENTION Netscape: Vous devez absolument mettre swLiveConnect="true" suivit de name="MonFlash_B" à la fin. Noter que Netscape 6 n’a pas "swLiveConnect" ça ne fonctionne donc pas. Netscape 6 n’utilise même plus EMBED mais OBJECT.
<html>
<head>
<script type="text/javascript" language="javascript">
<!-- Début
// Fonction pour afficher toutes les propriété du MovieClip "animation"
function Aff_propriete() {
alert("PROPRIÉTÉ DU MOVIE CLIP (ANIMATION)\n\nPosition (_x) = "+window.document.MonFlash_B.TGetProperty(’/animation’, 0)+"\nPosition (_y) = "+window.document.MonFlash_B.TGetProperty(’/animation’, 1)+"\nX_SCALE = "+window.document.MonFlash_B.TGetProperty(’/animation’, 2)+"\nY_SCALE = "+window.document.MonFlash_B.TGetProperty(’/animation’, 3)+"\nFrame courrant = "+window.document.MonFlash_B.TGetProperty(’/animation’, 4)+"\nNombre de frame = "+window.document.MonFlash_B.TGetProperty(’/animation’, 5)+"\nALPHA = "+window.document.MonFlash_B.TGetProperty(’/animation’, 6)+"\nVisibilité = "+window.document.MonFlash_B.TGetProperty(’/animation’, 7)+"\nLargeur = "+window.document.MonFlash_B.TGetProperty(’/animation’, 8)+"\nHauteur = "+window.document.MonFlash_B.TGetProperty(’/animation’, 9)+"\nRotation = "+window.document.MonFlash_B.TGetProperty(’/animation’, 10)+"\nTARGET = "+window.document.MonFlash_B.TGetProperty(’/animation’, 11)+"\nFrame chargé = "+window.document.MonFlash_B.TGetProperty(’/animation’, 12)+"\nNom = "+window.document.MonFlash_B.TGetProperty(’/animation’, 13)+"\nDROP_TARGET = "+window.document.MonFlash_B.TGetProperty(’/animation’, 14)+"\nURL = "+window.document.MonFlash_B.TGetProperty(’/animation’, 15)+"\n\nPROPRIÉTÉS GLOBALES\nQualité haute = "+window.document.MonFlash_B.TGetProperty(’/animation’, 16)+"\nRectangle Focus = "+window.document.MonFlash_B.TGetProperty(’/animation’, 17)+"\nSOUND_BUF_TIME = "+window.document.MonFlash_B.TGetProperty(’/animation’, 18));
}
// fin -->
</script>
</head>
<body>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=4,0,0,0" ID="MonFlash_B" width="100" height="100">
<param name="movie" value="b2.swf">
<param name="loop" value="false">
<param name="quality" value="best">
<param name="bgcolor" value="#d6d3ce">
<embed src="b2.swf" loop="false" quality="best" bgcolor="#d6d3ce" width="100" height="100" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" swLiveConnect="true" name="MonFlash_B">
</embed>
</object>
<!-- Contrôle du movieClip "animation" -->
<a href=’javascript:window.document.MonFlash_B.TStopPlay("_level0/animation")’> Stop</a>
<a href=’javascript:window.document.MonFlash_B.TGotoFrame("_level0/animation", window.document.MonFlash_B.TCurrentFrame("_level0/animation")-1)’> Reculer</a>
<a href=’javascript:window.document.MonFlash_B.TPlay("_level0/animation")’> Play</a>
<a href=’javascript:window.document.MonFlash_B.TGotoFrame("_level0/animation", window.document.MonFlash_B.TCurrentFrame("_level0/animation")+1)’> Avancer</a>
<a href=’javascript:window.document.MonFlash_B.Zoom(200)’> Zoom out</a>
<a href=’javascript:window.document.MonFlash_B.Zoom(0)’> Rétablir</a>
<a href=’javascript:window.document.MonFlash_B.Zoom(50)’> Zomm in</a>
<a href=’javascript:window.document.MonFlash_B.TGotoFrame("_level0/animation", 1)’> Frame 1</a>
<a href=’javascript:window.document.MonFlash_B.TGotoFrame("_level0/animation", 8)’> Frame 8</a>
<!-- Affichage des propriétés -->
<form name="form">
<input name="btn" type="button" value="Liste des propriété" onclick="Aff_propriete()" />
</form>
<!-- Modifier les propriétés avec un formulaire -->
<form name="form2">
<input name="btn" type="button" value="Rotation" onclick="window.document.MonFlash_B.TSetProperty(’/’, 10, 45)" />
<input name="btn" type="button" value="Alpha" onclick="window.document.MonFlash_B.TSetProperty(’/animation’, 6, 50)" />
<input name="btn" type="button" value="Invisible" onclick="window.document.MonFlash_B.TSetProperty(’/animation’, 7, 0)" />
<input name="btn" type="button" value="Visible" onclick="window.document.MonFlash_B.TSetProperty(’/animation’, 7, 1)" />
</form>
</body>
</html>
Note sur le contrôle d’un Flash sur une autre cadre (frameset htnl)
Si le Flash est sur un autre cadre HTML, vous n’avez qu’à ajouter le nom du cadre:
parent.nomDuCadre.document.MonFlash_B