Affichage Loader et bouclage d'animation - Flash/ActionScript - Programmation
Marsh Posté le 08-12-2009 à 16:57:26
Normal, il faut que tu comprenne que l'execution du script est syncrone à la cadence d'image, ce que j'entend par là, c'est que, sauf evenement contraire, Flash exécutera ton script qu'une seule fois, et le repetera QUE si il est amener à REvenir sur ton image clé qui contient le code...
Par ailleurs, tu n'as pas mis de stop(); sur la premiere image clé qui stop l'animation (jusqu'à que le chargement soit fini)...
Il faut donc que tu arrête la tête de lecture sur cette image, et qu'à chaque frame (25 fois par seconde donc..) il rééxecute le script qui calcule le pourcentage chargé..., puis verifié si celui-ci est égale à 100, auquel cas, il passe à la suite !
En script (actionscript 2), ça donne :
Code :
|
(Double cliquer sur le cadre de code pour retirer les n° de ligne qui s'imprègne au copié/collé)
Certaines lignes peuvent paraitre superflux, comme les "var", mais c'est indispensable en terme de propreté de code...
En effet, ça dit à flash "je crée une variable, ce sera un nombre..."
ça évite de prendre inutilement des ressources CPU pour flash, dédiées à "deviner intelligemment" qui est quoi...
Marsh Posté le 08-12-2009 à 18:20:03
ça me parait parfait tout ça. J'ai tout passé en AS2 par contre. (je suis sur Flash CS3)
Je comprends pas bien ce que fait "this.onEnterFrame" mais je vais chercher.
Merci à toi,
Marsh Posté le 08-12-2009 à 19:07:39
Le onEnterFrame permet d'executer le code qu'il contient à chaque frame (à chaque entrée de frame quoi ).
Il faut bien entendu distinguer le concept de "frame" entre l'unité temporel et les key-frames de la timeline...
Je vais te donner le code en AS3 (je ne sais pas pourquoi je me suis imaginé que tu utilisais AS2) :
Deja, en AS3, le principe est d'avoir des "evenement" et de les "écouter" afin d'exécuter des fonctions...
Autrement dit, il y a des "causes" qui vont "causer" des "conséquence"
Les évènements que l'on va écouter sont : ProgressEvent.PROGRESS (=> "pendant la progression du chargement" ) ainsi que Event.COMPLETE (=> la "fin du chargement" )...
Ces évènements sont écouter sur l'objet loaderInfo (propre à AS3) qui n'est autre que l'informateur sur le chargement de ton flash...
l'écoute d'un évenement est appelé de cette manière :
[monObjet].addEventListener([evenement que l'on espionne], [fonction executée si l'evenement est vrai]);
Code :
|
C'est mieux de t'habituer à AS3
Ça parait compliqué mais on s'y fait vite ! et on ne s'en passe plus... Le piege, c'est que AS2 parait bcp plus simple d'autant plus qu'il pardonne bcp d'erreur, mais utiliser AS3 est avantageux...
D'une part, il est plus puissant et rapide, d'une autre, il est plus similaire aux autres langages "C-Like"...
Apprendre l'AS3, aide à assimiler bien plus facilement le C/Python/PHP/JavaScript/ Java et j'en passe...
Marsh Posté le 08-12-2009 à 13:07:07
Bonjour,
J'ai 2 problèmes avec mon animation sur laquelle j'ai une photo qui défile et qui doit boucler. Un peu nul en ActionScript, je me prend la tête depuis plusieurs heures dessus dans trouver de solution valable.
1. Mon loader n'affiche pas le % dans le texte dynamique appelé "pourcent"
2. Pour faire boucler mon animation flash, j'ai mis sur la dernière image clé "gotoAndStop(2);" (normalement c'est gotoAndPlay(2); mais j'ai mis Stop pour debug). Or quand j'exporte mon anim, il retourne à l'image 1 à la dernière image...
La source fla est ici. http://alpha.charade-concept.fr/flash/Bandeau05.fla
---------------
Tibet libre !