Apache flex 如何确保Flex中继器中的项目被删除
我有这样一个代码:Apache flex 如何确保Flex中继器中的项目被删除,apache-flex,Apache Flex,我有这样一个代码: <mx:Repeater id="allItemRepeator" dataProvider="{_model.allItems}" > <components:ComponentSelector id="componentSelector"
<mx:Repeater id="allItemRepeator"
dataProvider="{_model.allItems}"
>
<components:ComponentSelector id="componentSelector"
dataLoad="{allItemRepeator.currentItem}" />
</mx:Repeater>
当allItems的代码更改时,该项将按预期从屏幕中消失,但仍保留在内存中!我通过组件中的一个函数知道这一点,该函数具有跟踪功能,因此即使组件从屏幕上消失,跟踪输出仍会显示。当元素的引用被删除时,如何确保元素被删除?使用基于列表的组件来显示项目而不是Repeator会解决这个问题吗?它需要对我的代码进行重大重构,所以在尝试之前我要问一下,组件的引用仍然存在,所以它没有被垃圾收集。特别是我注意到你们使用的绑定,就是因为这个而臭名昭著的
调试此问题的最佳方法是通过探查器运行应用程序,并查看删除组件后保留对组件引用的原因。谢谢@Gregor,我目前没有高级Flash Builder版本。在我升级之前,你会推荐另一种方法吗?没有看到代码,很难知道是什么保留了引用!绑定是最可能的罪魁祸首,但组件本身可能是问题所在,例如,如果它正在生成强大的EventListener。中继器并不是真正的最佳实践,因为它们有一些类似的问题……谢谢@Gregor,似乎是照片上有一个事件监听器造成的!我通过为该组件添加removefromstage的事件处理程序手动删除了这些项,它似乎可以工作