Table des matières

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("<?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;

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("<INSTRUMENPOCHE version='2'><action mouvement='montrer' objet='crayon' /><action mouvement='translation' objet='crayon' abscisse='50' ordonnee='32' /></INSTRUMENPOCHE>");
}

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 :

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 :

  1. Modifier les options éventuellement
  2. Recréer les instruments en faisant : var instrus = new InstrumentsIep();
  3. 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

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");
 
    }

Test du placement d'un point

paramètres :

renvoie :

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 :

renvoie :

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 :

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') :

appel de la fonction :

MacroIep.placer_point_equidistant(xa,ya,xb,yb,parametres)