我目前正在編碼遊戲,並且在代碼的一部分中,它檢查玩家是否足夠接近mArray
中的怪物,以便其健康欄顯示。我使用hitTestObject
與var i
增加通過列表。不過,我會隨機收到此錯誤信息:AS3:hitTestObject無理由變爲空
TypeError: Error #2007: Parameter hitTestObject must be non-null.
看到這是第一次後,我把所有測試下的條件if (mArray.length > 0)
,以確保陣列()甚至試圖在測試前充滿..但它仍然會隨機發生。我甚至使用trace(i)
來查看它是否發生在列表的某個部分,但每次調試會話都是完全隨機的!我知道player
部分不能爲null,因爲它在hitTest期間的任何時候都在屏幕上,所以我現在不知所措。
的代碼有問題(沒有其他與此相關的,除了在不同的地方使用mArray[i]
)的部分:
for (var i:int = 0; i < mArray.length; i++) {
if (mArray.length > 0) {
trace(i); //my attempt to see if it occurred at a specific incrementation of i
if (player.hitTestObject(mArray[i])) {
mArray[i].healthBar.visible = true;
} else {
mArray[i].healthBar.visible = false;
}
}
}
此外,它完美的一切,所有的時間除了隨機病例它給了我TypeError。這只是我的代碼中的一個小問題,是否存在一些我忽略的顯而易見的問題,或者代碼是否會退回到2007
?
編輯:調試會話總是指向if (player.hitTestObject(mArray[i]))
行。
請發佈'mArray [i]''的其他用途,以及您對此數組所做的一切事情。 – null