0

コードをデバッグして動作させるようになってから2日が経ちましたが、それはずっと使い果たされており、質問を始めなければ期限に間に合わないと思います。

私はプロではないので、コードに優しくしてください。:D

ギャラリーは正常に機能しており、エラーを返すことなくサムネイルをスムーズに読み込むことができます。ただし、サムネイルは期待どおりに読み込まれません。最小のファイルサイズが最初に読み込まれるためだと思います。したがって、thumbnail [3]が最小の場合、thumbnail_container [0]にアタッチされます。これは、常にthumbnail[0]からthumbnail_container[0]などになります。

これが私のコードです:

        //THIS IS THE CONTAINER         
        for (var i:int = 0; i < thumbBatches[aj]; i++)
        {
            thumbX = 44.35 + (thumbWidth + 18) * i;
            var itemThumb:thumbH = new thumbH();
            itemThumb.x = thumbX;
            itemThumb.y = thumbY;
            itemThumb.name = "" + i + (8 * aj);
            itemThumb.addEventListener(MouseEvent.CLICK, openFullItem);
            level2.addChild(itemThumb);
            IthumbList[i + (8 * aj)] = itemThumb;
        }

        //THIS WILL LOAD THE THUMBNAILS
        for (var n:int = 0; n < potteryIDnum.length; n++)
        {
            var imgLoader:Loader = new Loader();
            imgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
            imgLoader.load(new URLRequest(potteryThumbs[n]));
        }

        // AFTER LOADING IT, IT'LL BE ASSIGNED TO AN ARRAY
       // THEN AFTER THE LAST IMAGE HAS BEEN LOADED WILL BE ATTACHED TO THE CONTAINER
        function loadComplete(e:Event):void
        {
            IthumbImages.push(e.target.content);
            if (IthumbList.length == IthumbImages.length)
            {
                for (var k:int = 0; k < IthumbImages.length; k++)
                {
                    var fadeInThumbs:Tween = new Tween(IthumbList[k],"alpha",Strong.easeInOut,0,1,0.3 * (k + 0.5),true);
                    IthumbList[k].addChild(IthumbImages[k]);
                }
            }
        }

前もって感謝します!

4

2 に答える 2

0

あなたの問題はこの行にあると思います。

 IthumbList[i + (8 * aj)] = itemThumb;

ajとは?
aj == 1 および i == 1 の
場合、配列のインデックスは 9 aj == 2 および i == 1 の場合、配列のインデックスは 16 になります。

このため、oncomplete の for ループは失敗するはずです。

于 2012-04-13T21:05:38.013 に答える
0

私はすでに同様の質問に答えています。しかし、それはURLLoaderクラスについてでした。

クラス caseのLoader場合、次のようになります。

    dynamic class DynamicLoader extends Loader{}

そして最後に、変更されたコード:

    var remainingLoads:uint = potteryIDnum.length; 
    //THIS WILL LOAD THE THUMBNAILS
    for (var n:int = 0; n < potteryIDnum.length; n++)
    {
        var imgLoader:DynamicLoader = new DynamicLoader();
        imgLoader.index = n;
        imgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
        imgLoader.load(new URLRequest(potteryThumbs[n]));
    }

    // AFTER LOADING IT, IT'LL BE ASSIGNED TO AN ARRAY
    // THEN AFTER THE LAST IMAGE HAS BEEN LOADED WILL BE ATTACHED TO THE CONTAINER
    function loadComplete(e:Event):void
    {
        IthumbImages[ DynamicLoader(e.target.loader).index ] = e.target.content;
        if (--remainingLoads == 0)
        {
            for (var k:int = 0; k < IthumbImages.length; k++)
            {
                var fadeInThumbs:Tween = new Tween(IthumbList[k],"alpha",Strong.easeInOut,0,1,0.3 * (k + 0.5),true);
                IthumbList[k].addChild(IthumbImages[k]);
            }
        }
    }
于 2012-04-14T13:05:36.427 に答える