将变量引用传递给函数

时间:2012-06-13 09:52:50

标签: actionscript-3

我有一些图像我需要循环抛出它们来获取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');
    }

1 个答案:

答案 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