铸造问题(AS3)

时间:2015-03-02 18:11:56

标签: actionscript-3 casting

我一直致力于迷宫生成任务,而且我的代码的主要部分也遇到了困难。

        fillNeighbours(neighbours, cell);//this checks to see which  
                                           neighbours are available

        while (neighbours.length > 0) {

            var index:int = (Math.random() * neighbours.length);
            Math.floor(index);
            var ob:Object = neighbours.splice(index, 1);
            trace("ob: " + ob);
            var pnt:Point = (ob as Point);
            trace("pnt: " + pnt);
            generate(pnt);

        }

似乎将对象作为一个点进行投射就是问题所在。因为它没有正确地将对象转换为点。当我跟踪对象时,它跟踪随机点(x,y)的坐标,但是当我跟踪该点时,它跟踪为空并且错误运行: [Fault] exception,information = TypeError:Error# 1009:无法访问空对象引用的属性或方法。我一直在寻找过去5天的错误,我很确定它不是太小。如果有人知道我的问题是什么,我愿意给他们买食物。 PLS。帮助

1 个答案:

答案 0 :(得分:0)

如果ob as Point不是null的实例,

ob将返回Point。我想你会在trace("pnt"+pnt)输出中看到这种情况。

AS3有另一种转换方式:Point(ob)如果ob不是Point实例,则会抛出运行时错误。

另一种检查ob是否确实是Point的方法: (ob is Point)仅当true值引用ob个实例时才会Point

我想@BotMaster是对的,说你的数组实际上并没有Point个实例。