【发布时间】:2015-09-14 16:13:45
【问题描述】:
我目前正在编写一个游戏,在代码的一部分中,它正在检查玩家是否与mArray 中的怪物足够近,以使其健康条出现。我为此使用hitTestObject,var i 递增以遍历列表。但是,我会随机收到此错误消息:
TypeError: Error #2007: Parameter hitTestObject must be non-null.
在第一次看到这个之后,我将测试全部置于条件if (mArray.length > 0) 下,以确保 Array() 甚至在尝试测试之前就已填充......但它仍然随机发生。我什至使用trace(i) 来查看它是否发生在列表的某个部分,但每次调试会话都是完全随机的!我知道player 部分不能为空,因为它在 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]的其他用途以及您对这个数组所做的所有事情。
标签: arrays actionscript-3 null typeerror hittest