Ce document explique comment utiliser et paramétrer Instrumenpoche dans une animation Flash.
Pour toute la suite, on suppose qu'Instrumenpoche est installé dans un dossier nommé iep/, ce dossier étant au même niveau que l'animation Flash.
Pour utiliser Instrumenpoche, il suffit de créer un clip quelconque et d'y charger iep.swf :
var iep = _root.createEmptyMovieClip("iep", 92); iep.loadMovie("iep/iep.swf");
NB : le nom de variable Instrumenpoche
est réservé. Voir plus bas pour son utilisation.
Le fichier .fla qui va charger instrumenpoche doit contenir plusieurs composants utilisés par instrumenpoche. Pour cela, il faut ouvrir la fenêtre “composants” puis faire glisser sur la scène les composants “window”, “textarea”, “radiobutton” et “numericstepper”. On peut ensuite les effacer. Cette manipulation aura eu pour effet de les placer dans la bibliothèque. Ils pourront alors être utilisés par iep.swf.
Avant de charger iep.swf, on peut prédéfinir des paramètres. Pour cela, on crée un objet qui doit se nommer iep_parametres et être un enfant du parent du clip contenant Instrumenpoche.
var iep_parametres:Object = new Object();
On affecte ensuite à cet objet les paramètres qu'on veut faire passer à Instrumenpoche. Par exemple :
iep_parametres.image_direct = 12;
Les paramètres qu'on peut ajouter à iep_parametres sont les suivants, avec leurs valeurs par défaut :
* abscisse_init = 200; // abscisse d'un instrument lors de son apparition sur la scene * ordonnee_init = 400; // ordonnee d'un instrument lors de son apparition sur la scene * geometrie = true; // indique si on peut manier les instruments * langue = "fr"; // la langue de l'interface * abscisse_menu = 50; // abscisse à laquelle apparaissent les menus * ordonnee_menu = 10; // ordonnée à laquelle apparaissent les menus * apercu = false; // le mode apercu montre juste la figure final * apercu_image = 0; // l'étape à laquelle on montre l'aperçu éventuel * image_direct = 0; // la première étape qui apparait, si une animation est chargée * vecteur = false; // option de dessin * pointille = false; // option de dessin * couleur = 0; // option de dessin : couleur du trait * epaisseur = 0; // option de dessin :épaisseur du trait /*************************** OPTIONS DU RAPPORTEUR ***************************/ * options_rapporteur_circulaire = false; // ciculaire sans possibilité de changer * options_rapporteur_semi = false; // semicirculaire sans possibilité de changer * options_rapporteur_double = false; // double grad sans possibilité de changer * options_rapporteur_simple = false; // simple grad sans possibilité de changer * options_rapporteur_fixe = false; // fixe sans possibilité de changer * options_rapporteur_sanszoom = false; // pas de zoom possible * options_rapporteur_sanscoordonnees = false; // mettre true pour masquer les coordonnées /***************************** OPTIONS DE LA REGLE ****************************/ * options_regle_fixe = false; // fixe sans possibilité de changer * options_regle_sanstrace = false; // sans possibilité de tracer le long * options_regle_sansgraduation = false; // pas de graduation * options_regle_sanscoordonnees = false; /***************************** OPTIONS DE L'EQUERRE ****************************/ * options_equerre_fixe = false; // fixe sans possibilité de changer * options_equerre_sanstrace = false; // sans possibilité de tracer le long * options_equerre_sanszoom = false; // pas de zoom possible * options_equerre_sanscoin = false; // pas de sommet à l'angle droit * options_equerre_sansgraduation = false; /***************************** OPTIONS DU COMPAS ****************************/ * options_compas_fixe = false; // fixe sans possibilité de changer * options_compas_ecartfixe = false; // écartement fixe * options_compas_sansgraduation = false; /***************************** OPTIONS DE LA REGLE-EQUERRE ****************************/ * options_requerre_fixe = false; // fixe sans possibilité de changer * options_requerre_sanszoom = false; // pas de zoom possible * options_requerre_sansgraduation = false; /************************ OPTIONS DU CRAYON ************************/ * options_crayon_libre = false; // tracé libre sans possibilité de changer * options_crayon_droit = false; // tracé droit sans possibilité de changer * options_crayon_sansgraduation = false; /************************** OPTIONS DES POINTS ***************************/ * options_point_sansinstrument = false; // on interdit de placer les instruments sur les points * options_point_sanstrace = false; // sans possibilité de tracer de point à point * // on ne montre pas les coordonnées des points dans le curseur options_point_sanscoordonnees = false * // les points ne peuvent pas être déplacés options_point_fixe = false; /********************* OPTIONS POUR LE SCRIPT **********************/ * options_script_nonmodifiable = false; /******************* OPTIONS DES IMAGES *********************/ // les images ne peuvent pas être déplacées à la souris * options_image_sourisfixe = false; // a-t-on les ascenseurs ? * options_image_sansascenseur = false; // empêche-t-on la possibilité de zoomer ? * options_image_sanszoom = false; * liste_instruments = ["crayon","compas","regle","equerre","rapporteur","requerre"]; // les instruments disponibles * boutons_geo = ["pilote","point","texte","repere","palette","image","annuler","restaurer","tempo","script","permuter","valider"]; // les boutons additionnels du menu de géométrie * boutons_lecteur = ["debut", "precedente","pause","lecture","suivante","fin","script","permuter"]; // les boutons du menu de lecture
On peut également prévoir que iep.swf charge des fichiers en définissant :
* iep_anim // nom d'un fichier xml d'animation instrumenpoche * iep_config // nom d'un fichier xml de configuration d'instrumenpoche
NB : iep_config est inutile si on définit les paramètres dans iep_parametres en interne comme expliqué ci-dessus. Pour éviter de charger un fichier xml externe pour l'animation, on peut procéder ainsi après avoir chargé iep.swf :
// je mets iep en mode lecture, c'est surtout important pour les points créés par iep Instrumenpoche.geometrie = false; // je remplace le script qui est dans iep par le mien ScriptIep.code_xml = new XML("<?xml version='1.0' encoding='ISO-8859-1'?><INSTRUMENPOCHE version='2'><action mouvement='montrer' objet='crayon' /><action abscisse='273' ordonnee='225' mouvement='translation' objet='crayon' /></INSTRUMENPOCHE>"); // je demande à iep de dessiner la figure qui correspond au script LecteurIep.place_direct(ScriptIep.code_xml.firstChild.childNodes.length); // je me remets en mode géométrie : on peut maintenant bouger les instruments avec la souris Instrumenpoche.geometrie = true;
Une fois qu'instrumenpoche est chargé, on peut lui faire afficher une animation décrite par un script mon_script. Il suffit d'appeler la fonction LecteurIep.lecture_apres_chargement(mon_script). Par exemple sur un bouton en actionscript on mettra :
on (click) { LecteurIep.lecture_apres_chargement("<INSTRUMENPOCHE version='2'><action mouvement='montrer' objet='crayon' /><action mouvement='translation' objet='crayon' abscisse='50' ordonnee='32' /></INSTRUMENPOCHE>"); }
Tous les paramètres qu'on peut définir dans l'objet iep_parametres sont stockés par instrumenpoche dans l'objet nommé Instrumenpoche. Ils peuvent être modifiés à tout moment.
Par exemple, on peut choisir que les tracés futurs soient en bleu en programmant :
Instrumenpoche.couleur = 0x0000ff;
Chaque instrument est un clip, on peut donc lire ou modifier ses propriétés _x
, _y
, _visible
etc. On peut y accéder ainsi :
CrayonIep.crayon
CompasIep.compas
RegleIep.regle
RapporteurIep.rapporteur
EquerreIep.equerre
RequerreIep.requerre
Exemple : si on veut tester la position du compas, on étudie les valeurs de CompasIep.compas._x
et CompasIep.compas._y
.
On peut avoir besoin de replacer les instruments à leur position d'origine, ou de modifier la liste des instruments accessibles ou encore de modifier leurs options (comme Instrumenpoche.options_rapporteur_fixe par exemple). Dans ce cas, il faut :
var menu_geo = new MenuIep(Instrumenpoche.racine_iep.iep,"menu_geo",100,tab);
où tab est le tableau listant les instruments disponibles et les boutons du menu de géométrie.
Exemple : Si je veux ne donner accès qu'au compas et au rapporteur sans modifier le reste, je programme :
Instrumenpoche.liste_instruments = ["compas","rapporteur"]; // pour créer les instruments var instrus = new InstrumentsIep(Instrumenpoche.racine_iep.iep, Instrumenpoche.liste_instruments); // pour recréer le menu var tab = Instrumenpoche.liste_instruments.concat(Instrumenpoche.boutons_geo); // tab contient la liste des boutons qui apparaitront dans le menu : en général, un bouton pour chaque instrument plus des boutons supplémentaires var menu_geo = new MenuIep(Instrumenpoche.racine_iep.iep,"menu_geo",100,tab);
Exemple : Si on veut juste replacer les instruments à leur position d'origine, on fait :
var instrus = new InstrumentsIep(Instrumenpoche.racine_iep.iep, Instrumenpoche.liste_instruments);
Un test sur le script contenu dans instrumenpoche se fait en appelant la fonction TestIep.est_dans_iep(); qui prend comme paramètre unique un objet. Cet objet admet un paramètre obligatoire, nommé objet, qui indique ce qui est testé. Les autres propriétés de cet objet dépendent de la valeur donnée à objet.
Pour l'instant, sont implémentés :
paramètres
renvoie
Exemple :
var test = TestIep.est_dans_iep({objet:"cercle", abscisse_centre:200, ordonnee_centre:100, rayon:90, precision_centre:2, precision_rayon:2}); if(test == 1){ trace("juste !") }else if(test == 2){ trace("tracé incomplet."); }else{ trace("faux, recommencez"); }
paramètres :
renvoie :
Exemple : Construction de racine carrée de deux à la règle et au compas
paramètres :
renvoie :
Exemple : http://instrumenpoche.sesamath.net/v2/exercices/base/segment.html
paramètres :
renvoie : le nombre de segments de la bonne longueur qui sont tracés
Exemple : http://instrumenpoche.sesamath.net/v2/exercices/base/longueur_segment.html
La classe MacroIep contient des macros pour Instrumenpoche, c'est-à-dire des fonctions qui facilitent la création de morceaux de scripts. Il s'agit d'un ensemble de fonctions actionscript auxquelles on passe des paramètres, et qui renvoient des morceaux de script instrumenpoche correspondant aux constructions voulues, sous forme de texte (objets de type String
).
Cette fonction construit au compas un point M équidistant de deux autres A et B donnés en paramètres.
renvoie un tableau [script de la construction, abscisse du point construit, ordonnée du point construit], ce qui permet de récupérer les coordonnées de ce point pour un usage ultérieur
paramètres obligatoires : xa,ya,xb,yb, les coordonnées des deux points A et B
paramètres facultatifs (à passer dans l'objet 'parametres') :
appel de la fonction :
MacroIep.placer_point_equidistant(xa,ya,xb,yb,parametres)