Outils du site


developpeurs:javascript

Accéder au cœur d'Instrumenpoche par javascript

Avertissement Ce qui suit sera fonctionnel sur la prochaine version d'instrumenpoche : 2.5

Lorsqu'Instrumenpoche est inséré dans une page HTML, il est possible d'accéder aux objets qu'il contient par javascript.

Trois fonctions permettent d'accéder au contenu d'instrumenpoche : la première permet de lire une propriété d'un objet d'instrumenpoche, la deuxième permet de modifier une propriété et la troisième d'exécuter une fonction contenue dans instrumenpoche. Une quatrième fonction (iep_loaded()) est automatiquement appelée au chargement d'instrumenpoche.

Pour avoir la liste des classes d'instrumenpoche et les propriétés et méthodes qu'elles contiennent, voir la page d'accueil pour les développeurs.

Accéder à instrumenpoche

Pour utiliser les fonctions de communication avec instrumenpoche, il est nécessaire d'y avoir accès. Pour cela, on peut définir une fonction qui renvoie une animation Flash contenue dans la page, connaissant son nom. Celle-ci peut être :

function thisMovie(movieName) {
   var isIE = navigator.appName.indexOf("Microsoft") != -1;
   return (isIE) ? window[movieName] : document[movieName];
}

Ainsi, si le fichier SWF d'instrumenpoche se nomme iep, on pourra y avoir accès par :

thisMovie("iep")

Le nom est iep lorsque l'animation est par exemple incluse dans la page HTML par :

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" 
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" 
width="800" height="600" id="iep" align="middle">
<param name="allowScriptAccess" value="always" />
<param name="allowFullScreen" value="true" />
<param name='Flashvars' value='iep_anim_echap=' />
<param name="movie" value="iep.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<embed src="iep.swf" Flashvars='iep_anim_echap='  quality="high" bgcolor="#ffffff" 
     width="800" height="600" name="iep" align="middle" 
     wmode="window" allowScriptAccess="always" allowFullScreen="true" 
     type="application/x-shockwave-flash" 
     pluginspage="http://www.adobe.com/go/getflashplayer_fr" />
</object>

Lire une propriété

La fonction permettant de lire une propriété est :

get_iep(objet,propriété)

objet est un texte désignant l'objet contenant le propriété, et le deuxième argument est un texte désignant la propriété voulue. Par exemple, en détectant instrumenpoche comme ci-dessus, on peut afficher l'abscisse du crayon par :

alert(thisMovie("iep").get_iep("CrayonIep.crayon","_x"));

Modifier une propriété

La fonction permettant de lire une propriété est :

set_iep(objet,propriété,valeur)

objet est un texte désignant l'objet contenant le propriété, et le deuxième argument est un texte désignant la propriété voulue et le troisième la valeur qu'on veut donner à la propriété. Par exemple, en détectant instrumenpoche comme ci-dessus, on peut modifier l'abscisse du crayon par :

thisMovie("iep").set_iep("CrayonIep.crayon","_x",500);

Attention le troisième argument de la fonction est la valeur, et non un texte la désignant. Par exemple, dans

thisMovie("iep").set_iep("CrayonIep.crayon","_visible","true");
thisMovie("iep").set_iep("CrayonIep.crayon","_visible",true);

seule la deuxième ligne est correcte.

Exécuter une fonction

La fonction javascript permettant d'appeler une fonction d'instrumenpoche est :

exec_iep(fonction,paramètres)

fonction est un texte désignant la fonction et paramètres un tableau donnant les paramètres à passer à cette fonction. Il faut donner un tableau même si la fonction ne demande qu'un seul paramètre.

Exemple

thisMovie("iep").exec_iep("UtilitairesIep.alerte",["ok"])

utilise la fonction d'affichage de messages interne à instrumenpoche pour afficher “ok”.

Autre exemple

thisMovie("iep").exec_iep("ImagesIep.charger_image",
   ["http://upload.wikimedia.org/wikipedia/commons/thumb/8/88/Gaucho_in_action.jpg/800px-Gaucho_in_action.jpg",
   1])

charge une image dans instrumenpoche sans que cela modifie le script de l'animation.

Instrumenpoche chargé

Dès que iep.swf est complètement chargé, la fonction javascript iep_loaded() est appelée. Pour effectuer une opération juste après le chargement d'instrumenpoche, il suffit donc de définir dans la page HTML une fonction iep_loaded() qui exécutera les instructions voulues.

Exemple

function iep_loaded(){    
   // j'annonce qu'instrumenpoche et complètement chargé
   alert("iep est chargé !");
}
developpeurs/javascript.txt · Dernière modification: 05/05/2011 16:57 par lzamo