我有一些图像我需要循环抛出它们来获取url并通过此函数加载它们 loadImage ,该函数正常工作并加载图像将我的问题与Movieclip一起阻止当我将图像添加到它时,图像被添加到循环中的最后一个Movieclip?
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');
}
答案 0 :(得分:1)
在循环中尝试:
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);
由于加载是异步的,当调用成功函数时,block
值已经为related_stories.getChildByName('related_stories_block'+relatedStories.length)
值。这就是原因,元素被添加到上一个MovieClip
。