我有一个已加载到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;
}
}
}
}
发布于 2013-11-22 08:45:23
addChild()
调用只会将相关的DisplayObject放在显示列表的顶部,而不是创建另一个副本。因此,由于您询问的原因,应该不会发生崩溃。https://stackoverflow.com/questions/20138631
复制相似问题