什么是更好的方法来删除旧图像或根本不存在的图像?
我正在使用这个XML幻灯片,我按照我想要的方式调整它,除了第一个加载不会消失的图像。我怎样才能使这句话变得更好?我也试过if (previous || imgHolder.numChildren > 0 )
但没有用。有什么帮助吗?
package
{
import flash.display.MovieClip;
import com.greensock.*;
import com.greensock.loading.*;
import com.greensock.events.LoaderEvent;
import com.greensock.loading.display.*;
public class Main extends MovieClip
{
var xml:XMLLoader;
var images:Array;
var current:int = 0;
var previous:Number;
public function Main()
{
init();
}
private function init()
{
LoaderMax.activate([ImageLoader]);
xml = new XMLLoader("xml/gallery.xml",{name:"loader",onComplete:onXmlLoaded});
xml.load();
}
function onXmlLoaded(e:LoaderEvent)
{
images = LoaderMax.getContent("loader");
nextImage(); //nextImage can use image var
}
private function nextImage()
{
TweenLite.from(images[current],1,{alpha:0, onStart:currentImage, onComplete: updateImage});
}
private function currentImage():void
{
imgHolder.addChild(images[current]);
}
private function updateImage()
{
if (previous)
{
imgHolder.removeChild(images[previous]);
}
previous = current;
if (current < images.length - 1)
{
current++;
} else
{
current = 0;
}
TweenLite.delayedCall(2, nextImage);
}
}
}
答案 0 :(得分:1)
您可以操纵数组的内容以跟踪当前和之前的幻灯片索引。数组中的第一个是您当前的幻灯片,最后一个是上一张幻灯片。与您建议numChildren
检查imgHolder
一样,检查是否有内容可以删除。
private function nextImage() : void
{
TweenLite.from(images[0], 1 , {alpha:0, onStart:currentImage, onComplete:updateImage});
}
private function currentImage():void
{
imgHolder.addChild(images[0]);
}
private function updateImage() : void
{
if(imgHolder.numChildren > 1)
{
imgHolder.removeChild(images[images.length-1]);
}
images.push(images.shift());
TweenLite.delayedCall(2, nextImage);
}