我对动作脚本相对较新,而且我试图选择一个随机选择的障碍来飞向我的玩家角色。我一直收到错误1151:命名空间内部的定义obstInstance存在冲突。我三次得到同样的错误。我认为这是因为我重复分配相同的障碍实例新值(即使它是在条件格式内)。任何帮助将不胜感激!
this.addEventListener(Event.ENTER_FRAME, obstacleGenerator);
function obstacleGenerator(e:Event):void
{
trace("Obstacle Generator Initiated");
var obstacleSelector:uint=Math.ceil(Math.random()*4);
trace("Obstacle Number ", obstacleSelector);
if (obstacleSelector==1){
var obstInstance:Obj1 = new Obj1();
}
else if (obstacleSelector==2){
var obstInstance:Obj2 = new Obj2(); //error 1151
}
else if (obstacleSelector==3){
var obstInstance:Obj3 = new Obj3(); //error 1151
}
else if (obstacleSelector==4){
var obstInstance:Obj4 = new Obj4(); //error 1151
}
}
答案 0 :(得分:1)
你试图给4个不同的对象命名。每个都需要一个单独的名称然后,您可以创建一个变量来保存currentObject并将其用作参考。
尝试
this.addEventListener(Event.ENTER_FRAME, obstacleGenerator);
var currentObj:Object;
var obstInstance1:Obj1;
var obstInstance2:Obj2;
var obstInstance3:Obj3;
var obstInstance4:Obj4;
function obstacleGenerator(e:Event):void
{
var obstacleSelector:uint=Math.ceil(Math.random()*4);
if (obstacleSelector==1){
setCurrentObj(obstInstance1 = new Obj1())
}
else if (obstacleSelector==2){
setCurrentObj(obstInstance2 = new Obj2())
}
else if (obstacleSelector==3){
setCurrentObj(obstInstance3 = new Obj3())
}
else if (obstacleSelector==4){
setCurrentObj(obstInstance4 = new Obj4())
}
}
function setCurrentObj(myObject:Object):void{
currentObj = myObject;
}