Précharger une animation

Bolo Michelin

Ce tutoriel vous expliquera comment précharger vos animations à l'aide de code ou du composant Progress Bar. ♪

- Titre : Précharger une animation

- Auteur : Bolo Michelin

- Parution : 23 janvier 2004

- Licence : Cet article est la propriété de www.developpez.com en tant qu'hebergeur ainsi que celle de Bolo en tant que redacteur, ce texte est donc protégé par le code de la propriété intellectuelle et est soumis à la réglementation en vigueur. www.developpez.com ou son auteur se reserve le droit d'apporter des modifications sans préavis. Vous pouvez utiliser cet article comme bon vous semble, faire un lien depuis votre site Web, ou le copier en spécifiant l'auteur et la provenance (www.developpez.com) Le non respect de cette règle equivaudrait à faire une contrefaçon. La responsabilité de www.developpez.com, de l'un de ses membres, ou de la direction ne pourra etre engagé en cas de destruction partielle ou totale des données ou de l'architecture système ou logicielle inhérente à l'utilisation des ses logiciels. Les logiciels decrits ici sont la propriété de leurs auteurs respectifs.

Sommaire

- I. Préchargement avec Action Script (A.S)

- II. Préchargement avec Progress Bar

- II-A. Le mode event

- II-B. Le mode polled

- II-C. Le mode nanual

I - Préchargement avec Action Script (A.S)

Pour précharger une animation, il faut connaitre le poids de l'animation et le nombre de bytes chargés. Depuis Flash Mx deux variables permettent d'avoir ces informations. monClip.getBytesTotal()indique la taille totale, en octets, de l'objet MovieClip spécifié. monClip.getBytesLoaded()indique le nombre d'octets chargés. Pour connaitre tout le long du chargement de l'animation getBytesLoaded() nous devons utiliser une boucle. Nous utiliserons le gestionnaire d'événement monClip.onEnterFrame. Ce gestionnaire d'événement est invoqué quotidiennement à la cadence de l'animation.

_root.onEnterFrame  = function () {// le _root correspond à l'animation
var total = _root.getBytesTotal() // taille de l'animation
var charge = _root.getBytesLoaded() // octés chargés
if( charge >= total) {// quand charge = total , l'animation est chargé
trace("animation chargée")
delete _root.onEnterFrame() // on arrete la boucle
}
}

II - Préchargement avec Progress Bar

La progressBar est un des nouveaux composants de Flash Mx 2004. Ce composant a trois modes event, manual et polled. Ce composant est bien pratique, mais beaucoup plus lourd à charger que le code précédent.

II-A - Le mode event

Dans le mode event,Le contenu chargé émet deux « events »: complete et loader. Dans nous utiliserons également le composant Loader. - Créer un document Flash. Draguer le composant Progress Bar sur la scène.

Dans la propriété du composant:

- le nom de l'instance pbar

- le mode event

On drague le composant loader sur la scène. On lui donne comme instance « loader » et dans contentpath vous mettez l'adresse de l'image ou de votre swf.

Sur la timeline vous mettez le code suivant

// creation d'un event pour le loader
myLoaderListener = new Object();
myLoaderListener.complete = function ( eventObject ) // Lorque loader est complet
{
pbar._visible = false; // on rend la progress bar en invisible
}
loader.addEventListener("complete", myLoaderListener); // on ecoute l'objet

etape1.zip

II-B - Le mode polled

Dans le mode polled , la progressBar utilise les méthodes BytesLoaded et getBytesTotal ode l'objet à téléchargé.

- créer un nouveau document flash et glisser le composant progress bar sur la scène

- nommée le pbar et choisissez le mode polled

- taper loder dans source

Avec le code suivant, nous créons un objet sound loader. La méthode loadSound nous permettra de charger le sound.

var loader:Object = new Sound();
loader.loadSound("son",true);

Animation en format "flash" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://bolo.developpez.com/prechargement/fichiers/prechargement.swf

etape2.zip

II-C - Le mode nanual

Dans le mode manuel, vous devez déterminer les valeurs minimum et maximum en utilisant la méthode setProgres.

_root.onEnterFrame = function(){
total = this.getBytesTotal()
loaded = this.getBytesLoaded()
pbar.setProgress(loaded, total)
if (loaded >= total ) {
// entre le code
}
}