Adaptation code > barre de navigation > sequences multiples
vassilisix
Messages postés10Date d'inscriptionjeudi 10 février 2011StatutMembreDernière intervention18 février 2011
-
16 févr. 2011 à 23:48
vassilisix
Messages postés10Date d'inscriptionjeudi 10 février 2011StatutMembreDernière intervention18 février 2011
-
18 févr. 2011 à 13:43
Bonjour à tous !
Je bidouille un diaporama flash avec pan/zoom sur les images, piste son, barre de navigation draggable, temps restant/écoulé. Au bout de 4 jours, j'ai finalement réussi à assembler qqchose d'honnête (en m'inspirant d'autres devs).
Ca fonctionne parfaitement dans un SWF indépendant. Mais quand j'importe ca comme "sequence2" dans un swf qui contient déjà une "séquence1", ca déconne complètement. J'ai réussi à bidouiller le Timer. Mais impossible d'adapter la barre de navigation pour fonctionner dans un SWF à séquences multiples. Voici le code de la barre, trouvé dans un tuto FLashkit. Vous avez des idées ?
BBFUNK01
Messages postés1310Date d'inscriptionjeudi 16 juillet 2009StatutMembreDernière intervention20 juin 20146 16 févr. 2011 à 23:52
Hello,
oublie la construction d'un fichier en plusieurs séquences, ce n'est bon qu'à semer le trouble dans le fonctionnement de ton swf. Privilégie le chargement de swf externe(s) dans ton swf principal au détriment de l'import de séquence(s).
A plus ,
BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
vassilisix
Messages postés10Date d'inscriptionjeudi 10 février 2011StatutMembreDernière intervention18 février 2011 16 févr. 2011 à 23:57
Ben ouais j'avais déjà lu ca quelque part
sauf que dans ma stratégie de chargement, il vaut mieux que tout soit chargé dans le même swf...
Sans ca, les lecteurs devront attendre plusieurs fois, ca risque de les saouler ...
BBFUNK01
Messages postés1310Date d'inscriptionjeudi 16 juillet 2009StatutMembreDernière intervention20 juin 20146 17 févr. 2011 à 01:39
Re,
si : la solution c'est justement de charger des swf externes dans ton swf principal.
Par exemple : si ton swf en l'état contient 5 séquences, au lieu d'ajouter les 4 dernières séquences dans ton swf, pour chaque séquence tu crées un swf externe et tu les charges dans ton swf principal.
Une autre manière de faire serait de transformer tes séquences en clips, et à ce moment-là tu pourras conserver un seul fichier swf : tu n'auras plus qu'à afficher tes clips en faisant des attachMovie() par exemple.
Bref, il y a plusieurs façons de procéder, mais il faut garder à l'idée que si tu veux tout stocker dans un seul et même swf il faut éviter que ce swf ait un poids trop conséquent, car si tu as dans l'idée d'offrir à tes visiteurs tout le contenu rapidement... En admettant que ton swf pèse 10mo je pense qu'il n'attendront pas tous le chargement complet du swf pour quitter ton site. Donc le but c'est de trouver le juste milieu : tout stocker dans un seul swf si le poids n'est pas trop important / si le poids est trop important -> découper ton fichier en swf externes et les charger au fur et à mesure (rien ne t'empêche de les charger à la volée et de les afficher seulement lorsque le visiteur le souhaite).
A plus ,
BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
vassilisix
Messages postés10Date d'inscriptionjeudi 10 février 2011StatutMembreDernière intervention18 février 2011 17 févr. 2011 à 10:27
Intéressant tout ca :)
J'ai lu quelque part que Flash chargeait les contenus progressivement, qu'il ne chargeait jamais les 10mo d'une anim d'un coup. Qu'il commencait la lecture avant la fin du téléchargement. Ce que j'ai pu vérifier en faisait un petit test. DOnc finalement, que je transforme mes animations en clip, ou que je les laisse en SWF et que je les charge avant la fin de la lecture, ca ne change pas grand chose ... si ? Du coup j'ai bien envie de partie sur la technique "clip". Sauf que j'ignore comment transformer un SWF complexe en clip ...
Merci pour toutes ces réponses expertes BBfunk :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
vassilisix
Messages postés10Date d'inscriptionjeudi 10 février 2011StatutMembreDernière intervention18 février 2011 17 févr. 2011 à 18:03
Triste nouvelle !
Quand je charge le diaporama en SWF externe via createEmptyMovieClip et loadMovie, j'ai le même problème. La barre de navigation du diaporama ne fonctionne plus. Je suis complètement pommé ... qu'est-ce qui cloche dans ce code (affiché plus haut) ?
BBFUNK01
Messages postés1310Date d'inscriptionjeudi 16 juillet 2009StatutMembreDernière intervention20 juin 20146 17 févr. 2011 à 19:17
Hello,
la "technique clips" c'est envisageable et ça n'aura pas pour incidence que tu aies à modifier énormément ton code, par contre je persiste et signe : si ton .swf pèse plus de 2/3 mégas -> crées des swf externes ! 2/3 mégas ça ne paraît pas si gros que ça, mais pour les gens qui ont une connexion bas débit c'est énorme. Dans l'idéal un .swf doit faire au max quelques centaines de ko.
Pour alléger au max ton .swf il faut par exemple au mieux stocker les images en externe, quelles qu'elles soient, histoire de gagner quelques ko.
Et comme effectivement flash player charge et lit de façon asynchrone les .swf, moins tu lui donnes de données à charger d'un coup... Mieux c'est tout de même.
Pour en revenir à ton soucis de code : si le code n'est pas de toi, le mieux c'est encore de refaire toi-même de A à Z ton animation en t'en inspirant, et en essayant aau mieux de corriger ce qui est corrigeable dans le "modèle". Rafistoler des codes pêchés ici et là ça marche bien au début pour des trucs "fastoches", mais plus on va vers du complexe et moins c'est jouable -> le mieux je pense c'est que tu réfléchisses aux contraintes qui s'imposent et de repenser ton animation pour que ce soit fluide et sans bavure.
Juste un exemple -> ton code contient des "_root" à tout va... Pour jouer avec des swf externes ce sera la galère ! "_root" est réellement à bannir de ton code, sauf cas extrême.
Néanmoins je serai curieux de savoir combien pèse ton swf, s'il n'est pas trop lourd il n'y a peut-être pas de quoi tout remettre en question.
A plus ,
BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
vassilisix
Messages postés10Date d'inscriptionjeudi 10 février 2011StatutMembreDernière intervention18 février 2011 17 févr. 2011 à 19:33
héhé merci BBfunk de t'occuper de mes soucis :)
Pour être honnête, je n'ai pas le niveau pour tout recoder. Je mériterais une bonne formation ;-) Mais là j'ai un truc à rendre pour début mars. Le flasheur maison est chargé jusqu'au cou, c'est à moi d'assurer ...
En suivant tes conseils, je me suis résolu à scinder l'anim en 6 swf (accueil + 6 diaporamas). Je pensais que grâce à ça, le code de la barre de navigation cesserait de déconner. Mais en fait, il continue de déconner pareil. Manifestement, quand tu loadmovie un SWF depuis un autre swf, il ne se comporte pas comme si tu le lançais tout seul... Bref je suis dans la m ...
J'ai éliminé autant de roots que possible. Mais il en reste 3. Quant aux global, manifestement, je ne peux pas y toucher ... J'ai tenté de les remplacer par des this mais ca fout tout en l'air.
BBFUNK01
Messages postés1310Date d'inscriptionjeudi 16 juillet 2009StatutMembreDernière intervention20 juin 20146 17 févr. 2011 à 21:29
Re,
en fait il y a un truc pour transmettre des données, ou des instructions, du swf conteneur à des swf contenus -> LocalConnection().
LocalConnection() permet donc par exemple de transmettre une variable d'un swf à un autre, exemple : admettons que tu aies un swf principal qui contient un menu, si tu charges un swf externe qui contient un lecteur mp3 tu pourras alors grâce à LocalConnection() "piloter" le lecteur mp3 du swf chargé, et ce dans ton swf principal.
Je te laisse le soin de te documenter sur LocalConnection() pour voir si tu en auras l'utilité, mais comme tu charges des swf externes je pense que tu en auras besoin... Et m'est avis que ton problème de barre de navigation pourrait être solutionné grâce à ça.
A plus ,
BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
vassilisix
Messages postés10Date d'inscriptionjeudi 10 février 2011StatutMembreDernière intervention18 février 2011 17 févr. 2011 à 21:31
7 heures de recherche et j'ai enfin trouvé la solution ... j'ai fini par comprendre que c'était onload qui faisait déconner l'ensemble ... j'ai tenté de remplacer onload ... impossible ... et pis j'ai carrément eliminé onload pour que le code s'exécute sans être encapsulé dans une fonction ... et là miracle !
CA MARCHE !!!
argh flash je t'aime et je te déteste