begin process at 2012 05 27 00:27:21
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Flash / Flash MX

 > 

Scripts

 > 

ActionScript

 > 

Fonction pour creer de multiples timers


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Fonction pour creer de multiples timers

vendredi 24 avril 2009 à 19:10:17 | Fonction pour creer de multiples timers

Yode

Bonjour,


J'ai décidé de tenter de faire (enfin!) une animation sans utiliser la timeline de Flash.

Premier obstacle : je veux faire apparaître les éléments de la page l'un après l'autre. Pour cela donc, bien entendu, je me tourne naturellement vers les timers. Voilà donc la forme que commence à prendre le script :

===================================
function intro() { // on lance juste cette fonction qui va créer les différents timers
    var logoTimer:Timer=new Timer(1000,1); // premier timer qui lance des anims au bout d'1s
    logoTimer.addEventListener("timer", e_logoIn);
    logoTimer.start();
    var homeTimer:Timer=new Timer(2000,1);// second timer qui lance des anims au bout de 2s
    homeTimer.addEventListener("timer", e_homeIn);
    homeTimer.start();
    var produitTimer:Timer=new Timer(4000,1);// troisième timer qui lance des anims au bout de 4s
    produitTimer.addEventListener("timer", e_produitIn);
    produitTimer.start();
}
function e_logoIn(e:Event):void {//apparition des premiers éléments
    var introLogo:Tween=new Tween(fondLogo,"alpha",Regular.easeOut,0,1,2,true);
    var introFondGris:Tween=new Tween(fondGris,"alpha",Regular.easeOut,0,1,1,true);
    var introFondCourbes:Tween=new Tween(fondCourbes,"alpha",Regular.easeOut,0,1,5,true);
}
function e_homeIn(e:Event):void {// etc...
    var introModele:Tween=new Tween(homeModele,"alpha",Regular.easeOut,0,1,2,true);
    var introTitre:Tween=new Tween(homeTitre,"alpha",Regular.easeOut,0,1,3,true);
    var introBaseline:Tween=new Tween(homeBase,"alpha",Regular.easeOut,0,1,4,true);

}
function e_produitIn(e:Event):void {// etc.....
    var introProduit:Tween=new Tween(homeSt70,"alpha",Regular.easeOut,0,1,3,true);
    var introDecouvrez:Tween=new Tween(btn_decouvrez,"alpha",Regular.easeOut,0,1,5,true);
}
===============================

J'ai donc fini par me demander si il n'y avait pas moyen de définir une fonction permettant de faciliter la rédaction et d'alleger le code.

Je suis donc parti sur ce code, qui ne fonctionne évidemment pas du tout, je vous mets même pas la tonne d'erreurs que Flash me sort en export (sauf si vous y tenez mais je pense que pour les codeurs chevronnés les aberrations vont être évidentes) :

===============================
function createTimer(timerName:String,speed:uint,repeat:uint,fonction:String):void {
    timerName:Timer=new Timer(speed,repeat);
    timerName.addEventListener("timer", fonction);
    timerName.start();
}
===============================

Et je l'appelle avec par exemple :

===============================
createTimer(produitTimer,4000,1,e_logoIn);
===============================

Ma question est donc de savoir si une telle fonction est faisable, et si oui, comment ? Suis-je au moins sur la bonne voie ?

Merci d'avance !
vendredi 24 avril 2009 à 21:08:24 | Re : Fonction pour creer de multiples timers

Girou

Membre Club
Bonsoir,

effectivement, ca doit générer un paquet d'erreurs :o)

function createTimer(timerName:String,speed:uint,repeat:uint,fonction:String):void {
    timerName:Timer=new Timer(speed,repeat); // tu ne peux pas creer une variable a partir d'une variable...
    timerName.addEventListener("timer", fonction); fonction doit être... une fonction et tu lui transmet une chaine de caractères
    timerName.start();
}

pas sur que cela fonctionne mais part plutot sur quelquechose comme ceci

function createTimer(speed:uint,repeat:uint,callBack:function):void {
    var timerName:Timer=new Timer(speed*1000,repeat);
    timerName.addEventListener("timer", callBack);
    timerName.start();
}

createTimer(4,1,e_logoIn);

se serait sans doute aussi utile de détruire le timer créer une fois le timer terminé... sinon tu va encombrer la mémoire, mais c'est une autre histoire

@+

signature not found
vendredi 24 avril 2009 à 21:22:15 | Re : Fonction pour creer de multiples timers

Yode

Okay, merci bien !

J'ai fait u test rapide avec le code que tu donne, mais ça ne semble pas marcher.
Je suis pour le moment parti sur une solution en mixant l'appel de timers et l'enchainement de tweens avec des fonctions du type de :
introFond.addEventListener(TweenEvent.MOTION_FINISH, e_homeOut);

Mais dès que j'aurai du temps je me replongerai dans ma fonction de génération de timers, j'ai bien envie de tirer ça au clair !

Merci encore pour cette piste, j'ai au moins pu voir à quel point j'étais à côté de la plaque :p


vendredi 24 avril 2009 à 21:32:05 | Re : Fonction pour creer de multiples timers

Girou

Membre Club
Bien !

pour info, c'est plutot ceci (utilisation d'un timerEvent

function createTimer(speed:uint,repeat:uint,callBack:function):void {
    var timerName:Timer=new Timer(speed*1000,repeat);
    timerName.addEventListener(TimerEvent.TIMER, callBack);
    timerName.start();
}

et

function e_logoIn(e:TimerEvent=null):void {//apparition des premiers éléments ...}

createTimer(4,1,e_logoIn);

@+

signature not found


Cette discussion est classée dans : timer, var, tween, alpha, regular


Répondre à ce message

Sujets en rapport avec ce message

Problème tween sous AS3 [ par biguiz ] Bonjour à tous et à toutes, Je cherche des solutions sur le web depuis un moment déjà mais sans réponses. Voici mon problème : je crée un cdrom dans l Probleme chargement image [ par jobe06 ] Bonjour, J'ai créer une animation en flash avec une fonction qui fait apparaitre l'image charger avec une transition et du texte... Jaimerai que te charger et afficher des variables depuis php pour slider photo sans xml [ par helleden ] bonjours a vous. etant debutant et apres plusieurs heures de recherche je fais appel a votre aide en désespoir de cause. en effet, je voudrais affiche Banniere flash+XML bug [ par sapayaa ] Bonjour à tous Je viens vers ce cher forum en appel à l'aide car je reste perplexe. Débutant dans le monde de la programmation et d'AS3, je suis en actionscript defnition d'une duree entre clip [ par ludo4432 ] Salutations à vous tous [^^happy17] j'aurais une petite question à vous posez [^^drapeaublanc] je voudrais savoir comment je pourrais définir une va régularité fonction timer [ par astrolabbcracker ] bonjour et merci de lire ce message J'ai un probleme de régularité avec la fonction Timer en As3 : exemple d'un petit bout de code pour calculer le Probleme de codage Action script AS3 [ par stef97232 ] Bonjour, Je suis totalement novice dans le codage d'AS3 sur Flash CS4, mon but était de faire une porte qui coulisse latéralement, code que j'ai récu compteur pour de faux [ par vincentduceau ] bonjour à tous je souhaiterais juste faire un compteur pour de faux qui toute les 500 ms compte pour aller jusqu'à cent avec l'affichage d'un texte. g stockage variable plus affectation élément array [ par Ariranha ] RE : bonjour, Comme expliquer dans un message antérieur, je suis en train d'essayer de faire un jeu du plombier. Me voici avec un autre problème pou


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales