我一直致力于迷宫生成任务,而且我的代码的主要部分也遇到了困难。
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。帮助
答案 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
个实例。