0

情况:我有一个ViewStack有 2 个孩子(都是类型Panel)。该应用程序以 child 1 作为SelectedChild.

通过单击按钮,子 2 是 SelectedChild。之后,我返回作为 SelectedChild 的孩子 1。

当我在 Flash Player 中单击Show Redraw Regions时,我可以看到孩子 2 一直在重绘(我在孩子 2 中有一些移动的对象)。我怎样才能防止这种情况发生?或者这只能通过实际移除不可见的(在这种情况下为孩子 2)孩子来完成?

为什么我要实现这一目标?子 2 将包含相当多的数据(flv、图像等),当它像现在发生的那样被缓存时,它会减慢我的应用程序的速度。

4

2 回答 2

1

Flash 效率低下的一个主要原因可能来自显示列表中的不可见对象。它们不仅继续导致重绘区域刷新(“红色矩形”),而且每当播放器需要遍历显示列表树时,它们都会对 Flash 处理施加 CPU 损失。当显示列表更大时,即使您没有任何 MouseEvent 侦听器,鼠标悬停也明显更昂贵。任何包含数千个对象的显示列表都会开始感到痛苦。

长话短说,有时性能要求您编写自己的“可见性管理器”来交换对象进出父层次结构,作为切换 DisplayObject.visible 的替代方法。

于 2010-11-18T01:45:34.313 回答
0

我已经想通了:唯一的方法似乎是真正删除孩子,或者它是移动/动画内容。

Calling video.stop()animation.stop()就像 Amarghosh 提到的那样也应该有所帮助。

于 2009-12-08T15:39:33.660 回答