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.