0

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

为什么我的代码没有进入 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);
        }
    }
}
4

1 回答 1

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();
于 2012-08-20T11:36:18.633 回答