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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.