====== Créer une application contenant Instrumenpoche ====== 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. ===== Chargement ===== 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. ==== Préambule ==== 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. ===== Paramétrage ===== 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; ==== Liste des paramètres ==== 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 ==== Chargement de fichiers ==== 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(""); // 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; ===== Affichage d'une animation ===== 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(""); } ===== Paramétrage a posteriori ===== 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; ==== Accès aux instruments ==== 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 : * le crayon : ''CrayonIep.crayon'' * le compas : ''CompasIep.compas'' * la règle : ''RegleIep.regle'' * le rapporteur : ''RapporteurIep.rapporteur'' * l'équerre : ''EquerreIep.equerre'' * la règle-équerre : ''RequerreIep.requerre'' Exemple : si on veut tester la position du compas, on étudie les valeurs de ''CompasIep.compas._x'' et ''CompasIep.compas._y''. ==== Actualisation des instruments ==== 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 : - Modifier les options éventuellement - Recréer les instruments en faisant : var instrus = new InstrumentsIep(); - Si on a modifié la liste des instruments, il faut mettre le menu à jour par : 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); ===== Tests ===== 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 : ==== Test du tracé d'un cercle ==== **paramètres** * objet:"cercle"; * abscisse_centre, ordonnee_centre : coordonnées du centre du cercle souhaité * rayon : rayon du cercle souhaité * precision_centre : marge d'erreur accordée pour le centre, en pixels * precision_rayon : marge d'erreur accordée pour le rayon **renvoie** * 1 si un bon cercle est tracé * 2 si un bon cercle, mais incomplet, est tracé * 0 sinon **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"); } ==== Test du placement d'un point ==== **paramètres :** * objet:"point"; * abscisse,ordonnee : coordonnées du point voulu * precision : la distance entre le point placé et le point voulu doit être inférieure à ce nombre * nom : le point peut être nommé, paramètre facultatif : s'il est absent, on accepte n'importe quel nom **renvoie :** * 1 si le bon point est placé * 2 si le bon point est placé, mais mal nommé * 0 sinon **Exemple :** Construction de racine carrée de deux à la règle et au compas ==== Test de l'existence d'un segment tracé avec le crayon ==== **paramètres :** * objet : "segment_crayon" * abscisse1, ordonnee1,abscisse2, ordonnee2 : coordonnées des extrémités du segment * precision : la distance entre le point placé et le point voulu doit être inférieure à ce nombre **renvoie :** * 1 si le bon segment est tracé * 0 sinon **Exemple :** http://instrumenpoche.sesamath.net/v2/exercices/base/segment.html ==== Test de l'existence d'un segment de longueur donnée tracé avec le crayon ==== **paramètres :** * objet : "longueur_segment_crayon" * longueur : longueur demandée, en pixels * precision : l'écart accepté entre la longueur voulue et celle du segment effectivement tracé, en pixels **renvoie :** le nombre de segments de la bonne longueur qui sont tracés **Exemple :** http://instrumenpoche.sesamath.net/v2/exercices/base/longueur_segment.html ===== Macros ===== 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''). ====Construire un point équidistant==== 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') :** * parametres.distance : la distance rajoutée à la demi-distance entre les deux extrémités (défaut : 20) * parametres.direct : si le triangle ABM est direct (défaut : true) * parametres.couleur : la couleur du tracé (défaut : Instrumenpoche.couleur) * parametres.epaisseur : l'épaisseur du tracé (défaut : Instrumenpoche.epaisseur) * parametres.angle : l'angle parcouru par le compas avant et après le point d'intersection (défaut : 10, ce qui signifie que le compas tracera des arcs de 20°) * parametres.id1 et parametres.id2 : les identifiants des deux arcs de cercles tracés. **appel de la fonction** : MacroIep.placer_point_equidistant(xa,ya,xb,yb,parametres)