ActionScript错误1151:随机选择的障碍物

时间:2014-02-11 17:33:12

标签: actionscript-3 flash namespaces

我对动作脚本相对较新,而且我试图选择一个随机选择的障碍来飞向我的玩家角色。我一直收到错误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
}
}

1 个答案:

答案 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;
}