2009-04-29 3 views
0
if (theData.hasOwnProperty("@id1")) { 
    var myObj:Hello = new Hello(); 
    textArea.visible = false;    
    panel.addChild(myObj); 
} else if (theData.hasOwnProperty("@id2")) { 
    textArea.visible = false; 
    var vijay:MCQ = new MCQ(); 
    panel.addChild(vijay); 
} 

Wenn ich auf das nächste Element klicke, ist das vorherige Fenster noch sichtbar. Wie kann ich myObj zerstören? Ich bin nicht in der Lage, es durch removeChild zu tun.Problem in itemClick

Antwort

1

Wenn Panel immer nur ein Objekt enthält, können Sie den folgenden verwenden, bevor Sie den neuen hinzufügen:

panel.removeAllChildren(); 

Wenn es eine bekannte Anzahl von „statischen“ Kinder in das Panel sind, könnten Sie bedingt entfernen Sie die zusätzlichen diejenigen:

while (panel.numChildren > EXPECTED) { 
    panel.removeChildAt(panel.numChildren - 1); 
} 

die beste Option, einen Verweis auf das Objekt, das Sie so hinzugefügt zu halten wäre, dass Sie es removeChild explizit mit entfernen(). Wenn diese Alternativen nicht funktionieren, könnten Sie vielleicht Ihre Einschränkungen erklären.

+0

Ich möchte darauf hinweisen, dass removeAllChildren ist eine einzige Flex-Sache, nicht AS3 im Allgemeinen, wie für Flash, so dass niemand verwirrt wird :) –