0

我在函数中收到错误 #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);
        }
    }
4

1 回答 1

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将根据point.x - (mag / 32)标准的Order of Operations进行计算。我不确定这是否是您的意图,但想指出这一点。

于 2013-06-17T09:22:08.680 回答