Flex中,删除事件侦听器,并结合二传手

问题描述 投票:1回答:1

我有一个复杂的UI(Flex中内置3.6)一个大的应用程序。有很多嵌套的组件,大多有事件监听器或绑定setter方法。该结构是这样的:

- Client View
         - Portfolio View
         - Personal data
         - etc. etc.
- Manager view
         - etc. etc.

有时我已经销毁客户视图,以重新初始化;我做的是从它的容器将其删除;但似乎内存没有得到正确地收集垃圾(问题是事件侦听器和数据绑定的情况下)。

读书和论坛我发现,为了解决这种情况的最好办法是去除对象销毁数据绑定和事件侦听器。不过,我可怎么办呢?谁告诉客户端查看层次结构的最后一个孩子,它已被删除?

我已经通过“addedToStage”和“removedFromStage”事件处理程序来实现它 - 它似乎工作,但它是一种变通的;本次活动得到所谓大量的时间和减慢渲染。

所以我的问题是:这个问题我觉得是常见的,有一个更好的解决办法?

actionscript-3 flex flex3
1个回答
0
投票

为什么你认为部署和重新激活基于他们在舞台上的出现是一个解决办法的组成部分?这是很常见的像这样做,并亲自我看不出有任何特别的理由不这样做。

虽然我工作的移动项目而已,这基本上是我处理组件的停用和重新完全相同的方法。一旦从台上撤下,所有事件处理程序遭到移除,并尽快重新添加该组件被再次添加。除此之外,我已经得到了完全部署组件,所以先删除事件侦听器,删除对象的任何引用的另一种方法,最终空值了。

© www.soinside.com 2019 - 2024. All rights reserved.