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 に答える