使用removeChild时,Flex 3错误#2025

时间:2010-10-05 21:42:39

标签: flex removechild

我收到了Flex ArgumentError:错误#2025:提供的DisplayObject必须是调用者的子级。

这就是我所拥有的:

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

private var lastButtonClicked:DisplayObject;

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

    }

b)我打开了TitleWindow并且有一个是/否选项。我有一个自定义事件返回主应用程序的答案。

c)在主应用程序中,我正在尝试根据自定义事件发送的数据删除lastButtonClicked。所以,我的问题在于这个功能。由于某种原因,它不会让我删除按钮。我得到了错误2025.

private function answerHandler( event:AnswerEvent ):void {
        if(event.answerCorrect == true){
            removeChild(lastButtonClicked);
        }
    }

有关如何调试此问题的任何建议?自定义事件正在解雇。我如何修复此行:removeChild(lastButtonClicked); ?

编辑:我试过hbox1.removeChild(lastButtonClicked)并且它有效。正确的按钮已从主应用程序中删除。问题是并非所有按钮都在hBox1中。我有其他的HBox。所以,我需要找出一种更通用的方法,而不是在语句中使用hBox1。我厌倦了.removeChild(lastButtonClicked),但它没有用。谢谢。

谢谢。

-Laxmidi

2 个答案:

答案 0 :(得分:0)

据我所知,似乎你有一个TitleWindow中的按钮和应用程序中的事件处理程序。您可能希望为removeChild的实例(例如:TitleWindow)而不是应用程序调用{​​{1}}。

答案 1 :(得分:0)

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

private var myParent:Object; myParent = lastButtonClicked.parent;

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

myParent.removeChild(lastButtonClicked);

谢谢。

-Laxmidi