Script de chargement de clips à la queue-leuleu pour limiter la bande passante (avec options) flashmx8 - action script 2

Soyez le premier à donner votre avis sur cette source.

Snippet vu 17 963 fois - Téléchargée 25 fois

Contenu du snippet

Bonjour,

pour optimiser une animation, j'ai voulu mettre toutes les animations complémentaires dans des fichiers swf séparés puis les charger.
J'ai vite laisser tomber cette solution car tous les clips se chargeaient en même temps ce qui saturait la bande passante.
J'ai donc écris un petit script, permettant de charger mes clips, les uns après les autres dans l'ordre uniquement lorsque le clip précédent a été complètement chargé.
Comme j'intègre des clips, il à fallu les placer sur la scène en définissant des positions.
J'ai donc ajouté des options comme la position mais aussi la transparence et la taille.

Voilà, ce code fonctionne, je vous le livre tel que. Bien entendu on pourrait super optimiser les procédures et enlever les écouteurs qui ne servent pas.
Je pense qu'il pourra rendre service.

Mon prochain petit script sera un test de de bande passante qui permettra en dessous d'une certaine valeur, d'aiguiller sur un site mirroir pour répartir la charge de votre site et ainsi offrir à vos visiteurs une bande passante correcte.

Source / Exemple :


/* Script de chargement de clips l'un derrière l'autre (à la queue-leuleu) en avec options

->> Le but étant de limiter la bande passante avec un chargement des clips en même temps  !!

  • /
// Chargement des clips en position taille alpha ... // attention l'ordre est important. // Tab_Movie c'est le tableau des clips // Tab_clip c'est le tableau contenant les noms de clips qui recevrons les animations pour des appels futurs // Tab_Alpha c'est le tableau indiquant le pourcentage de transparence // PosXY est un tableau contenant les couple de position X et Y //TailleXX est un tableau contenant les couples de taille X et Y Tab_Movie = new Array("lign.swf","btn.swf","marques.swf","radios/radio_lanceur.swf","news.swf","compteur/count.swf"); Tab_Clip = new Array("clip0","clip1","clip2","clip3","clip4","clip5"); Tab_Alpha = new Array(100,100,80,100,100,100); var PosXY:Object = (PosX,PosY); PosXY = new Array([193,-23],[1,204],[-10,255],[565,50],[1,356],[635,134]); var TailleXY:Object = (TailleX,TailleY); TailleXY = new Array([100,100],[100,100],[100,100],[60,60],[100,100],[80,80]); //pour info, pour appeler une valeur dans un tableau double : //pour la valeur N°1 soit X on fait : trace(PosXY[0][0]); //pour la valeur N°2 soit Y on fait : trace(PosXY[0][1]); // on lance le procéssus et on initaialise la valeur de n=0 -> n=0; Charge(0); //----------------------------------------------------------------------------------------------------- function Charge(n){ // on passe en paramètre (n) à la fonction puis les valeur des tableau à Movie et à CLIP Movie=Tab_Movie[n]; CLIP=Tab_Clip[n]; mc = new MovieClipLoader(); mc_Ecout = new Object(); mc.addListener(mc_Ecout); var container:MovieClip = createEmptyMovieClip(Tab_Clip[n], n+2); mc.loadClip(Tab_Movie[n], container); container._x=PosXY[n][0]; container._y=PosXY[n][1]; container._xscale=TailleXY[n][0]; container._yscale=TailleXY[n][1]; container._alpha=Tab_Alpha[n]; //----------------------------------------------------------------------------------------------------- mc_Ecout.onLoadInit = function(cible){ //trace(cible + " Pret à l'emploi"); }; mc_Ecout.onLoadStart = function(cible){ // trace("Demande de chargement enregistrée!"); }; mc_Ecout.onLoadProgress = function(cible, loadedBytes, totalBytes){ //trace(Movie+" = "+loadedBytes +"/"+totalBytes); } mc_Ecout.onLoadComplete = function(cible){ // trace(cible +" Chargement terminé!"); n++; if (n<=Tab_Movie.length+1){ Charge(n); //trace(cible+" = "+cible.getDepth()); // indique le niveau de chargement } }; mc_Ecout.onLoadError = function(cible, codeErreur){ //trace (cibel+" = "+codeErreur); }; } //-----------------------------------------------------------------------------------------

Conclusion :


Vous pourvez voir une démo ici (pour l'instant) http://www.toutauto.fr/test/map2.html

Créez une bannière gratuite en flash (bibliothèque de 770 images en fond opaque ou semi-transparent)
Visitez GTBann la bannière interactive à 4 Menus dynamiques et stats en temps réel (100% flash)
Cette bannière résiste aux bloqueurs de pubs les plus puissants (!) http://www.GTBann.com

A voir également

Ajouter un commentaire

Commentaires

cs_demah
Messages postés
1
Date d'inscription
mercredi 4 janvier 2006
Statut
Membre
Dernière intervention
6 octobre 2008
-
Salut c'est super cool ta source mais j'aimerais savoir quel modifiction tu apporterais pour lire chaque swf chargé à un moment donné dans l'animation merci et bravo!!!
GigaCowlJeux
Messages postés
1
Date d'inscription
lundi 12 mai 2003
Statut
Membre
Dernière intervention
16 février 2008
-
Salutations,

J'ai plusieurs remarques / critiques à faire concernant cette source, en espérant qu'elles seront bien prises :
- Il faut penser à indenter tes sources ! J'avoue avoir eu du mal à restructurer tout ça. Toutefois, une pseudo-identation a été effectuée dans les fonctions de l'écouteur.
- Plusieurs variables ne sont pas utilisées, comme CLIP ou Movie. On peut les effacer pour optimiser le code. ( et ainsi éviter une utilisateur inutile de mémoire )
- Il ne pas oublier de préciser que cette fonction est récursive. En effet une fonction récursive est une fonction qui s'appelle elle même dans sa propre définition. Cela peut avoir des effets catastrophiques si on ne sait pas ce que l'on fait. ( Par exemple, une Boucle infinie si on oublie la condition ... )
- Sur ce point, je ne vois pas du tout l'utilité de rajouter 1 à la taille du tableau. Il suffit de remplacer n<=Tab_Movie.length+1 par n < Tab_Movie.length pour éviter de créer un clip vide nommé undefined. :)

Autrement, je ne vois pas quoi dire de plus. J'ai toutefois mis 10 à cette source bien utile, car non seulement le chargement est plus simple, mais on peut en plus de ça contrôler le bon déroulement des opérations pour ensuite faire des actions sur les clips.

Au revoir,
Poubi. :)
jphilippev
Messages postés
253
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
5 décembre 2008
1 -
euh juste une petite erreur en survolant le script ligne 64 => cibel => cible sinon ca a l'air cool
Loubiou
Messages postés
150
Date d'inscription
mercredi 26 juin 2002
Statut
Membre
Dernière intervention
5 décembre 2008
-
Ce code a bien été utile ici : http://www.lagrandetaverne.com
Je n'ai pas fait de timeline de chargement, l'utilisateur patiente en voyant le site se construire sous ses yeux. On allège encore un peu tout le code. eh oui encore pas mal de modem RTC en France dont à Marly-Gomont ;-))
Loubiou
Messages postés
150
Date d'inscription
mercredi 26 juin 2002
Statut
Membre
Dernière intervention
5 décembre 2008
-
Devant un tel enthousiasme je suis dans l'expectative ...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.