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 !