as3通过一系列图像导航

时间:2013-11-22 06:39:44

标签: actionscript-3 loader

我有一个已加载到Loader数组中的图像数组。但是,我想知道这是否会占用大量资源来继续添加图像。

目标是当他们按下屏幕时,它将转到阵列中的下一个图像并显示它。当它到达终点时,它将重新开始。它们具有恒定的衰落图像流。再次,我想知道在这种情况下addChild是否继续向屏幕添加新图像,并最终会有很多彼此重叠,它将崩溃。最终的推出是针对移动应用。加载新图像后是否需要卸载上一张图像?这不是问题吗?

这是我的工作代码:

package com
{

    import flash.display.MovieClip;
    import flash.display.Stage;
    import com.*;
    import flash.events.*;
    import flash.filesystem.File;

    import flash.net.*;
    import flash.display.*;
    import com.greensock.*;
    import com.greensock.easing.*;


    //////////////////
    public class pictures extends MovieClip
    {


        public var Images:Array = new Array();
        public var RandomImages:Array = new Array();
        public var c:int = 0;


        public function pictures()
        {
            loadImages("Joyful","1");
            this.addEventListener(MouseEvent.CLICK, displayImages);
        }



        public function loadImages(Decade:String,Mystery:String)
        {
            Images = [];
            RandomImages = [];
            var desktop:File = File.applicationDirectory.resolvePath("RosaryImages/"+Decade+"/"+Mystery);
            var files:Array = desktop.getDirectoryListing();
            for (var i:uint = 0; i < files.length; i++)
            {
                RandomImages.push("RosaryImages/"+Decade+"/"+Mystery+"/"+files[i].name);
                trace(RandomImages[i]);
                var my_loader:Loader = new Loader();
                my_loader.load(new URLRequest(File.applicationDirectory.url + RandomImages[i]));
                Images.push(my_loader);
            }
            displayImages();
        }



        public function displayImages(e:Event = null)
        {
            addChild(Images[c]);
            TweenMax.fromTo(Images[c],2, {alpha:0}, {alpha:1, ease:Quint.easeOut} );

            if (c < (Images.length) - 1)
            {
                c++;
            }
            else
            {
                c = 0;
            }


        }

    }
}

1 个答案:

答案 0 :(得分:1)

  1. 不,将整个图像集添加为子图像后,重复的addChild()调用只会将有问题的DisplayObject置于显示列表的顶部,而不是创建另一个副本。所以,由于你问的原因,不应该发生崩溃。

  2. 我不建议卸载,但是从显示列表中删除,正如Lukasz在评论中所说的那样,不会浪费处理资源。