2012-08-14 57 views
0

我對我的敵人的healthBar的removeChild函數有問題。當它們被摧毀時,我也會移除它們的hp欄。但是,我收到錯誤#2025:DisplayObject必須是調用者的子項。奇怪的部分是它的工作原理和hpBar被刪除。我試圖添加一個斷點,當刪除子功能被調用,但我從來沒有收到這樣的錯誤。removeChild給出錯誤#2025

if(level.enemies[enemyNum].healthBar != null){ 
    level.levelObjects.removeChild(level.enemies[enemyNum].healthBar); 
} 

這是移除healthBar的代碼,我得到的錯誤是針對此行。

感謝您的幫助。讓我知道你是否需要更多的代碼或有任何問題。

+0

需要一個更大的片斷,東西時,敵人死了,當他們在視覺上移除涉及。鑑於你的新bug,你似乎從列表中刪除了敵人,從而在陣列上得到了一個不正確的計數器......但是,由於這是一個新的bug,你應該開一個新的問題,如果你的原始問題解決了,接受mgraphs回答。 – 2012-08-14 06:08:19

回答

0

嘗試:

if(level.levelObjects.contains(level.enemies[enemyNum].healthBar)){ 
    level.levelObjects.removeChild(level.enemies[enemyNum].healthBar); 
} 
+0

這些都給我一個錯誤,因爲healthBar對象是levelObjects的子對象。 levelObjects基本上是我級別的精靈,我在這個精靈中加入了孩子。它目前的工作方式,並刪除healthBar,但我得到的錯誤無論如何。 – oliboon 2012-08-14 00:54:26

+0

@OlivierParenteau查看更新的答案 – mgraph 2012-08-14 00:57:19

+0

我早些時候試過,似乎工作,因爲我沒有得到這個錯誤了。然而,我得到了最奇怪的錯誤,它會移除一個隨機敵人(不是被摧毀的)精靈,但會留下這個敵人的hpBar和事件,以便我看到一個沒有敵方精靈的hpBar,移動並射擊子彈。我不知道這是否與hpBar刪除有關,但只有在使用contains()方法時纔會發生。 – oliboon 2012-08-14 01:26:11