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

[Résolu]
Signaler
Messages postés
5
Date d'inscription
mardi 1 avril 2003
Statut
Membre
Dernière intervention
25 mai 2009
-
Messages postés
5
Date d'inscription
mardi 1 avril 2003
Statut
Membre
Dernière intervention
25 mai 2009
-
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

Messages postés
6146
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
10
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'
Messages postés
5
Date d'inscription
mardi 1 avril 2003
Statut
Membre
Dernière intervention
25 mai 2009

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!