eventlistener不执行其功能

时间:2012-08-20 06:11:54

标签: actionscript-3 image-gallery

我需要在舞台上放一些缩略图。它们有不同的宽度,我需要在它们被加载后得到宽度。我使用监听器来查找宽度,但是监听器应该调用的函数不会运行。

为什么我的代码没有进入loadThumbs的功能?

function makeScroller():void

{

    for (var item:uint = 0; item < 7; item++ )

    {
        var thisOne:MovieClip = new MovieClip();
        var blackBox:Sprite = new Sprite();
        var thisThumb:Sprite = new Sprite();

        var imageLoader:Loader = new Loader();
        imageLoader.load(new URLRequest(thumbList[item]));
        imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,loadThumbs);

        function loadThumbs (e:Event):void
        {
            blackBox.graphics.beginFill(0xFFFFFF);
            blackBox.graphics.drawRect(-1,-1,imageLoader.width,imageLoader.height);
            thisOne.addChild(blackBox);
            thisOne.blackBox = blackBox;
            thisOne.x = tsX;
            thisThumb.addChild(imageLoader);
            thisOne.addChild(thisThumb);
            tsX += imageLoader.width;
            scroller.addChild(thisOne);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我刚刚尝试了更简化的代码版本而没有任何问题,也许可以试试这个:

注意:最佳做法是在调用load之前添加COMPLETE侦听器...

function makeScroller():void
{
    var imageLoader:Loader = new Loader();
    imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadedHandler);
    imageLoader.load(new URLRequest("http://images.imagecomics.com/c/2012/IMG120350.jpg"));


    function loadedHandler(e:Event):void
    {
        trace("loaded");
    }
}
makeScroller();