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 :
stop(); var pcharger:Number; var ptotal:Number; var rapport:Number; this.onEnterFrame = function(){ pcharger = this.getBytesLoaded(); ptotal = this.getBytesTotal(); rapport = pcharger / ptotal; pourcent.text = Math.ceil(rapport * 100) + ' %'; if (Math.ceil(rapport * 100) == 100){ delete this.onEnterFrame; gotoAndPlay(2); } }
|
(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...
Message édité par abais le 08-12-2009 à 17:02:19
---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.