Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 如何确保Flex中继器中的项目被删除_Apache Flex - Fatal编程技术网

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的事件处理程序手动删除了这些项,它似乎可以工作