A l’occasion de la réalisation d’un jeu en Flash pour un client, il a fallu que je crée un preloader en l’adaptant à la nouvelle syntaxe AS3…
Dans l’exemple suivant, nous utilisons un simple champ de texte affichant le pourcentage de l’animation chargée (pourcentage_txt) et un clip contenant une image statique (preloader_mc). Ces 2 éléments sont sur le scénario principal.
Comme à mon habitude, je crée d’abord un calques tout en haut, nommé Actions.
Code sur l’image 1 du calque Actions
stop(); // on arrête la tête de lecture this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, progressListener); this.loaderInfo.addEventListener(Event.COMPLETE, completeListener); function progressListener(e:ProgressEvent):void { var charge:Number = e.bytesLoaded / e.bytesTotal; var pourcentage:int = charge * 100; pourcentage_txt.text = "" + pourcentage + "%"; preloader_mc.barre_mc.scaleX = charge; } function completeListener(e:Event):void { loaderInfo.removeEventListener(ProgressEvent.PROGRESS, progressListener); loaderInfo.removeEventListener(Event.COMPLETE, completeListener); removeChild(pourcentage_txt); pourcentage = null; gotoAndPlay("reglement"); // on avance la tête de lecture }
Plus simple qu’autrefois non ? 2 fonctions et 2 lignes pour invoquer tout ça !
Bien sûr, pour faire plus élégant encore, il faudrait créer une classe générique Preloader… Nous verrons ça une prochaine fois.