我认为你的问题与你的绑定有关。 BindingUtils.bindProperty
正在被给予你的panel
实例,试图将其用于对象图并使其不适用于垃圾收集。
bindProperty
返回一个ChangeWatcher
,当您完成该操作时,您可以使用它来取消注册绑定。像下面这样:
var watchers : Array = [];
var panel:SuperPanel = new SuperPanel();
panel.width = 300;
panel.height = 200;
panel.minWidth = 200;
panel.minHeight = 100;
panel.title = "My Panel " + (panelContainer.numChildren + 1);
panel.addEventListener(CloseEvent.CLOSE, function(event:CloseEvent):void{
for each(var watcher : ChangeWatcher in watchers) {
watcher.unwatch();
}
event.target.parent.removeChild(event.target);
});
watchers.push(BindingUtils.bindProperty(panel, "allowDrag", allowDragCheck, "selected"));
watchers.push(BindingUtils.bindProperty(panel, "allowResize", allowResizeCheck, "selected"));
watchers.push(BindingUtils.bindProperty(panel, "allowClose", allowCloseCheck, "selected"));
watchers.push(BindingUtils.bindProperty(panel, "allowMaximize", allowMaxCheck, "selected"));
watchers.push(BindingUtils.bindProperty(panel, "allowMinimize", allowMinCheck, "selected"));
panelContainer.addChild(panel);
此外,你还没有覆盖在SuperPanelEvent
的clone
事件后来会引起你的问题。 See this question for more details。
为什么不直接在这里发布代码,而不是让你要求帮助的人做额外的工作? – Oded 2010-02-10 08:15:28