====== 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 [[start|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 :
===== Lire une propriété =====
La fonction permettant de lire une propriété est :
get_iep(objet,propriété)
Où ''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)
Où ''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)
où ''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é !");
}