2010-10-05 88 views
1

我收到Flex ArgumentError错误#2025:提供的DisplayObject必须是调用方的子项。Flex 3错误#2025使用removeChild时

这是我的本钱:

一)我设置变量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。我厌倦了this.removeChild(lastButtonClicked),但它没有奏效。谢谢。

谢谢。

-Laxmidi

回答

0

我解决了它。我做了一个变量,并将其设置为lastButtonClicked的父级。

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

然后在我的answerHandler我写道:

myParent.removeChild(lastButtonClicked);

谢谢。

-Laxmidi

+0

k,这是一个,由Amarghosh回答,所以Laxmidi你开始工作, – 2010-10-06 07:06:03

0

据我所知,好像你在一个TitleWindow的按钮,并在应用程序中的事件处理程序。您可能想要拨打removeChild作为TitleWindow(例如:titleWindow.removeChild(lastButtonClicked))的实例,而不是来自应用程序。

+0

嗨Ravi Gummadi,感谢您的留言。我想删除的按钮位于主应用程序中。 (TitleWindow中有一个是/否的单选按钮,但是我不需要对TitleWindow做任何事情。)我尝试了hBox1.removeChild(lastButtonClicked)并且它工作正常。但问题是我有其他不在hBox1中的按钮。我试过this.removeChild(lastButtonClicked),但没有奏效。如果oyu有任何建议,请告诉我。谢谢。 – Laxmidi 2010-10-05 22:15:38

+0

我在几个HBox中的主应用程序中有按钮。 HBox依次位于名为mainVBox的VBox内部。我尝试了mainVBox.removeChild(lastButtonClicked),但那也没有奏效。 – Laxmidi 2010-10-05 22:31:51

相关问题