Passage de paramètres à des swf chargés lors de l'evenement Event.COMPLETE ?

Résolu
dominicsonic Messages postés 5 Date d'inscription mardi 1 avril 2003 Statut Membre Dernière intervention 25 mai 2009 - 23 avril 2009 à 00:22
dominicsonic Messages postés 5 Date d'inscription mardi 1 avril 2003 Statut Membre Dernière intervention 25 mai 2009 - 23 avril 2009 à 08:11
Bonjour tout le monde,

J'ai peut-être manqué qqchose, ou alors ma logique n'est pas bonne depuis le début, mais mon besoin est pourtant assez simple: comment charger plusieurs animations à l'intérieur d'un container, et leur indiquer, lorsque leur chargement est terminé, certains paramètres différents pour chacune:

Le code suivant, qui, à partir d'un tableau associatif contenant l'url des swf à charger et des paramètres simples à appliquer après qu'ils soient chargés (width, height, etc...), ne marche pas. Une idée ? suis-je parti dans une mauvaise logique, y-a t'il + simple ? Merci de vos lumières !!
// création d'un conteneur
var conteneurThumbnails:Sprite = new Sprite();

// Le chargeur et la requêteURL
var chargeurThumbnail:Loader;
var requete:URLRequest = new URLRequest();

// tableau associatif contenant les thumbnails et les paramètres
var thumbnails:Array = new Array();
thumbnails.push ({ path : "thumbnail1.swf", thumbnailPosX : 15, thumbnailPosY : 15 , thumbnailWidth : 220, thumbnailHeight: 100} );
thumbnails.push ({ path : "thumbnail2.swf", thumbnailPosX : 15, thumbnailPosY : 545 , thumbnailWidth : 100, thumbnailHeight: 150} );
thumbnails.push ({ path : "thumbnail3.swf", thumbnailPosX : 15, thumbnailPosY : 775 , thumbnailWidth : 250, thumbnailHeight: 200} );
thumbnails.push ({ path : "thumbnail4.swf", thumbnailPosX : 15, thumbnailPosY : 1005 , thumbnailWidth : 180, thumbnailHeight: 50} );

var lng:int = thumbnails.length;
var path:String;
var thumbnailPosX:Number;
var thumbnailPosY:Number;
var thumbnailWidth:Number;
var thumbnailHeight:Number;

for (var i:int = 0; i< lng; i++ )
{
    // récupération des infos du tableau associatif
    path = thumbnails[i].path;
    thumbnailPosX = thumbnails[i].thumbnailPosX;
    thumbnailPosY = thumbnails[i].thumbnailPosY;
    thumbnailWidth = thumbnails[i].thumbnailWidth;
    thumbnailHeight = thumbnails[i].thumbnailHeight;
   
    // création du chargeur
    chargeurThumbnail = new Loader();
    requete.url = path;
    chargeurThumbnail.load ( requete );
   
    // contentLoaderInfo
    var cli:LoaderInfo = chargeurThumbnail.contentLoaderInfo;
    cli.addEventListener ( Event.COMPLETE, chargementTermine );
   
    function chargementTermine ( pEvt:Event ):void
    {
        var objetLoaderInfo:LoaderInfo = LoaderInfo ( pEvt.target );
        var thumbnail:DisplayObject = objetLoaderInfo.content;
       
        // Set Width, Height et PosX, PosY
        thumbnail.x= thumbnailPosX;
        thumbnail.y= thumbnailPosY;
        thumbnail.width = thumbnailWidth;
        thumbnail.height = thumbnailHeight;
        // -> ne marche pas car les variables sont (évidemment) perdues dans le
        // contexte de la fonction. Comment faire ?
    }   
   
    // ajout au sein du conteneur
    conteneurThumbnails.addChild ( chargeurThumbnail );
}

// affichage du conteneurThumbnails
addChildAt ( conteneurThumbnails, 0 );

2 réponses

pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 11
23 avril 2009 à 02:44
Bonsoir,

Effectivement, c'est très mal fait tout ça !
tu lances tous tes téléchargement d'un coup, et c'est donc normal que ça ne fonctionne pas, car chacune piétine sur l'autre .. sans parler de la multi déclaration de la fonction de chargement terminé.
Il y a pourtant des exemples de chargement multiples sur ce site qui devraient te donner un début d'idée.

Mais je vais te la résumer (une fois n'est pas coutume) :

- génération des données de chargement dans un tableau
- compteur à 1
- fonction chargement {
chargement de l'animation n°[compteur]
}
- fonction de chargement complet {
traitement de la donnée chargée
si compteur = nombre d'animation à charger : compteur+1 et chargement
sinon c'est que le chargement de toutes les animations est fini
}

Voilà, tu as les grandes lignes de la structure d'un chargement multiple et à la chaine

Peg'
3
dominicsonic Messages postés 5 Date d'inscription mardi 1 avril 2003 Statut Membre Dernière intervention 25 mai 2009
23 avril 2009 à 08:11
Merci Peg!
Clair, simple propre et logique: merci pour la méthode résumée.

C'est corrigé et ça marche nickel.
Bonne journée!
0
Rejoignez-nous