通过“刷新”我完全处理它然后再次在应用程序中引入它(不关闭应用程序本身 - 即)。除了我认为问题是不言自明的。
示例:
假设我有一个名为myComponent
的组件。我以标准方式MXMl
使用<components:myComponent id="myID" />
将该组件添加到应用程序中。假设当用户单击按钮(按钮可能处于其他状态)时,标识为myID
的组件应垃圾收集,并将新的实例添加到应用程序中。
我该怎么做呢?如果有多个解决方案哪个是最佳性能?
我是Flash和Flex的新手,请原谅我使用了不正确的术语。
答案 0 :(得分:0)
从旧组件中删除所有事件侦听器;无论他们使用removeEventListener方法:
myButton.removeEventListener(someEvent, someEventHandlerMethod);
然后,所有引用该组件的变量都应设置为null。如果在MXML文件中创建,如下所示:
<s:Button id="myButton" />
然后你要做的就是将该值设置为null:
myButton = null;
一旦没有对组件的引用,它就可以安全地符合垃圾回收的条件。
如果您想重新创建,那么只需重新创建它。您必须在ActionScript中重新创建它,但代码并不难。概念上是这样的:
myButton = new myButton();
myButton.properties = propertyValues;
myButton.addEventListener(someEvent, someEventHandlerMethod);
parentContainer.addChildAt(myButton, whateverPositionYouWantToADdTheComponentAt);
我不确定我是否看到了这样做的好处。我怀疑以你需要的方式调整现有按钮实例会更有效率,而不是破坏它并试图用完全相同的东西替换它。