Apache flex 使用removeChild时出现Flex 3错误#2025

Apache flex 使用removeChild时出现Flex 3错误#2025,apache-flex,removechild,Apache Flex,Removechild,我得到一个Flex ArgumentError:Error#2025:提供的DisplayObject必须是调用者的子对象 这就是我得到的: a) 我将变量lastButtonClicked设置为在主应用程序中单击的最后一个按钮 private var lastButtonClicked:DisplayObject; private function lastButtonClickedFunction(event:MouseEvent):void { lastButto

我得到一个Flex ArgumentError:Error#2025:提供的DisplayObject必须是调用者的子对象

这就是我得到的:

a) 我将变量lastButtonClicked设置为在主应用程序中单击的最后一个按钮

private var lastButtonClicked:DisplayObject;

    private function lastButtonClickedFunction(event:MouseEvent):void {
        lastButtonClicked = event.currentTarget as DisplayObject;

    }
b) 我有一个标题窗口打开,有一个是/否选项。我有一个自定义事件将答案返回到主应用程序

c) 在主应用程序中,我尝试删除基于自定义事件发送的数据选中的lastButtonClicked。所以,我的问题在于这个函数。由于某种原因,它不允许我卸下按钮。相反,我得到了错误的答案

private function answerHandler( event:AnswerEvent ):void {
        if(event.answerCorrect == true){
            removeChild(lastButtonClicked);
        }
    }
关于如何调试这个问题有什么建议吗?自定义事件正在正常启动。如何修复此行:removeChild(lastButtonClicked)

编辑:我试过hbox1.removeChild(最后一个按钮被选中),它成功了。已从主应用程序中删除相应的按钮。问题是并非所有按钮都在hBox1中。我还有其他的HBox。因此,我需要找出一种更通用的方法,而不是在语句中使用hBox1。我对此感到厌倦。removeChild(上次按下按钮),但它不起作用。多谢各位

多谢各位


-Laxmidi

据我所知,您似乎拥有
标题窗口中的按钮以及应用程序中的事件处理程序。对于
TitleWindow
(例如:
TitleWindow.removeChild(lastButtonClicked)
)的实例,您可能希望调用
removeChild
),而不是从应用程序调用

我解决了。我创建了一个变量并将其设置为lastButtonClicked的父级

私有变量myParent:Object; myParent=lastButtonClicked.parent

然后在我的回答中我写道:

myParent.removeChild(lastButtonClicked)

多谢各位


-Laxmidi

你好,拉维·古马迪,谢谢你的留言。我想删除的按钮位于主应用程序中。(标题窗口中有一个yes/no单选按钮。但是,我不需要对标题窗口执行任何操作。)我尝试了hBox1.removeChild(lastButtonClicked)并成功。但是,问题是我还有其他按钮没有在hBox1中。我试过这个。removeChild(lastButtonClicked)但没用。如果你有什么建议,请告诉我。谢谢。我已经在几个HBox的主应用程序中设置了按钮。HBox依次位于名为mainVBox的VBox内部。我试过mainVBox.removeChild(lastButtonClicked),但也没用。k,就是这个,Amarghosh回答,所以Laxmidi u开始工作,