我的项目是某种幻灯片。我加载多个文件并一次显示一个。与大多数幻灯片不同,每个加载的文件都是 SWF、Jpeg 和视频的组合。我的代码放在这里有点多,所以我将把与我的“想法”抛出的问题相关的内容放在这里。
这就是我想要做的。这段代码不准确,但它可能会显示我想要做什么。但是我似乎找不到正确的方法。总的来说,我想在每张幻灯片的加载程序名称中添加一个动态数字。这样我就可以加载和卸载/清空加载器,以便将内容从我的项目中完全删除。
到目前为止,我的项目运行良好,但是它有一些我无法追踪的内存泄漏。我检查了所有的事件监听器,甚至在加载的 swf 中调用“kill”函数来卸载/删除/null 的所有内容。仍然得到这些泄漏。
谢谢你的帮助
变量我:数字;我 = 0;
function loadSlideData():void
{
curSlide[i].load(new URLRequest("Slides/"+ slideXML.image[slideInt].@file));
curSlide[i].contentLoaderInfo.addEventListener(Event.COMPLETE, DisplaySlide, false, 0, true);
}
function DisplaySlide(event:Event):void
{
curSlide.contentLoaderInfo.removeEventListener(Event.COMPLETE, DisplaySlide);
slideLength.delay = slideXML.image[slideInt].timeDelay.@seconds*1000;
slideLength.start();
addChild(curSlide);
curSlide.alpha = 1;
curSlide.x = (1150-1000)/2;
curSlide.y = (700-460)/2 - 30;
slideLength.addEventListener(TimerEvent.TIMER, zoomOut,false,0,true);
}
function zoomOut(event:TimerEvent):void
{
slideLength.removeEventListener(TimerEvent.TIMER, zoomOut);
if(slideInt == slideXML.image.length()-1)
{
slideInt=0;
}else{
slideInt++;
}
slideLength.stop();
TweenLite.to(slideArray[randomSqareNum], .75, {y:sqrOriginalY, x:sqrOriginalX, scaleX:1, scaleY:1, ease:Circ.easeInOut,onComplete:zoomIn});
TweenLite.to(curSlide, .25, {alpha:0, ease:Circ.easeInOut,onComplete:removeCurSlide});
trace(curSlide);
}
function removeCurSlide():void
{
trace(curSlide);
i++;
var curSlide[i]:Loader = new Loader();
loadSlideData();
}