SCRIPT DE CHARGEMENT DE CLIPS À LA QUEUE-LEULEU POUR LIMITER LA BANDE PASSANTE (

cs_Mafassure Messages postés 1058 Date d'inscription jeudi 24 juillet 2003 Statut Modérateur Dernière intervention 14 février 2009 - 2 nov. 2005 à 21:07
cs_demah Messages postés 1 Date d'inscription mercredi 4 janvier 2006 Statut Membre Dernière intervention 6 octobre 2008 - 6 oct. 2008 à 19:26
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/34459-script-de-chargement-de-clips-a-la-queue-leuleu-pour-limiter-la-bande-passante-avec-options-flashmx8-action-script-2

cs_demah Messages postés 1 Date d'inscription mercredi 4 janvier 2006 Statut Membre Dernière intervention 6 octobre 2008
6 oct. 2008 à 19:26
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
16 févr. 2008 à 17:20
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
24 janv. 2008 à 11:34
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
13 mars 2007 à 04:09
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
13 mars 2007 à 04:05
Devant un tel enthousiasme je suis dans l'expectative ...
cs_albator59 Messages postés 44 Date d'inscription lundi 28 juin 2004 Statut Membre Dernière intervention 17 décembre 2006
5 déc. 2006 à 08:33
super cool !
Merci bcq pour ta réponse mais aussi pour ta réactivité !
Loubiou Messages postés 150 Date d'inscription mercredi 26 juin 2002 Statut Membre Dernière intervention 5 décembre 2008
5 déc. 2006 à 02:33
Pour cela, tu indiques le chemin du clip.
Par exemple tu as charger un swf dans le clip2 du Tab_Clip[....
Tu fait _level0.clip2._alpha = 100; et meme chose pour la postion la taille ...
Tu peux aussi réécrire la fonction dans une classe et passer en paramètre l'alpha, la taille ...

expl function Charge(n, alpha, taille, posX, posY, larg, haut){
et tu récupéres les données passées en param pour faire :
.../...

container._alpha = alpha; etc au lieu de charger en variable global des données de tableaux

}
cs_albator59 Messages postés 44 Date d'inscription lundi 28 juin 2004 Statut Membre Dernière intervention 17 décembre 2006
4 déc. 2006 à 23:31
Salut,
châpeau bas pour cette belle source !

P'tite question tout de même :
comment faire pour changer l'une des caractéristiques des SWF chargée (alpha, position, etc...)??
divers436 Messages postés 2 Date d'inscription vendredi 8 avril 2005 Statut Membre Dernière intervention 10 avril 2009
21 nov. 2006 à 17:16
Super bravo depuis le temps que je cherche et que je fait des essais ça va bien m'aider !!
Loubiou Messages postés 150 Date d'inscription mercredi 26 juin 2002 Statut Membre Dernière intervention 5 décembre 2008
28 oct. 2006 à 01:20
Merci pour vos encouragements !!!
En effet, je me suis aperçu que Flash chargeait tout en même temps ce qui réduit considérablement la bande passante.
De plus ce code permet d'alléger sacrément tout en donnant un petit effet.
En général je charge dans cet ordre, le fond, le logo, les animations de fond, la musique ? et les boutons. C'est ce qui se passe sur http://www.toutauto.fr
cs_smoochy Messages postés 183 Date d'inscription mercredi 29 novembre 2000 Statut Membre Dernière intervention 23 avril 2010
27 oct. 2006 à 13:34
tout simplement génial, je mets 20/10
je ne fais pas du flash depuis longtemps et j'ai dû m'accrocher pour comprendre cette source, mais ça en vaut la peine, c'est tellement pratique dès qu'on utilise plusieurs clips que je ne sais pas comment j'ai pu travailler sans avant :-)
mroultabille Messages postés 1 Date d'inscription vendredi 12 mai 2006 Statut Membre Dernière intervention 12 mai 2006
12 mai 2006 à 09:17
Bonjour, je cherche désespéramment un script qui me permette de :
- charger un swf dans un mc1 vide sur la scène toto
- quand la lecture du swf et fini,
- lui demander de charger un nouveau swf2 sur la scène toto dans un mc vide2.
je souhaite ne pas unloader mon swf1 car il y a un fondu entre chaque swf.
Ainsi de suite, car j'ai 23 swf à charger les uns "sur" et pas après les autres.

J'ai eu l'impression que votre script allé résoudre mon soucis, mes j'ai fait un test, et les swf arrivent tous ensembles !!??
je doit sûrement faire une mauvaise manip ou alors je n'ai pas compris le script? °+((

Pourriez-vous m'aider svp ?
merci
ameze Messages postés 8 Date d'inscription vendredi 3 juin 2005 Statut Membre Dernière intervention 7 septembre 2008
10 janv. 2006 à 13:51
salut,j'ai essaye et reessayer toute la noche tout ce queje suis arrive c est ceci:
...
mc_Ecout.onLoadProgress = function(cible, loadedBytes, totalBytes) {
var _loaded = Tab_Movie[Tab_Movie[n]].getBytesLoaded();
var _total = Tab_Movie[Tab_Movie[n]].getBytesTotal();
if (_loaded>10) {
percent = Math.round(_loaded*100/_total);
txtcharge = "";
}
//INCREMENTATION DE LA BARRE DE PROGRESSION
barz.gotoAndStop(percent);
//trace(Movie+" = "+loadedByte
...
peut tu me dire si une erreur vient d ici arce que ca ma donne ca (cest le test):
http://perso.wanadoo.fr/amezeworld/siteloader.swf
la barre progresse toute seule ..
Loubiou Messages postés 150 Date d'inscription mercredi 26 juin 2002 Statut Membre Dernière intervention 5 décembre 2008
9 janv. 2006 à 17:28
M'Bon tu peux utiliser cette ligne qui est en commentaire est installer un texte qui indique la progression c'est nettement plus pro qu'une barre de chargement (à mon avis) en plus la barre de préchargement va te faire perdre du temps et alourdir le projet en général.
J'ai justement dév ce code pour permettre de charger à la queue leuleu des clips dans le but d'épargner de la bande passante. Alors si tu rajoute une barre de préload et que tu as 20 clips à charger, imagines le rendu.
Tu peux donc utiliser ce code ici : //trace(Movie+" = "+loadedBytes +"/"+totalBytes); utiliser cette fonction pour incrémenter la progression de ta barre.
// trace(cible +" Chargement terminé") de onloadcomplete pour la fin.
Il faut utiliser une progress bar avec le code, pas un composant tout fait qui se met sur un clip car tu n'auras jamais la progressio de visible puisqu'il se charge d'après le nom du clip.
Du coup tu vas précharger avec ma procédure et reprécharger avec la progress bar !
Maintenant c'est toi qui voit.
Franchement si je devais ajouter un truc je ferais comme suis :
Je demanderais d'afficher un clip en mouvenent (par exemple un rond en pointillé) que j'effacerais une fois le clip chargé par onloadcomplete.
J'utiliserais ma fonction pour charger le clip puis déchargerais mais bon ça va devenir hyper lourd.
ameze Messages postés 8 Date d'inscription vendredi 3 juin 2005 Statut Membre Dernière intervention 7 septembre 2008
9 janv. 2006 à 13:46
decidement,j'ai beau essayer de comprendre,je n'arrive pas..
ca load les clips comme il faut,mais le pbar ne suit pas
comment doisje proceder.faut il que je cree un progressbar?peut on utiliser le composant de flash?
et sur les 3 parties du code,lesquelles doit on modifier?
Loubiou Messages postés 150 Date d'inscription mercredi 26 juin 2002 Statut Membre Dernière intervention 5 décembre 2008
9 janv. 2006 à 03:04
Bien c'est très simple, ce sont tous les 2 des clips l'un porte CONTAINER c'est le clip conteneur et l'autre CIBLE c'est le clip "cible" comme son nom l'indique.
Si tu suis le code, tu verras ce qu'on met dans container après l'avoir déclaré et ce qui rentre dans cible.
Je ne comprends pas bien ta question, tout est dans le code, il suffit de lire pour voir qu'à un moment cible contient tel clip puis après tel autre. C'est comme dire que A=T*b si T=Pi
et qu'on fait varier b alors on aura sur les variations de A pour Pi*les valeurs de b.
Heu là c'est des maths mais la notation à point c'est pas simple à expliquer. Je pense qu'avant de programmer sous flash, tu devrais commencer par Delphi qui est un bon professeur pour transposer dans d'autres langage la prog objet. Le code de Delphi est naturel donc facilement assimilable à mon avis. Allez courRrage ...
ameze Messages postés 8 Date d'inscription vendredi 3 juin 2005 Statut Membre Dernière intervention 7 septembre 2008
9 janv. 2006 à 02:55
merci beaucoup bonne annee 2006 a toi de meme:
j'ai juste quelquws petites questions que,vu mes connaissances en flash je n arrive pas a resoudre,meme en lisant les aides ..
quel est le role de "container"?
//
mc_Ecout.onLoadStart = function(cible){
que dois on entrer comme cible?
//
sorry,ca me rendrait vraiment service si tu pouvait m eclairer

++
Loubiou Messages postés 150 Date d'inscription mercredi 26 juin 2002 Statut Membre Dernière intervention 5 décembre 2008
8 janv. 2006 à 18:28
Ben je ne me suis pas penché sur la question, dans mon désir de simplification et d'allègement, je me suis dit que je charge par ordre de priorité les clips et selon la vitesse de connection les autres arrivent en suivant jusqu'au dernier.
Pour faire une progress bar, il suffit d'utiliser la fonction : onLoadProgress et de faire évoluer un clip en conséquence. On peut tout aussi bien lancer un clip d'un rond qui tourne puis l'effacer dès que c'est chargé. J'ai mis les fonctions utiles pour un éventuel pilotage d'un progress bar en commentaires, il suffit de les utiliser.
Bonne prog et bonne année 2006 ...!
ameze Messages postés 8 Date d'inscription vendredi 3 juin 2005 Statut Membre Dernière intervention 7 septembre 2008
8 janv. 2006 à 13:11
bonjour,ce script est parfait pour moi,il load exactement comme j'ai besoin..
le probleme,c'est que j'arrive vraiment pas a lui associer une progressbar (une pbar qui gere l'ensemble des clips qui se loadent).
merci beaucoup
tintin119 Messages postés 13 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 22 mai 2008
9 nov. 2005 à 09:53
Bravo, c'est bien pratique, bien commenté... et surtout bien écrit, sans plein de fautes d'orthographe... ;-)
Merci à toi
cs_Alain Proviste Messages postés 908 Date d'inscription jeudi 26 juillet 2001 Statut Modérateur Dernière intervention 1 février 2015 2
3 nov. 2005 à 00:58
ça part d'une bonne intention ;)

mais n'y connaissant pas grand chose en flash je peux pas juger de l'efficacité :D
cs_Mafassure Messages postés 1058 Date d'inscription jeudi 24 juillet 2003 Statut Modérateur Dernière intervention 14 février 2009
2 nov. 2005 à 21:07
Bonne idée !
d'ailleur je comprend pas pourquoi autant de personnes s'entête à utiliser loadMovie(), c'est tellement plus simple à gerer le chargement avec movieClipLoader....
Rejoignez-nous