TracenPoche peut être relié à d’autres applets écrites en Flash/Action Script, indépendantes du code source de TeP lui-même !
Voici 4 exemples :
tableau de valeurs construit à partir d’une figure (Flash) ou sa version utilisable en classe :
l’applet Tableau affichée dans une page HTML "basique" à côté d’une applet TeP demande à TeP de lui transmettre les valeurs de certaines variables à la demande ou à intervalles réguliers.
un grapheur de fonctions (Flash) ou un autre (Flex) :
on définie la fonction par sa formule f(x) et les intervalles d’affichage en abscisses et ordonnées. L’applet affichée au-dessus de TeP demande à TeP de construire la figure à partir du script qu’elle a fabriqué en dehors de TeP.
le code source compressé (avec les swf) d’une petite démo écrite pour MTASC : une applet TeP est lancée (dans un navigateur, en autonomie avec un player Flash) et la démo récupère la valeur d’une variable du script TeP affiché.
Contrairement à TePnoyau qui s’intègre DANS une applet écrite en Flash/Action Script, pas besoin de connaître les subtilités d’incorporation d’une applet dans une autre, tout en ayant accès à des fonctionnalités suffisantes.
Enfin, cerise sur le gâteau, tout ceci peut se faire librement et gratuitement avec les compilateur Action Script comme MTASC et consors.
Pour le moment, il faut utiliser la version en débogage de TeP contenue avec le code source compressé de la démo.
Envoyer une requête à TeP :
il faut utiliser une variable LocalConnection qui va envoyer à TeP un ordre avec des paramètres. Typiquement :
var sendingLC = new LocalConnection() ;
sendingLC.send("tep", "methodToExecute", ordre, parametre) ;
Recevoir une réponse à la requête : il faut utiliser une variable LocalConnection qui va recevoir de TeP un ordre avec des paramètres. Typiquement :
var receivingLC = new LocalConnection() ;
receivingLC.methodToExecute = function(param1,param2) {
trace("RETOUR :"+param1+" + "+param2) ;
if(param1=="retVal") {
//retourValeur ou returnValue
var valeurs=param2.split("¤") ;
// ...
}
}
receivingLC.connect("tableau") ;
Les 4 requêtes possibles
1-Récupérer le script affiché dans TeP
Envoi de requête :
Réponse à la requête :
exemple :
sendingLC.send("tep", "methodToExecute", "recupScript" ,"") ;
2-Envoyer un script à TeP
Envoi de requête :
Réponse à la requête :
exemple :
sendingLC.send("tep", "methodToExecute", "envoiScript" ,"") ;
3-Récupérer la valeur d’une variable ou d’un texte affiché dans TeP
Envoi de requête :
Réponse à la requête :
exemple :
sendingLC.send("tep", "methodToExecute", "recupVal" ,"x¤aireAB¤texte1") ;
4-Modifier la valeur d’une variable ou d’un texte affiché dans TeP
Envoi de requête :
Réponse à la requête :
exemple :
sendingLC.send("tep", "methodToExecute", "envoiVal" ,"x¤5¤texte1¤coucou¤texte2¤#AB=#") ;
Nom de la connexion de réception
Il est prévu de pouvoir dialoguer avec plusieurs "applets de pilotage" dans une même page HTML.
Pour cela, il faut que TeP sache à qui renvoyer l’information, ie connaître le nom de l’objet LocalConnection à qui répondre. Par défaut, c’est le nom tableau qui est utilisé. Mais on peut le changer lors de l’envoi d’un ordre, il suffit de compléter l’ordre par ¤ suivi du nom de la connection à qui répondre.
Exemple :
sendingLC.send("tep", "methodToExecute", "recupScript¤maconnexion" ,"") ;
Nom de la connexion de TeP
Il est prévu de pouvoir dialoguer avec plusieurs applets de TeP dans une même page HTML.
Pour cela, il faut dire à TeP quel nom de objet LocalConnection il doit utiliser pour attendre un ordre. Par défaut c’est le nom tep. Mais on peut le changer en ajoutant en ligne de commande du code HTML pour insérer une applet Flash le paramètre nomlocalconnection= suivi du nom à utiliser.
Exemple :
Code HTML de la page :
...
... param name="movie" value="tracenpoche.swf ?nomlocalconnection=toto"
...
... src="tracenpoche.swf ?nomlocalconnection=toto"
Code ActionScript pour envoyer un ordre à ce TeP :
sendingLC.send("toto", "methodToExecute", "recupScript" ,"") ;
Dysfonctionnements
Sous FireFox, quand on affiche les 2 applets TeP et Tableau de valeurs, le lecteur Flash rend certaines touches non utilisables dans l’une ou l’autre des applets. Cela ne se produit pas avec MSIE.