2012-06-13 4 views
0

J'ai série d'images i besoin de boucler les jeter pour obtenir l'URL et de les charger par cette fonction loadImage, la fonction fonctionne très bien et charge les images mis mon problème avec le bloc Movieclip quand j'ajoute l'image, l'image est ajoutée au dernier Movieclip dans la boucle?Passe référence variable en fonction

var relatedJSON = JSON.decode(e.target.data); 
    var relatedStories = relatedJSON.stories; 
    if(relatedStories.length > 0){ 
     for(var j:Number=0;j<relatedStories.length;j++){ 
      if(relatedStories[j].yahki_thumb){ 
       var one = j+1; 
       var block = related_stories.getChildByName('related_stories_block'+one); 
       // load the image 
       loadImage({ 
        path:relatedStories[j].yahki_thumb, 
        success:function(e:Event,my_loader:Loader) 
        { 
         my_loader.width = this[block].width; 
         my_loader.height = this[block].height; 
         this[block].img.addChild(my_loader); 
        }, 
        error:function(e:Event) 
        { 
         // error 
         echo('error to load an image'); 
        } 
       }); 
      } 
     } 
     // replay button event 
     //replay 
    }else{ 
     // error 
     echo('no related stories'); 
    } 

Répondre

1

Essayez ceci dans la boucle:

var that:* = this; 
    (function(block:*):void{ 
     loadImage({ 
       path:relatedStories[j].yahki_thumb, 
       success:function(e:Event,my_loader:Loader) 
       { 
        my_loader.width = that[block].width; 
        my_loader.height = that[block].height; 
        that[block].img.addChild(my_loader); 
       }, 
       error:function(e:Event) 
       { 
        // error 
        echo('error to load an image'); 
       } 
      }); 
    })(block); 

que le chargement est asyncronous, lorsque votre fonction de la réussite est, la valeur block a déjà related_stories.getChildByName('related_stories_block'+relatedStories.length) valeur. C'est la raison, les éléments ont été ajoutés pour durer MovieClip.