2010-03-22 55 views
0

我有檢查,如果在舞臺上存在的對象並將其刪除函數內部的代碼片段:引發ArgumentError:錯誤#2025:提供的DisplayObject必須是調用錯誤的孩子 - AS

public function closeContent(e:MouseEvent):void { 
    removeChild(txt); 
    removeChild(ldr.content); 
    removeChild(_closeButton); 
    container_mc.visible = false; 
    statusText.text=""; 
    if (contains(submitButton)) { 
     removeChild(submitButton); 
    } 
    if (contains(saveinfoButton)) { 
     removeChild(saveinfoButton); 
    } 
} 

我試圖改變stagethisroot但總是收到此錯誤ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller

+0

這將有助於讀者很多,如果你格式化代碼。 – 2010-03-22 16:49:01

回答

3

ŧ他錯誤的信號,你試圖刪除DisplayObjectremoveChild,這顯然不是DisplayObjectContainer該代碼執行的孩子。

解決此問題的一種方法是檢查您嘗試刪除的對象實際上是使用contains的容器的子項。您正在爲要刪除的某些對象(submitButtonsaveinfoButton)執行此操作,但對其他某些對象不適用。

嘗試中,如果使用contains語句來檢查這些DisplayObject S是否是容器包裝的removeChild呼籲txtldr.content_closeButton

0

與嘗試:

e.currentTarget.parent.removeChild(txt); 
e.currentTarget.parent.removeChild(ldr.content) 
etc. 
+0

感謝您的回答。嘗試了你的建議,但仍然得到同樣的錯誤... – Dimitree 2010-03-23 12:47:42

0

試試這個:

public function closeContent(e:MouseEvent):void { 
    removeChild(txt); 
    removeChild(ldr.content); 
    removeChild(_closeButton); 
    container_mc.visible = false; 
    statusText.text=""; 
    if (contains(submitButton)) { 
     removeChild(submitButton); 
     removeChild(saveinfoButton); 
    } 
} 

您可以在有條件的添加兩個項目的去除與& &:

if (contains(submitButton && saveinfoButton)) { 
相關問題