我在函数中遇到错误#1010,我想知道错误的具体位置是什么?谢谢!
public function getSide(point:Point,mag:Number):int
{
if (level.map[int(point.x - mag / 32)][int(point.y / 32)].typ != 2)
{
return 0;
}
else if (level.map[int(point.x / 32)][int(point.y+mag / 32)].typ!=2)
{
return 1;
}
else if (level.map[int(point.x+mag / 32)][int(point.y / 32)].typ!=2)
{
return 2;
}
else if (level.map[int(point.x / 32)][int(point.y-mag / 32)].typ!=2)
{
return 3;
}else{
return getSide(point,mag+1);
}
}
答案 0 :(得分:0)
错误#1010在未定义术语时抛出,例如值或方法。我将猜测并说这是导致错误的.typ
调用,因为您正在从二维level.map数组中检索无类型对象。
对于每个if-else,在调用.typ
之前尝试转换对象检索。例如,替换为:
level.map[int(point.x - mag / 32)][int(point.y / 32)].typ != 2
有了这个:
(level.map[int(point.x - mag / 32)][int(point.y / 32)] as MyClass).typ != 2
显然将MyClass
替换为您要投射到的类的名称。
另请注意,请注意point.x - mag / 32
将根据标准Order of Operations计算为point.x - (mag / 32)
。我不确定这是不是你想要的,但想指出它。