我有兩個場景。在場景1中,有一個腳本使用addChild(nameObject);
自動添加一個小孩,還有一個按鈕會轉到下一個場景。檢查孩子是否存在
當我從場景2回到場景1時,代碼會生成另一個對象。如何製作AS3腳本來檢查孩子是否已經在舞臺上存在?
我有兩個場景。在場景1中,有一個腳本使用addChild(nameObject);
自動添加一個小孩,還有一個按鈕會轉到下一個場景。檢查孩子是否存在
當我從場景2回到場景1時,代碼會生成另一個對象。如何製作AS3腳本來檢查孩子是否已經在舞臺上存在?
你最有可能尋找DisplayObjectContainer
的contains()
方法:
確定指定顯示對象是否爲
DisplayObjectContainer
實例或實例本身的孩子。搜索 包括整個顯示列表,包括這個DisplayObjectContainer
實例。孫子女,曾孫,等等,每個人都會返回true
。
if (!contains(nameObject)) {
// the object is not a child of the container
addChild(nameObject);
}
這是一個很好的答案,但我會建議(因爲潛在的父母是已知的),只要執行'if(nameObject.parent!= this)'會更有效率,因爲那時你並沒有通過所有子節點進行遞歸搜索。 – BadFeelingAboutThis
@BadFeelingAboutThis不起作用,對象不斷添加到舞臺上 – Jack
'包含(nameObject)'? http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/DisplayObjectContainer.html#contains() – 3vilguy