Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 as3在一系列图像中导航_Actionscript 3_Loader - Fatal编程技术网

Actionscript 3 as3在一系列图像中导航

Actionscript 3 as3在一系列图像中导航,actionscript-3,loader,Actionscript 3,Loader,我有一个图像数组,我已经加载到加载程序数组中。但是,我想知道这是否会占用大量资源来不断地在彼此的顶部添加图像 目标是当他们按下屏幕时,它将转到阵列中的下一个图像并显示它。当它到达终点时,它将重新开始。他们有一个不断流动的褪色图像。再一次,我想知道在这种情况下addChild是否会继续向屏幕添加新图像,最终会有如此多的图像相互叠加,以致崩溃。最终推出的是一款移动应用程序。我是否需要在加载新图像后卸载上一个图像,或者这不是问题 这是我的工作代码: package com { import

我有一个图像数组,我已经加载到加载程序数组中。但是,我想知道这是否会占用大量资源来不断地在彼此的顶部添加图像

目标是当他们按下屏幕时,它将转到阵列中的下一个图像并显示它。当它到达终点时,它将重新开始。他们有一个不断流动的褪色图像。再一次,我想知道在这种情况下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;
            }


        }

    }
}
package-com
{
导入flash.display.MovieClip;
导入flash.display.Stage;
输入com.*;
导入flash.events.*;
导入flash.filesystem.File;
导入flash.net。*;
导入flash.display.*;
导入com.greensock.*;
导入com.greensock.com;
//////////////////
公共类图片扩展MovieClip
{
public-var-Images:Array=new-Array();
public-var-RandomImages:Array=new-Array();
公共变量c:int=0;
公共活动图片()
{
加载图像(“快乐”、“1”);
this.addEventListener(MouseEvent.CLICK,显示图像);
}
公共函数loadImages(十年:字符串,神秘:字符串)
{
图像=[];
随机图像=[];
var desktop:File=File.applicationDirectory.resolvePath(“RosaryImages/”+Decade+“/”+summary);
var文件:Array=desktop.getDirectoryListing();
对于(变量i:uint=0;i
  • 否,一旦将整个图像集作为子对象添加,重复的
    addChild()
    调用只会将相关的DisplayObject置于显示列表的顶部,而不会创建另一个副本。因此,不应该因为您询问的原因而发生崩溃

  • 我不建议卸载,但正如卢卡斯在评论中所说的,从显示列表中删除有助于避免浪费处理资源


  • 我会在舞台上只保留那些需要的物品,因为它们是可见的,如果不移除它们的话。然后即使有了过渡,你也可以在舞台上最多有两个。当然,您也可以加载/卸载图像,这样图像就不会存储在内存中。