/** drag.MacroStartDrag(drag:MovieClip, top:Number, right:Number, left:Number, buttom:Number) * l'objet "drag" peut être "dragué" = déplacé avec la souris dans * la zone : top, right, left, buttom * Exemple : MacroStartDrag(_root/group, 10, 100, 300, 210) */ MacroStartDrag(obj, top, left, right, buttom){ left;top; right;buttom; 1; 0; obj; // objet déplacé Code_27( ); } /** drag.MacroEndDrag(drag:MovieClip, top:Number, right:Number, left:Number, buttom:Number) * l'objet "drag" ne peut plus être "dragué" = déplacé avec la souris dans * la zone : top, right, left, buttom * Exemple : MacroEndDrag(_root/group, 10, 100, 300, 210) */ MacroEndDrag(obj, top, left, right, buttom){ Code_28( ); } /** movie_clip.ActionCloneSprite(source:MovieClip, target:MovieClip) * Exemple : ActionCloneSprite( _root/grSource, _rout.grTarget) */ ActionCloneSprite(source, target){ source; target; 15; Code_24( ); } //------------------------------------- GENERIQUES ------------------------------------ /** math.ActionDivInt(val1:Number, val2:Number) * Division entière : le résultat est un entier "val1 / val2". * Exemple : ActionDivInt(200.456, 45.21) */ ActionDivInt(val1, val2){ (val1-(val1%val2)) / val2; } /** math.Round(val1:Number) * retourne un entier arrondi à la valeur la plus proche. */ Round(val1){ ((val1*2+1)-((val1*2+1)%2)) / 2; } /** object.SetProperty(group:MovieClip, propriete:Name, value:Number or String) * modifie une propriété d'un MovieClip * Exemple : SetProperty(_root/toto, _x, 5) */ SetProperty(objet, propriete, value){ objet; propriete; value; code_23( ); } /** object.GetProperty(group:MovieClip, propriete:Name) * lit un propriété d'un MovieClip * Exemple : _root.message_text = GetProperty(_root/toto, _x) */ GetProperty(objet, propriete){ objet; propriete; code_22( ); } SetMember(objet, membre, valeur){ objet; membre; valeur;code_4F( ); } /** object.GetMember(objet:String, member:String) */ GetMember(objet, membre){ objet; membre; code_4E( ); } /* à vérifier SetVariable(nomVar:String, value:Undefined){ * écrit dans une variable : le nom est sous forme texte "_root.nomVar" * Exemple : SetVariable("_root."+"nomVar", 52); */ SetVariable(nomString, value){ nomString; value; code_1D( ); } /* à vérifier GetVariable(nomVar:String, value:Undefined){ * lit dans une variable : le nom est sous forme texte "_root.nomVar" * Exemple : _root.message_text = GetVariable("_root.nom"+"Var"); */ GetVariable(nomString){ nomString; code_1C( ); } /** object.NewObject(nomObjet:String) * construit une occurence d'objet (sans paramètres) * ... avec 1, 2, 3, ou 4 paramètres : * object.NewObject1(nomObjet:String, param1:Object) * object.NewObject2(nomObjet:String, param1:Object, param2:Object) * object.NewObject3(nomObjet:String, param1:Object, param2:Object, param3:Object) * object.NewObject4(nomObjet:String, param1:Object, param2:Object, param3:Object, param4:Object) */ NewObject(macro_ph_nom_objet){ 0; macro_ph_nom_objet; code_40( ); } NewObject1(macro_ph_nom_objet, macro_ph_param1){ macro_ph_param1; 1; macro_ph_nom_objet; code_40( ); } NewObject2(macro_ph_nom_objet, macro_ph_param1, macro_ph_param2){ macro_ph_param2; macro_ph_param1; 2; macro_ph_nom_objet; code_40( ); } NewObject3(macro_ph_nom_objet, macro_ph_param1, macro_ph_param2, macro_ph_param3){ macro_ph_param3; macro_ph_param2; macro_ph_param1; 3; macro_ph_nom_objet; code_40( ); } NewObject4(macro_ph_nom_objet, macro_ph_param1, macro_ph_param2, macro_ph_param3, macro_ph_param4){ macro_ph_param4; macro_ph_param3; macro_ph_param2; macro_ph_param1; 4; macro_ph_nom_objet; code_40( ); } /** object.ActionMethod(obj:Object, nom_method:String){ * Exécute une méthode (0, 1, 2 ou 3 paramètres) * - ActionMethod_1(obj:Object, nom_method:String, param1) * - ActionMethod_2(obj:Object, nom_method:String, param1, param2) * - ActionMethod_3(obj:Object, nom_method:String, param1, param2, param3) * Exemple : ActionMethod_3( _root.bitmap, "setPixel", 200, 100, 0); */ ActionMethod(macro_ph_objet, macro_ph_nom_method){ 0; macro_ph_objet; macro_ph_nom_method; code_52( ); } //---- exécute une méthode (avec 1 paramètres) ActionMethod_1(macro_ph_objet, macro_ph_nom_method, macro_ph_param1){ macro_ph_param1; 1; macro_ph_objet; macro_ph_nom_method; code_52( ); } //---- exécute une méthode (avec 2 paramètres) ActionMethod_2(macro_ph_objet, macro_ph_nom_method, macro_ph_param1, macro_ph_param2){ macro_ph_param2; macro_ph_param1; 2; macro_ph_objet; macro_ph_nom_method; code_52( ); } //---- exécute une méthode (avec 3 paramètres) ActionMethod_3(macro_ph_objet, macro_ph_nom_method, macro_ph_param1, macro_ph_param2, macro_ph_param3){ macro_ph_param3; macro_ph_param2; macro_ph_param1; 3; macro_ph_objet; macro_ph_nom_method; code_52( ); } //---- exécute une méthode (avec 4 paramètres) ActionMethod_4(macro_ph_objet, macro_ph_nom_method, macro_ph_param1, macro_ph_param2, macro_ph_param3, macro_ph_param4){ macro_ph_param4; macro_ph_param3; macro_ph_param2; macro_ph_param1; 4; macro_ph_objet; macro_ph_nom_method; code_52( ); } /** object.ActionCallFunction(nom_fonc:String){ * éxécute une fonction - 0, 1 et 2 paramètres * - ActionCallFunction_1(nom_fonc:String, param1) * - ActionCallFunction_2(nom_fonc:String, param1, param2) */ ActionCallFunction(macro_ph_nom_fonc){ 0; macro_ph_nom_fonc; Code_3D( ); // callFunction } ActionCallFunction_1(macro_ph_nom_fonc, macro_ph_param1){ macro_ph_param1; 1; macro_ph_nom_fonc; Code_3D( ); // callFunction } ActionCallFunction_2(macro_ph_nom_fonc, macro_ph_param1, macro_ph_param2){ macro_ph_param2; macro_ph_param1; 2; macro_ph_nom_fonc; Code_3D( ); // callFunction } GetNextDepth(macro_ph_movie_clip){ ActionCallFunction(macro_ph_movie_clip+".getNextHighestDepth"); } /** movie_clip.ImportSwf(nom_swf:String, target:MovieClip) * Importe un Swf. * Note : le nom_swf ne comporte pas l'extension * Exemple : ActionMethod_3( "toto", _root.gr); */ ImportSwf(macro_ph_swf, macro_ph_target){ niv = ActionCallFunction(macro_ph_target+".getNextHighestDepth"); _root.textph = macro_ph_swf; pos = ActionCallFunction_1("_root.textph.lastIndexOf", "/"); if(pos>=0) { name = ActionCallFunction_1("_root.textph.substring", pos+1); }else{ name = macro_ph_swf; } javaTraceLn("ImportSwf() pos="+pos+" name='"+name+"'"); newswf = ActionCallFunction_2(macro_ph_target+".createEmptyMovieClip", name, niv); ->newswf.loadMovie(macro_ph_swf+".swf"); } ImportSwf_AtPos(macro_ph_swf, xPh, yPh){ niv = ActionCallFunction("_root.getNextHighestDepth"); javaTraceLn("ImportSwf() niv="+niv); loadt = _root.createEmptyMovieClip("loadt",niv); //javaTraceLn("ImportSwf() loadt="+loadt); niv = ActionCallFunction(loadt+".getNextHighestDepth"); _root.textph = macro_ph_swf; pos = ActionCallFunction_1("_root.textph.lastIndexOf", "/"); if(pos>=0) { name = ActionCallFunction_1("_root.textph.substring", pos+1); }else{ name = macro_ph_swf; } javaTraceLn("ImportSwf() loadt="+loadt+" pos="+pos+" name='"+name+"'"); //www newswf = ActionCallFunction_2(loadt+".createEmptyMovieClip", name, niv); ->newswf.loadMovie(macro_ph_swf+".swf"); _root.loadt._x = xPh; _root.loadt._y = yPh; } //------------------------------ Prechargement en pourcentage--------------------------------------- ActionGetLoaded(var_ret_macro_get_precharge){ total_macro_get_precharge = ActionCallFunction("_root.getBytesTotal"); charge100 = 100 * ToNumber(ActionCallFunction("_root.getBytesLoaded")); var_ret_macro_get_precharge = (charge100-(charge100%total_macro_get_precharge)) / total_macro_get_precharge; } ActionGetLoadedTarget(var_ret_macro_get_precharge, target_macro_getPrecharge){ total_macro_get_precharge = ActionCallFunction(target_macro_getPrecharge+".getBytesTotal"); charge100 = 100 * ToNumber(ActionCallFunction(target_macro_getPrecharge+".getBytesLoaded")); var_ret_macro_get_precharge = (charge100-(charge100%total_macro_get_precharge)) / total_macro_get_precharge; } //-------------------------------------- SOURIS --------------------------------------- /** mouse.Fonctions_souris * getXMouse() * getYMouse() */ getXMouse(){_root._xMouse;} getYMouse(){_root._yMouse;} //--------------------------------------- SON ----------------------------------------- /** sound.Mp3Play(nomSon:String) * Joue un son. Arrête les autre sons en cours. * paramètre avec guillemets - ex : Mp3Play("son.mp3"); * note : si le son n'est pas dans le même dossier que l'anim * il faut mettre l'adresse complète * Exemple : Mp3Play("http://www.phildes.com/son.mp3"); */ Mp3Play(macro_nomson){ //--- incrivez le nom du fichier son soundName = macro_nomson; //--- paramètres avancés (experts seulement) sansprechargement = true; phloop = 9999; //--- jouer le son. "phsound"; 0; "Sound";code_40( ); code_1D( ); sansprechargement; soundName; 2; phsound; "loadSound"; code_52( ); phloop; 0;2; phsound; "start"; code_52( ); } /** sound.Mp3Stop() * Stoppe tous ls sons en cours. * Exemple : Mp3Stop( ); */ Mp3Stop(){code_09( );} //------------------------------- Sound track soundGet(ph_num_track){ import( doc,macros,ea_sound); ->ea_sound:getSound( ph_num_track ); } soundGetPause(ph_num_track){ import( doc,macros,ea_sound); ->ea_sound:getSoundPause( ph_num_track ); } soundGetName(ph_num_track){ import( doc,macros,ea_sound); ->ea_sound:getSoundName( ph_num_track ); } soundPlay(ph_sound_name, ph_num_track, ph_action){ import( doc,macros,ea_sound); ->ea_sound:play(ph_sound_name, ph_num_track, ph_action); } soundPause(ph_num_track){ import( doc,macros,ea_sound); ->ea_sound:pause( ph_num_track ); } soundRestart(ph_num_track){ import( doc,macros,ea_sound); ->ea_sound:restart( ph_num_track ); } soundSetVolume(ph_volume, ph_num_track){ import( doc,macros,ea_sound); ->ea_sound:setVolume(ph_volume, ph_num_track ); } soundSetPosition(ph_pos, ph_num_track){ import( doc,macros,ea_sound); ->ea_sound:setPosition(ph_pos, ph_num_track ); } soundSetPan(ph_pan, ph_num_track){ import( doc,macros,ea_sound); ->ea_sound:setPan(ph_pan, ph_num_track ); } soundGetVolume(ph_num_track){ import( doc,macros,ea_sound); ->ea_sound:getVolume( ph_num_track ); } soundGetPan(ph_num_track){ import( doc,macros,ea_sound); ->ea_sound:getPan( ph_num_track ); } soundGetPosition(ph_num_track){ import( doc,macros,ea_sound); ->ea_sound:getPosition( ph_num_track ); } soundGetDuration(ph_num_track){ import( doc,macros,ea_sound); ->ea_sound:getDuration( ph_num_track ); } // exemple : // varsSon = {0}; // SonInitPlay("son.mp3", varsSon); SonInitPlayNow(macro_nomson, macro_varson) { SonInitPlay(macro_nomson, macro_varson, 0, phunknown); } //---------------------------- // exemple : // varsSon = {0}; // varsInitSon = {false, 2}; // SonInitPlay("son.mp3", varsSon, 2, varsInitSon); SonInitPlay(macro_nomson, macro_varson, macro_nbVars, macro_varsInitSon) { macro_ph_varsInitSon = macro_varsInitSon; if(toString(macro_varson)==toString(phunknown) || macro_varson[4]==0){ macro_phsansprechargement = true; // valeur par défaut if(macro_nbVars>0){macro_phsansprechargement = macro_ph_varsInitSon[0];} macro_phloop = 9999; if(macro_nbVars>1){macro_phloop = macro_ph_varsInitSon[1];} //--- jouer le son macro_phsound = NewObject("Sound"); ActionMethod_2(macro_phsound, "loadSound", macro_nomson,macro_phsansprechargement); ActionMethod_2(macro_phsound, "start", 0,macro_phloop); macro_varson = {macro_phsound, macro_nomson,macro_phloop, macro_phsansprechargement, 1}; } } SonPlay(macro_VarSon) { ActionMethod_2( macro_VarSon[0], "loadSound", macro_VarSon[1],macro_VarSon[3]); ActionMethod_2( macro_VarSon[0], "start", 0,macro_VarSon[2]); macro_VarSon[4] = 1; } SonStop(macro_varson) { ActionMethod( macro_VarSon[0], "stop"); macro_varson[4] = 0; } //--------------------------------------- Prechargement ----------------------------------------- /** movie_clip.Preload(text_affiche:Variable_text) * Barre de préchargement de l'animation * Exemple : Preload(_root.preload_text); */ Preload(macro_var_ret){ if(_root._parent == undefined){ Preload_Gr(macro_var_ret, "_root.getBytesTotal", "_root.getBytesLoaded"); }else{ Preload_Gr(macro_var_ret, "_root._parent.getBytesTotal", "_root._parent.getBytesLoaded"); } } Preload_Gr(macro_var_ret, macro_getBytesTotal, macro_getBytesLoaded){ //---------------- total = _root.getBytesTotal()------- "total"; 0; macro_getBytesTotal; Code_3D( ); // callFunction Code_1D( ); // SetVariable //---------------- charge = _root.getBytesTotal()------- "charge"; 0; macro_getBytesLoaded; Code_3D( ); // callFunction Code_1D( ); // SetVariable charge100=100*charge; //--------------- extrait un pourcentage "entier" pourcent = (charge100-(charge100%total)) / total; if(pourcent<1) pourcent=1; macro_var_ret = pourcent; _root.phpourcent1 = pourcent; if (pourcent > 98) { GotoGroup(_root, 1); PlayGroup(_root); _root.phtelechargement="OK"; _root.phpourcent1 = 100; } GotoGroup(->../, _root.phpourcent1); stopGroup(->../); } _initPreloadGroup(ph_group){ import( doc,macros,anim_sys); ->anim_sys:initPreloadGroup(ph_group); } _preloadGroup(ph_group){ import( doc,macros,anim_sys); ->anim_sys:preloadGroup(ph_group, this._parent) } //--------------------------------------- Test touche clavier ------------------------------------ /** key.keyIsDown(keyCode) * Indique si la touche est appuye. * Le code correspond au code action-script * Voir : http://www.actionscript.org/forums/archive/index.php3/t-77405.html * Note : cette fonction doit-être mise dans une action-permanente * sinon le teste n'est réalisé qu'une fois. * */ keyIsDown(keyCode) { keyCode;1;"Key.isDown"; code_3D( ); } /** key.touches_flèches * Ces macros permettent de déplacer un groupe avec ls flèches au clavier. * keyInit() * à placer en 1er, et une seule fois, pour préparer les touches * keyArrow_SetMovieClip(group:MovieClip) * indique le groupe qui sera déplacé par les flèches * keyArrow_SetStepLength(lgP:Number) * indique le nombre de pixel sauté à chaque appuie de touche * keyStop() * les touches ne déplacent plus ce groupe */ keyInit(){ import( doc,macros,key_sys); ->key_sys:KeyInit_(); } keyStop(){ import( doc,macros,key_sys); ->key_sys:KeyStop_(); } keyArrow_SetMovieClip(group){ import( doc,macros,key_sys); ->key_sys:ArrowStart_(group); } keyArrow_SetStepLength(lgP){ import( doc,macros,key_sys); ->key_sys:SetStepLength_(lgP); } //--------------------------------------- Test Collision ------------------------------------------ /** movie_clip.hitTest(group:MovieClip, cible:MovieClip, nomvar:String) * indique si les 2 groupes se sont heurté. Met le résultat dans la variable * Exemple : hitTest(_root/toto, _root/tata, "_root.isHit"); */ hitTest(occurence,cible, nomvar) { nomvar; ActionMethod_1( cible, "hitTest", occurence); code_1D( ); } //import (param){} //--------------------------------------- Déplacement ------------------------------------------ /** walker.run_walk(walkerP:MovieClip, destP:MovieClip, nbStepP:Number, actionP:MovieClip) */ run_walk(walkerP, destP, nbStepP, actionP){ import(doc,macros,walk_ph); walker_ph = NewObject("walk_ph"); //_root.walk_text = walker_ph; ActionMethod_4(walker_ph, "setAttrs", walkerP, destP, nbStepP, actionP); ActionMethod(walker_ph, "startWalk"); } /** walker.run_walk_to(walkerP:MovieClip, xDestP:Number, yDestP:Number, nbStepP:Number, actionP:MovieClip) */ run_walk_to(walkerP, xDestP, yDestP, nbStepP, actionP){ import(doc,macros,walk_ph); walker_ph = NewObject("walk_ph"); //_root.walk_text = walker_ph; ActionMethod_1(walker_ph, "setWalker", walkerP); ActionMethod_2(walker_ph, "setDestination", xDestP, yDestP); ActionMethod_1(walker_ph, "setNbSteps", nbStepP); ActionMethod_1(walker_ph, "setSpriteAction", actionP); ActionMethod(walker_ph, "startWalk"); } /** walker.mobile_step( piece:MovieClip, xScale:Number, yScale:Number ) * Déplacement automatique d'une Piece. * - piece : Movie-clip qui se déplacera * - xScale : écrase sur l'axe des 'x' - en pourcentage. La valeur null = -1 * - yScale : écrase sur l'axe des 'y' - en pourcentage. La valeur null = -1 * Une vitesse et un direction fait bouger la Piece. * Exemple : mobile_step( _this, 80, 40 ); * Note : cette action doit-être placée dans une action "permanente" */ mobile_step(objCurr, xScale, yScale){ import(doc,macros,mobile_sys); ->mobile_sys._step( objCurr, xScale, yScale ); } travelInit(objCurr, objDest, nbSteps, objAction){ import(doc,Mtasc,travel); NewObject4("travel", objCurr, objDest, nbSteps, objAction); } travelStep(phTravel){ ActionMethod(phTravel, "move"); } grattageInit(group, rayonPh){ //_root.debug2_text = "OK 2 "+group; import( doc,macros,mouse_sys); ->mouse_sys:grattage_Init_(group, rayonPh); } livreInit(group){ import( doc,macros,livre,Livre); import( doc,macros,livre,Calcul); ->Livre:init(group); } livre_init_params(alwaysTurnPh, coinLgPh, stepLgPh, stepSpeedLgPh, actionStartTurnPh, actionEndTurnPh){ import( doc,macros,livre,Livre); import( doc,macros,livre,Calcul); ->Livre:initParams((alwaysTurnPh==1), coinLgPh, stepLgPh, stepSpeedLgPh, actionStartTurnPh, actionEndTurnPh); } livre_next_page(){ import( doc,macros,livre,Livre); import( doc,macros,livre,Calcul); nbPages = livre_getNbPages(); pageCurr = livre_getNumPageCurr(); if(pageCurrLivre.turnNextPage(); } } livre_previous_page(){ import( doc,macros,livre,Livre); import( doc,macros,livre,Calcul); ->Livre:turnPreviousPage(); } livre_to_page(numPagePh){ import( doc,macros,livre,Livre); import( doc,macros,livre,Calcul); ->Livre.turnToPage(numPagePh); } livre_getNumPageCurr(){ _root._root.livre_page_curr; } livre_getNumPageTurn(){ _root._root.livre_page_turn; } livre_getPage(numPh){ //_root._root.livre["page"+numPh]; } livre_getNbPages(){ _root.livre_nb_pages; } /** movie_clip.Atteindre(x:Number, y:Number, vitesse:Number) * Pour "s'approcher" d'un point (exemple : suivre le curseur) * Cette macro doit être placée dans une action-permanente * Exemple : Atteindre( _root._xMouse, _root._yMouse, 48); */ Atteindre(abscisse,ordonnee,vitesse){ if(initvar!=5){ posX=->._X; abs=0; PosY=->._Y; ord=0; initvar=5; } ->._X=posX; posX=posX+abs; abs=(abscisse-posX)/vitesse; ->._Y=posY; posY=posY+ord; ord=(ordonnee-posY)/vitesse; } /** movie_clip.ToBack(gr:MovieClip) * Action-permanente à placer dans une Sprite-marche-arrière * Exemple : ToBack(_root.toto); * * Pour lancer une marche arrière, faire l'action programmée : * _this.gotoBack = posRetour; * Exemple : _this.gotoBack = 10; */ ToBack(gr){ if(gr.gotoBack != notdef){ stopGroup(gr); gr.posFrame = getNumFrameGroup(gr); if(gr.posFrame > (gr.gotoBack+1)){ gr.posFrame = gr.posFrame-2; gotoGroup(gr,gr.posFrame); //_root.mess_text = "il fait beau"; }else{ gr.gotoBack=notdef; } } } /** date.DisplayDate() * affiche une date sous la forme : mardi 28 février 2008 * Le texte doit se nommer "date" * Exemple de syntaxe DANS un texte nommé "date" : * date.................................{DisplayDate();} */ DisplayDate(){ jours = {"lundi","mardi","mercredi","jeudi", "vendredi", "samedi", "dimanche"}; mois = {"janvier","fevrier","mars", "avril","mai", "juin", "juillet","aout","septembre", "octobre","novembre","decembre"}; numJour = GetDay( ); jour = GetDate("getDate"); numMois = GetMonth( ); numAnnee = GetDate("getFullYear"); _root.date_text = jours[numJour]+" "+ jour+" "+ mois[numMois]+" "+ numAnnee ; } /** movie_clip.newBitMap(bitmapName:String, grParent:MovieClip, grModel:MovieClip) * Crée un groupe contenant un bitmap. Le groupe "grModel" est dessiné sur ce bitmap. * Exemple : newBitMap("drawer", _this, _root.image); * -> le groupe se nommera "mcdrawer" et sera placé dans "this" * -> le bitmap sera placé dans la variable "_root.drawer" */ newBitMap(bitmapName, grParent, grModel){ import(doc,macros,anim_sys); ->anim_sys.newBitMap_(bitmapName, grParent, grModel); } /** movie_clip.bitmapAction(bitmap:BitmapData, action:String, x:Number, y:Number, r:Number, v:Number ,b:Number) * actions sur la bitmap : setPixel, floodFill */ bitmapAction(bitmap, action, x, y, r, v ,b){ coul = (255*256*256*256)+(r*256*256)+(v*256)+b; ActionMethod_3( bitmap, action,x, y, coul); } bitmapGet(bitmap, action, x, y){ ActionMethod_2( bitmap, action,x, y); } /** movie_clip.SetColor(mc:MovieClip, red:Number, green:Number, blue:Number) * Colorie un groupe (MovieClip) avec une couleur unie. * Les valeurs des couleurs sont désignée entre 0 et 255 (inclus) * Exemple : SetColor(_root.group, 0, 0, 255); * Merci à Christophe_De nous avoir fournit ce source */ SetColor(mc, red, green, blue){ import(doc,macros,anim_sys); ->anim_sys.setColor_(mc, red, green, blue); } /** sprite.compteRebours(yearEnd:Number, monthEnd:Number, dayEnd:Number, hourEnd:Number, minuteEnd:Number, secondEnd:Number) * Affiche le temps restant jusqu'à une date */ compteRebours(yearEnd, monthEnd, dayEnd, hourEnd, minuteEnd, secondEnd){ import(doc,macros,anim_sys); ->anim_sys.compte_rebours(yearEnd, monthEnd-1, dayEnd, hourEnd, minuteEnd, secondEnd); } /** text.hideCars(text_rich:MovieClip) * Cache les carartères du texte 'text_rich' * Exemple : hideCars(_root.txt); */ hideCars(text_rich){ import(doc,macros,text_sys); ->text_sys.hideCars_(text_rich); } /** text.carsEffect(text_rich:MovieClip, mov:Array, timer:Integer, Interval:Integer, action_end:MovieClip) * Effectue un effet sur chaque caratère d'un texte. * En fin d'action, le movieClip 'action_end' est joué * Cette fonction doit être appelée dans un action 'permanente'. * Exemple : carsEffect(_root.txt, tab, 5, 10); * tab = {nbFrames, {xPositions}, {yPositions}, {xScale}, {yScale}, {rotation}, {_alpha} } * (note, si un attribut n'est pas utilisé, le remplacer par "x") * */ carsEffect(text_rich, mov, timer, interval, action_end){ import(doc,macros,text_sys); ->text_sys.moveCars_(text_rich, mov, timer,interval, action_end); } /** text.getCar(text_rich:MovieClip, num_car:Number) * Retourne un caractère placé dans un texte. * Note : ce caractère est un groupe qui contient se caractère. Il sera alors possible de l'animer * Exemple : getCar(_root.txt, 5); => retourne la sixième (début=0) lettre du texte */ getCar(text_rich, num_car){ import(doc,macros,text_sys); ->text_sys.getCar_(text_rich, num_car); } /** text.getNbCars(text_rich:MovieClip) * Retourne le nombre de caractère composant texte. * Exemple : getNbCars(_root.txt); */ getNbCars(text_rich){ import(doc,macros,text_sys); ->text_sys.getNbCars_(text_rich); } /** sprite.videoPlay(name_of_video:String, video_mc:MovieClip, video_area_name:String) * Joue une video dans la zone "Video" * Note : video_area_name est une Piece de l'animation * La Piece "video_area_name" est construire avec le menu : "Objet/Ajouter/Une Video" * Exemple : videoPlay("aa.flv", _root, "VideoZone"); */ videoPlay(name_of_video, video_mc, video_area){ import(doc,macros,image_sys); ->image_sys.videoPlay_(name_of_video, video_mc, video_area); } /** user.EditorAction(scriptP) * Execute un script après une action de l'utilisateur dans l'éditeur. * Exemple : EditorAction("bouton_raccourci_start;6;not_shift;not_ctrl"); */ editorAction(scriptP){ FuncJava_Sys(2, {scriptP}); } /** tab.newTab(nb:Number) */ newTab(nb_ph){ NewObject1("Array", nb_ph); } /** tab.initTab(table:Array) * Exemple : initTab(tab, "tab"); */ initTab(tabval_ph){ nb_ph = GetMember(tabval_ph,"length"); for (i=0; istring_sys:textIndex0_(text_ph); } /** text.stringIndex1(text_ph) * Retourne le premier index. Un index est un nombre * Cet index suit le premier '_' * si il n'y a aucun '_', cette macro retourne -1. * Exemple : stringPrefixe("toto_123_456") retournera le nombre '123' */ stringIndex1(text_ph){ import(doc,macros,string_sys); ->string_sys:numIndex1_(text_ph); } /** text.stringIndex2(text_ph) * Retourne le second index. Un index est un nombre * Cet index suit le second '_' * si il n'y a aucun ou un seul '_', cette macro retourne -1. * Exemple : stringPrefixe("toto_123_456") retournera le nombre '456' */ stringIndex2(text_ph){ import(doc,macros,string_sys); ->string_sys:numIndex2_(text_ph); } /** in_out.xmlRead(file_name_ph:String, action_ph:MovieClip) * Lecture d'un fichier xml * Losrsque la lecture est terminée, le groupe 'action_ph' est joué (play) * Exemple : xmlRead("playlist.xml", _root.xml_read) */ xmlRead(file_name_ph, action_ph){ NewObject2("xml_reader", file_name_ph, action_ph); } /** in_out.xmlGetValue(file_name_ph:String, index_ph:Number) * récupère une valeur lue dans un fichier xml * Exemple : xmlGetValue("playlist.xml", 2) */ xmlGetValue(file_name_ph, index_ph){ ->xml_reader.getVal(file_name_ph, index_ph); } /** tab.getTabLength(tab_ph:Array) * retourne le nombre d'éléments d'une table * Exemple d'utilisation : * tableau = {123,234,345,456}; * lg = getTabLength(tableau); * => 'lg' vaudra 4 */ getTabLength(tab_ph){ GetMember(tab_ph,"length"); } /** drag.dragsInDrops_nbIndexEquals(drag_ph:String, drop_ph:String) * Compte le nombre de drag placés dans des drops qui ont le même 'index' * qu'est-ce qu'un 'index' : c'est un nombre placé à la fin d'un nom. * exemple : toto123 possède l'index 123 * paramètres : 'drag_ph' et 'drop_ph' sont des noms sans index. Ex : 'toto' * Exemple : dragsInDrops_nbIndexEquals("piece_drag", "area_drop") * Vérifie que "piece_drag1" est bien placé dans "area_drop1" */ dragsInDrops_nbIndexEquals(drag_ph, drop_ph){ import(doc,macros,ea_qcm); ActionCallFunction_2("ea_qcm.getNbDragsInDrops",drag_ph, drop_ph); } /** drag.dragsInDrops_IndexsEquals(drag_ph:String, drop_ph:String) * Retourne une table de 'boolean' (vrai/faux) qui, pour chaque Piece draggable * indique si elle est placée dans le drop portant un index identique * Exemple : dragsInDrops_IndexEquals("piece_drag", "area_drop") * Retourne une tableau - exemple : {true,false, true} */ dragsInDrops_IndexEquals(drag_ph, drop_ph){ import(doc,macros,ea_qcm); ActionCallFunction_2("ea_qcm.getTabDragsInDrops",drag_ph, drop_ph); } /** drag.drags_IndexOfDrops(drag_ph:String, drop_ph:String) * Retourne une table de nombre qui, pour chaque Piece draggable, * indique l'index du drop dans lequel il est placé * Exemple : dragsInDrops_IndexEquals("piece_drag", "area_drop") * Retourne une tableau - exemple : {1,3,3} * - ici "piece_drag2" et "piece_drag3" ont été placées dans "area_drop3" */ drags_IndexOfDrops(drag_ph, drop_ph){ import(doc,macros,ea_qcm); ActionCallFunction_2("ea_qcm.getNumsDragsInDrops",drag_ph, drop_ph); } /** pages.displayPage(piece_pages:MovieClip, num_page:Number) * Affiche la page 'num_page' de la piece 'piece_pages' * Note : la Piece 'piece pages' est de type 'pages-successives' * construite avec le menu : Objets_dynamiques * /Objets_clef_en_main * /groupe_composé_de_pages * / ajouter des pages successives * Exemple : displayPage(_root.sequences, 3) * affichera la page 3 (rappel, la 1ère page est numéroté '0') */ displayPage(piece_pages_ph, num_page_ph){ import(doc,macros,ea_anim); ->ea_anim.displayPage_(piece_pages_ph, num_page_ph); } /** pages.gotoPage(num_page:Number) * Change de page. * Important : cette fonction est utilisée pour les actions qui son * à l'intérieur d'une page. * Note : la Piece 'piece pages' est de type 'pages-successives' * construite avec le menu : Objets_dynamiques * /Objets_clef_en_main * /groupe_composé_de_pages * / ajouter des pages successives * Exemple : gotoPage(3) * affichera la page 3 (rappel, la 1ère page est numéroté '0') */ gotoPage(num_page_ph){ import(doc,macros,ea_anim); ->ea_anim.gotoPage_(this._parent, num_page_ph); } /** pages.gotoPageAndFrame(num_page:Number, numFrame:Number) * Change de page, puis dans cette page, saute au temps désiré * Important : cette fonction est utilisée pour les actions qui son * à l'intérieur d'une page. * Note : la Piece 'piece pages' est de type 'pages-successives' * construite avec le menu : Objets_dynamiques * /Objets_clef_en_main * /groupe_composé_de_pages * / ajouter des pages successives * Exemple : gotoPage(3, 10) * affichera la page 3 (rappel, la 1ère page est numéroté '0') * au temps 10 (rappel, la 1er temps est numéroté '0') */ gotoPageAndFrame(num_page_ph, num_frame_ph){ import(doc,macros,ea_anim); ->ea_anim.gotoPageAndFrame_(this._parent, num_page_ph, num_frame_ph); } fxCharsWaves(text_ph){ import( doc,macros,ea_text_fx); ->ea_text_fx.chars_wave(text_ph); } digits2(val_ph){ import( doc,macros,ea_string); ->ea_string.digits2_(val_ph); } digits3(val_ph){ import( doc,macros,ea_string); ->ea_string.digits3_(val_ph); } getSeconds2(){ import( doc,macros,ea_string); ->ea_string.digits2_seconds_(val_ph); } getMinutes2(){ import( doc,macros,ea_string); ->ea_string.digits2_minutes_(val_ph); } getHours2(){ import( doc,macros,ea_string); ->ea_string.digits2_hours_(val_ph); } video_init(ea_video_buffer_time, ea_video_action ){ import( doc,macros,ea_video); ->ea_video.init(ea_video_buffer_time, this.child._parent, ea_video_action); } video_play(ea_video_name){ import( doc,macros,ea_video); ->ea_video.play(ea_video_name); } video_pause(){ import( doc,macros,ea_video); ->ea_video.pause(); } video_restart(){ import( doc,macros,ea_video); ->ea_video.restart(); } video_close(){ import( doc,macros,ea_video); ->ea_video.close(); } stop_group(ea_groupP){ stopGroup(_this[ea_groupP]); }