2011-11-22 74 views
1

我一直在工作的Flash游戏,我通过附加儿童影片剪辑添加子动画到动画片段。这创建了具有不同动画的电影剪辑的层次结构,但是结果是父动画片段结束了无限增长并且吃了很多内存。有没有一种方法可以优化这种动画?如果位图缓存起作用,我是否可以缓存运行前添加的所有子项(例如,在设计期间和发布SWF之前添加的子级动画片段)。
PS我正在使用Flash Air 2.6,如果有任何帮助的话。Flash动画片段与动画吃内存

回答

1

那么,你自己给出答案,Flash可以做很多但没有无限的内存量。然而,精心设计的动画是,如果父级影片剪辑“无限增长”,当然会有一个点,所有的都会崩溃。

根据给出的信息,我只能给你一个一般的答案。

  • 无法添加无限量的孩子,但是如果您不断删除超出范围的孩子,您肯定会给出这种印象。

  • 有没有什么方法可以避免重复来改进设计?

  • 您是否在Flash IDE中工作,或者您是否使用其他IDE(如FlashBuilder),后者具有可帮助您检查应用程序内存使用情况的分析工具。

1

要添加什么帕特里克说: 位图缓存可能使用更多的内存,这取决于你怎么做。但是,如果您有多个同一事物的实例,则可以只制作其中一个实例并在任何地方重新使用其像素,这与您在此看到的http://flexdiary.blogspot.com/2009/12/riadventure-inspiration.html类似。您可能还想研究对象池http://blog.joa-ebert.com/2008/05/07/tweening-and-object-pools/。但是,当内存开始失控时,我通常会怀疑你已经通过向对象添加侦听器而不删除它们(因此它们不能被垃圾收集)而导致内存泄漏。其他可导致内存泄漏的方法是通过字典或使用setTimeout引用对象,但未正确调用clearTimeout。