Apache flex Flex:removedEffect在更改父项时导致错误

Apache flex Flex:removedEffect在更改父项时导致错误,apache-flex,flex3,air,Apache Flex,Flex3,Air,好的,我有一个TitleWindow的子类,使用这个方法: public function launchInNewWindow(e:Event):void { this.parent.removeChild(this); ownWindow = new Window(); ownWindow.systemChrome = 'none'; ownWindow.type = NativeWindowType.LIGHTWEIGHT; ownWindow.tra

好的,我有一个TitleWindow的子类,使用这个方法:

public function launchInNewWindow(e:Event):void
{
    this.parent.removeChild(this);
    ownWindow = new Window();
    ownWindow.systemChrome = 'none';
    ownWindow.type = NativeWindowType.LIGHTWEIGHT;
    ownWindow.transparent = true;
    ownWindow.setStyle('showFlexChrome', false);
    ownWindow.width = this.width > 750 ? 750 : this.width;
    ownWindow.height = this.height > 550 ? 550 : this.height;
    edit.enabled = false;
    ownWindow.addChild(this);
    ownWindow.width += 5; //add to show dropshadow
    ownWindow.height += 10; //add to show dropshadow
    ownWindow.open();
    _inOwnWindow = true;
    ownWindow.nativeWindow.x = Application.application.nativeWindow.x + this.x + 5; //keep in same spot add 5 for systemChrom border
    ownWindow.nativeWindow.y = Application.application.nativeWindow.y + this.y + 30;//keep in same spot add 30 for systemChrom title
}
这样做的目的是通过创建一个新窗口对象并将其自身添加到新窗口的显示列表中,使标题窗口成为自己的window NativeWindow

它工作得非常好,但是如果我在这个类的实例上设置了removedEffect,那么在尝试将自己添加到窗口的显示列表时会产生错误

我试着加上:

this.setStyle('removedEffect',null);

将该方法视为试图移除之前设置在其自身上的任何removedEffect,但没有运气

但是,如果对组件没有移除效果,它就可以正常工作。一定有办法解决这个问题

有什么想法吗

谢谢

要使removedEffect生效,窗口需要位于原始父窗口上,但您要立即尝试将其添加到新父窗口中,并且它不能同时属于两个父窗口。我可以想到几个选择

获取要删除的窗口的位图,在同一位置显示,在此位图副本上运行所需的效果,然后可以在不受效果干扰的情况下运行“重新设置原始对象的父对象”

将删除和重新创建父对象的代码分为两个步骤。先拆下车窗。然后,当removedEffect完成时,将其添加到新窗口的显示列表中


好吧,我听了Effect_END和TWEEN_END这两个词都不单独起作用,但如果我听了它们,那么就设置一个计时器,在它起作用100毫秒后添加child。我希望只有一个事件我可以听,而不是听一个事件,然后设置一个计时器,因为这只是看起来很差。
this.setStyle('removedEffect',new TitleWindow().getStyle('removedEffect'));