的孩子,如果im全光照功能的MC添加到舞臺,像這樣:AS3 stage.addChild/stage.removeChild <<必須呼叫者
var myChild:MC= new MC();
function somefunc()
{
stage.addChild(myMC)
}
但是當我嘗試刪除MC:
stage.removeChild(myMC)
我得到提供的DisplayObject必須是調用者錯誤的子... 任何建議或變通?
的孩子,如果im全光照功能的MC添加到舞臺,像這樣:AS3 stage.addChild/stage.removeChild <<必須呼叫者
var myChild:MC= new MC();
function somefunc()
{
stage.addChild(myMC)
}
但是當我嘗試刪除MC:
stage.removeChild(myMC)
我得到提供的DisplayObject必須是調用者錯誤的子... 任何建議或變通?
如果可能,您可以嘗試隱藏並顯示movieClip。 我認爲它比刪除和添加代碼允許的情況要快一些。 請記住,這只是一個建議,有人比我更聰明,能夠幫助你。
如果項目在舞臺上,您的代碼應該可以工作。也許,象這樣一個條件語句限定它:
if (myMC.stage != null)
stage.removeChild(myMC);
另外,您可以使用下面的代碼,但它可能不是最好的做法。
if (myMC.parent != null)
myMC.parent.removeChild(myMC);
它再次運作,謝謝,雖然我overmas有一個有趣的點隱藏和showin – Ric
你也可以使用此故障安全:
如果(myMC.parent)myMC.parent.removeChild(myMC);
問題不在於removeChild。這是與顯示列表。如果您檢查displayobject的父屬性,當您調用「removeChild」時,它將爲空。
它爲什麼會成爲空可能是因爲很多原因的:
我可以解決這個問題,只需刪除我添加到該對象的每個EventListeners,然後再刪除它。
Ric,確保你知道你在做什麼,當你使一個displayobject不可見時。請閱讀[本文](http://www.developria.com/2008/11/visible-false-versus-removechi.html),瞭解alpha,visible和removeChild之間的詳細分類。 –