我有一个带有复杂 UI(内置于 Flex 3.6)的大型应用程序。有很多嵌套组件,其中大多数都有事件侦听器或绑定设置器。结构类似于:
- Client View
- Portfolio View
- Personal data
- etc. etc.
- Manager view
- etc. etc.
有时我必须破坏客户端视图以重新初始化它;我所做的是将它从它的容器中取出;但似乎内存没有得到正确的垃圾收集(问题是事件侦听器和数据绑定的存在)。
阅读书籍和论坛我发现管理这种情况的最佳方法是删除对象销毁时的数据绑定和事件侦听器。但我怎么能做到这一点?谁告诉客户端视图层次结构的最后一个孩子它已被删除?
我已经通过“addToStage”和“removedFromStage”事件处理程序实现了它——它似乎有效,但它是一种解决方法;这个事件被调用了很多时间,这会减慢渲染速度。
所以我的问题是:我认为这个问题很常见,有更好的解决方案吗?