1

我的项目是某种幻灯片。我加载多个文件并一次显示一个。与大多数幻灯片不同,每个加载的文件都是 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();
}
4

1 回答 1

1

这没有多大意义:

 var curSlide[i]:Loader = new Loader();

您是在问如何将加载器存储在数组中?我不确定这是否会给你一个想法......这个:

function removeCurSlide():void
{   
    trace(curSlide);
    i++;
    var curSlide[i]:Loader = new Loader();
    loadSlideData();
}

应该更像:

var slideArray:Array = [];

function removeCurSlide():void
{   
    trace(curSlide);
    i++;
    var curSlide:Loader = new Loader();
    slideArray[i] = currSlide;
    loadSlideData();
}

您需要将所有其他“curSlide”替换为“slideArray”

这是数组如何工作的一些很好的解释: http ://www.republicofcode.com/tutorials/flash/as3arrays/

于 2013-05-24T22:55:24.643 回答