首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flash幻灯片放映优化问题

Flash幻灯片放映优化问题
EN

Stack Overflow用户
提问于 2011-03-17 23:01:53
回答 2查看 246关注 0票数 0

好吧,如果你能忍受我的话,这将会很复杂(或者不是,我不确定)。我的任务是制作一个flash幻灯片-它将在连接到32英寸显示器的PC之类的迷你上网本上播放。它的设置方式是,我有一个flash文件设置为全屏,文件夹中有11张图像和一个XML文件。flash文件从XML文件中提取图像,如果需要,还可以从XML文件中提取文本。一些图像是平面的(无文本),一些是设置为动态文本的,基本上这是一个数字标牌应用程序。

这个应用程序运行得很好,问题是我不确定如何优化它来长期使用。加载到其中的图像是1920x1080和大约500k-1.2mb,但每个周期都会增加系统内存量,以至于由于没有可用内存而崩溃。

我正在尝试弄清楚如何基本上在周期结束时转储,这样内存使用量就不会在每次旋转时翻倍。我知道如果我删除了事件监听器,可能会对它产生很大的影响,但我不确定如何或者更确切地说,在应用程序中的什么地方这样做。

就像我说的,闪存文件中的所有东西都非常稀疏,有一个带有AS的帧,那就是库中没有任何东西,或者任何它都是动态生成的东西,我相信这就是我的问题,只是不知道如何修复它。

代码:

Link to the Code, via Pastie

有一个我正在使用的外部tween类(我讨厌它,但不知道如何在没有它的情况下做渐变),如果你需要它,这样你就可以运行并查看发生了什么,我会压缩它并分享它,只要让我知道就行了。

(抱歉,在这里粘贴它是一种噩梦,4空格的东西很酷,但也应该有一个包装大块的选项。)

真的很感谢你在这里的帮助,我真的很感谢你。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-17 23:05:36

从你所写的内容中,我了解到,随着每个新的周期,你会再次加载图形,而不是之前转储它们。

我会选择:

  • 不再加载图形,所以只需重用那些你已经从屏幕上消失的图像移除所有对它的引用,取消设置所有侦听器(更好地使用useWeakReference参数)并忘记它。垃圾收集应该发生在automagically.

票数 1
EN

Stack Overflow用户

发布于 2011-03-18 01:14:53

看起来,每次需要显示图像时,都要从文件系统加载这些图像-所以这种方法存在一些问题。

1)每次计时器切换时,您都会创建新的Loader对象,这意味着当此程序运行时,您将拥有许多加载器-每个加载器将保存它加载的图像的一个实例。在您的fadeSlideIn方法中,您不会从加载器中删除Event.COMPLETE侦听器,因此每个加载器将永远留在内存中。

2)位图有一些特别的特性--我对它的细节有点粗略,我已经有一段时间没有处理过这个问题了,但我相信当你清理一个位图时,你应该总是使用myBitmap.bitmapData.dispose(),因为bitmapData不能很好地处理GC。

相反,我可能会做的是将所有图像预先加载到一个数组中,然后循环访问该数组。对于任何给定的图像,您不应该多次使用加载器。您可以尝试使用诸如LoaderMax (https://www.greensock.com/loadermax/)之类的工具来简化加载过程。

祝你好运,如果你有任何进一步的问题请告诉我!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5340873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档