IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Intégration Discussion :

[FL8] MovieClipLoader et boucle


Sujet :

Intégration

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 17
    Par défaut [FL8] MovieClipLoader et boucle
    Bonjour à tous,

    J'ai un problème qui me colle depuis quelques heures maintenant, malgré mes recherches et trouvailles sur plusieurs forums, je n'ai pas réussi à appliquer de solutions

    En gros, je charge un XML contenant des liens sur des images dont la largeur est variable. J'aimerais les ajouter horizontalement l'une après les autres et je dois donc d'abord prendre la largeur et additioner.

    Le problème est que ma boucle for n'attend pas la fin du chargement de mes images et donc mes valeurs sont complètement fausses.

    Est-ce que quelqu'un verrait une solution? Merci d'avance à tous pour votre aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    var img_xml:XML = new XML();
    img_xml.ignoreWhite = true;
    img_xml.onLoad = LoadStar;
    img_xml.load("images.xml");
     
    /*variable thumbs*/
    var thumbs_x:Number = 5;
    var thumbs_y:Number = 5;
    var thumbs_space:Number = 5;
    var thumbs_clips:Array = new Array();
     
    /*mask*/
    this.createEmptyMovieClip("thumbs", 1);
     
    /*fonction parse xml*/
    function LoadImage() {
        racine = this.firstChild;
     
        /*nombre de thumbs*/
        img_number = this.firstChild.childNodes.length;
     
        for (i=0; i < img_number; i++) {
            img = racine.childNodes[i];
            img_id = star.childNodes[0].firstChild.nodeValue;
            img_img_tn = star.childNodes[1].firstChild.nodeValue;
     
            /*création des clips*/
            thumbs_clips[i] = thumbs.createEmptyMovieClip("mc" + i, i);
     
            /*loading des images*/
            thumbs_clips[i].createEmptyMovieClip("img", 1);
     
            var img_mcl:MovieClipLoader = new MovieClipLoader();
            img_mcl.addListener(mclListener);
            img_mcl.loadClip(img_img_tn, thumbs_clips[i].img);
     
            var mclListener:Object = new Object();
            mclListener.onLoadInit = function(target_mc:MovieClip) {
                var img_tn_width:Number = target_mc._width;
            };
     
            /*positionnement*/
            thumbs_clips[i]._y = thumbs_y;
            thumbs_clips[i]._x = i * (img_tn_width + thumbs_space) + thumbs_x;
     
        };
    };

  2. #2
    Membre émérite
    Avatar de thecaptain
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2003
    Messages
    919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Décembre 2003
    Messages : 919
    Par défaut
    Salut,

    M'est avis que tu fais compliqué pour pas grand chose Je te simplifie tout ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    var monXML:XML = new XML();
    //attente du chargement, parsing, bla bla bla, ...
     
    //hop tu te retrouves avec ton tableau d'url
    var myPictures:Array = ...
     
    var currentX:Number = 0;
    var listener:Object = new Object();
    listener.onLoadInit = function(trg:MovieClip):Void
    {
        trg._x = currentX;
        currentX += trg._width+5;
    }
     
    var loader:MovieClipLoader = new MovieClipLoader();
    loader.addListener(listener);
     
    //on lance le chargement
    var cont:MovieClip = this.container; //container à image
    var length:Number = myPictures.length;
    for (var i:Number=0 ; i<length ; i++)
    {
       var dp:Number = cont.getNextHighestDepth();
       var cl:MovieClip = cont.createEmptyMovieClip("picture"+dp, dp);
       loader.loadClip(myPictures[i], cl);
    }
    et comme ça tes images seront alignées horizontalement

    @++

  3. #3
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 17
    Par défaut
    hello,

    merci de ta réponse

    donc si je comprends bien, tu parse d'abord ton XML pour remplir un tableau contenant le lien des images, et ensuite tu charges chaque image et les place? juste?

  4. #4
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 17
    Par défaut
    Quelqu'un pourrait-il m'aider un peu? Je tourne toujours en rond et je commence à devenir chauve

    Merci d'avance

Discussions similaires

  1. [XSLT] Faire une boucle sur une variable [i]
    Par PoT_de_NuTeLLa dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 07/06/2010, 12h45
  2. MovieClipLoader et boucle For
    Par frol dans le forum Flash
    Réponses: 1
    Dernier message: 02/11/2006, 06h16
  3. [directsound] boucle de traitement de son
    Par gargle dans le forum DirectX
    Réponses: 5
    Dernier message: 24/03/2003, 10h47
  4. Sortir d'un progamme qui boucle ou qui refresh
    Par mikevador02 dans le forum C
    Réponses: 12
    Dernier message: 14/12/2002, 09h38
  5. Réponses: 2
    Dernier message: 29/05/2002, 20h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo