Flex 3 Error # 2025 cuando se utiliza removeChild
-
28-09-2019 - |
Pregunta
Me estoy poniendo un Flex ArgumentError: Error # 2025:. El DisplayObject suministrado debe ser un hijo de la persona que llama
Esto es lo que tengo:
a) que establece la variable lastButtonClicked hasta el último botón que se ha hecho clic en la aplicación principal.
private var lastButtonClicked:DisplayObject;
private function lastButtonClickedFunction(event:MouseEvent):void {
lastButtonClicked = event.currentTarget as DisplayObject;
}
b) que tiene un TitleWindow abierto y hay un sí / no hay opción. Tengo un evento personalizado devuelve la respuesta a la aplicación principal.
c) En la aplicación principal, que estoy tratando de eliminar lastButtonClicked basa en los datos enviados por el evento personalizado. Por lo tanto, mi problema es en esta función. Por alguna razón, no me deja quitar el botón. Recibo el error 2025 en su lugar.
private function answerHandler( event:AnswerEvent ):void {
if(event.answerCorrect == true){
removeChild(lastButtonClicked);
}
}
¿Alguna sugerencia sobre cómo depurar este problema? El evento personalizado está disparando bien. ¿Cómo puedo solucionar esta línea: removeChild (lastButtonClicked); ?
Edit: He intentado hbox1.removeChild (lastButtonClicked) y funcionó. El botón adecuado fue retirado de la aplicación principal. El problema es que no todos los botones están en hBox1. Tengo otros hboxes. Por lo tanto, tengo que encontrar una manera más genérica en lugar de utilizar hBox1 en el comunicado. Me this.removeChild cansado (lastButtonClicked), pero no funcionó. Gracias.
Gracias.
-Laxmidi
Solución 2
Lo resuelto. Hice una variable y la ponga a los padres de lastButtonClicked.
private var myparent: Objeto; myparent = lastButtonClicked.parent;
A continuación, en mi answerHandler escribí:
myParent.removeChild (lastButtonClicked);
Gracias.
-Laxmidi
Otros consejos
Por lo que entiendo, parece que usted tiene los botones en una TitleWindow
y el controlador de eventos en la aplicación. Es posible que desee llamar removeChild
para la instancia de TitleWindow
(por ejemplo: titleWindow.removeChild(lastButtonClicked)
) en lugar de la aplicación.