Problème de chargement de plusieurs swf externes

Résolu
Signaler
Messages postés
4
Date d'inscription
vendredi 30 juin 2006
Statut
Membre
Dernière intervention
30 mars 2009
-
Messages postés
1236
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
6 octobre 2010
-
Bonjour à tous,

Voici mon problème, en espérant être clair.
Petite précision, je suis archi-nul débutant en AS .
Mon Fichier est en AS2.

Je suis en train de réaliser un site Fullflash,
Ce site comporte un porfolio en scrollbar dans lequel se charge plusieurs swf externes via la méthode loadMovie.
J'ai créer un clip vide (ecran-mc) , puis je l'ai dupliqué en le nommant à chaque fois "ecran1_mc", "ecran2_mc", etc ... Ensuite sur mon calque code j'ai écris :

ecran1_mc.loadMovie("swf1.swf");
ecran2_mc.loadMovie("swf2.swf");
ecran3_mc.loadMovie("swf2.swf");
ecran4_mc.loadMovie("swf2.swf");
ainsi de suite ...

Tous ces swf externes possèdent leur propre preloader mais se chargent en même temps sur le site. Du coup la bande passante risque de saturer et de provoquer des bugs d'affichage. d'ailleurs chez moi les swf ne se chargent pas dans le bon ordre.

Pour mieux "visualiser"mon soucis, j'ai mis en ligne la page concernée.
www.ekzampl.com

J'aimerais trouver une méthode pour régler se problème.
Soit créer un preloader unique qui s'occupe de charger tous ces swf externes ;
soit définir dans mon code un ordre de chargement pour dire "une fois que swf1 est chargé entièrement, commencer a charger sw2', et ainsi de suite...

Je rappelle que ce site est en AS2 et que les quelques discutions que j'ai pu trouver à ce sujet sur le net parle souvent d"un composant "massload" mais uniquement pour AS3 !!!

Quelqun aurait-il une solution ou une piste à suivre pour résoudre ce problème de chargement de swf externes ?

Merci d'avance.

6 réponses

Messages postés
1236
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
6 octobre 2010

Salut,
Encore une fois loadMovie est très limité, utilises un movieClipLoader pour charger tes fichiers , ainsi tu pourras agir dans le onLoadProgress et dans le onLoadInit, et si tu as beaucoup de swfs à charger places-les dans une boucle for ainsi que tes clips.

@+.
telov.ch
Messages postés
1236
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
6 octobre 2010

Tout est dans l'aide de Flash, pour le moviClipLoader je t'ai mis un lien qui ne peut-être plus explicie, pour la boucle ben admettons que tu as 6 clips sur ta scène qui doivent appeler 6 swfs, selon un même identifiant (1,2,3, ...)

for (var i :Number = 1; i<7; i++)
// on initialise une variable i que l'on incrémente tant que i est plus petit que 7
    {
        this["clip"+i].id = i;
// on donne un identifiant à nos clips

Du coup lorsque tu chargeras tes clips tu peux récupérer l'identifiant :

this["clip"+i].loadClip("swf"+(this.id)+".swf", ecran_mc);

@+.
telov.ch
Messages postés
4
Date d'inscription
vendredi 30 juin 2006
Statut
Membre
Dernière intervention
30 mars 2009

Merci !

Sais tu où je peux trouver un exemple de syntaxe pour utiliser movieClipLoader, je ne l'ai jamais utilisé. Ou un exemple.

Quand à la "boucle for" qu'est ce que c'est exactement ?
Messages postés
4
Date d'inscription
vendredi 30 juin 2006
Statut
Membre
Dernière intervention
30 mars 2009

Merci pour ton aide et ton temps, je vais tester ça.
Messages postés
4
Date d'inscription
vendredi 30 juin 2006
Statut
Membre
Dernière intervention
30 mars 2009

Re, c'est encore moi ;)

Avec l'exemple d'utilisation que tu m'as envoyé, le problème est qu'il faut créer un contenenur avec this.createEmptyMovieClip.

Hors je préférais utiliser le clip vide que j'ai créé pour importer mes swf. Est-ce possible ? Je ne vois pas à quel endroit je dois placer le nom de mes clips vide (ecran1_mc, ecran2_mc, ecran3_mc) et dire ce que je veux qu'ils chargent indépendamment.

Car placer dans ce tuto il n'explique pas comment importer plusieurs swf externes en même temps avec cette méthode.
Messages postés
1236
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
6 octobre 2010

Avec un clip vide c'est pareil, en fait t'as même pas besoin de créer d'identifiant, suffit de récupérer la valeur de la variable i :

this.createEmptyMovieClip("clip", 0);
trace(clip);

var mclListener = new Object();
var mcl = new MovieClipLoader();
mcl.addListener(mclListener);
trace(mcl);
trace(mclListener);

    for(var i:Number = 1; i < 7; i++)
    {
        trace(i);
       
        duplicate = clip.duplicateMovieClip("clip" + i, i);
        trace(clip);
       
        mcl.loadClip("swf"+(i)+".swf", clip);
        trace("clip" + i);
    }
    mclListener.onLoadProgress = function(mc)
{
trace("ok");
}

    mclListener.onLoadInit = function(mc)
{
trace("ok");
}

@+.
telov.ch