Actionscript 3 将Number类型的值隐式强制为不相关的flash类型。显示:MovieClip
当我试图通过函数传递MovieClip时,我得到错误: “将Number类型的值隐式强制为不相关的flash类型。显示:MovieClip” 房间生成类别:Actionscript 3 将Number类型的值隐式强制为不相关的flash类型。显示:MovieClip,actionscript-3,flash,flash-builder,Actionscript 3,Flash,Flash Builder,当我试图通过函数传递MovieClip时,我得到错误: “将Number类型的值隐式强制为不相关的flash类型。显示:MovieClip” 房间生成类别: public var generatedRoom:Array; public function enemyPack():void { //trace(generatedRoom[createdRooms]); var random:int = Main.getRandom(0,5);
public var generatedRoom:Array;
public function enemyPack():void
{
//trace(generatedRoom[createdRooms]);
var random:int = Main.getRandom(0,5);
switch(random)
{
case 0:
Main.spawnEnemy(roomX+Main.getRandom(50, room.width-50),generatedRoom[createdRooms],roomY+Main.getRandom(50, room.height-50));
break;
}
}
敌人阶级:
public function spawn(setX:int,setY:int, inRoom:MovieClip ,b:int = 0):void
{
timeToSlow = Main.getRandom(500,1500)
type = b;
isDestroyed = false;
switch(type)
{
case 0:
life = 100 + (Math.pow(Main.dific,4));
maxLife = life;
model = new MC_EnemigoD();
bulletSpeed = Main.getRandom(3,6);
timeToMove = 400;
bulletModel = new MC_BulletE();
speed = 1 + (Main.nivel)/2;
aggro = 250;
break;
case 1:
life = 125 + (Math.pow(Main.dific,4));
maxLife = life;
model = new MC_EnemigoC();
speed = 0.5 /*+ (Main.nivel)/2*/;
break;
case 2:
life = 500 + (Math.pow(Main.dific,4));
maxLife = life;
model = new MC_BossM();
speed = 1 + (Main.nivel)/2;
timeToMove = Main.getRandom(400,600);
bulletModel = new MC_BulletC();
bulletSpeed = Main.getRandom(6,9);
timeToShoot = Main.getRandom(1500,2000);
aggro = 400;
break;
case 3:
life = 400 + (Math.pow(Main.dific,4));
maxLife = life;
model = new MC_Troll();
speed = 0.6 /* + (Main.nivel)/2*/;
break;
case 4:
life = 1000 + (Math.pow(Main.dific,4));
maxLife = life;
model = new MC_BossB();
model.scaleX = 0.5;
model.scaleY = 0.5;
speed = 3 + (Main.nivel)/2;
break;
}
model.addChild(shadow);
//Main.render.
Main.render.addChild(model);
model.gotoAndPlay("spawn")
model.y = setY;
model.x = setX;
realHeight = model.height;
realWidth = model.width;
shadow.scaleX = model.scaleX + 0.1;
shadow.scaleY = model.scaleY;
shadow.x = (model.hitBox.width/2)+6-(shadow.width/2);
shadow.y = (model.hitBox.height)-9;
model.setChildIndex(shadow, 0);
model.addChild(hpBar);
hpBar.addChild(hpBarColor);
hpBarColor.scaleY = 0.9;
hpBarColor.scaleX = 0.97;
hpBarColor.y = 1;
hpBarColor.x = 1;
hpBar.scaleY = 0.7;
hpBar.x = (model.hitBox.width/2)+5-(hpBar.width/2);
hpBar.y = (model.hitBox.height)+(hpBar.height);
model.hitBox.visible = false;
}
主要类别:
public static function spawnEnemy(setX:int,setY:int, inRoom:MovieClip, t:int = 0):void
{
//trace(setX,setY)
var temp:Enemy = new Enemy();
temp.spawn(setX,setY, inRoom, t);
allEnemies.push(temp);
}
当我跟踪变量时,如果我用引起错误的行猜测,它将返回[object MC_uu“myMovieClip”]
看起来像是你的呼叫
Main.spawnEnemy(roomX+Main.getRandom(50, room.width-50),//int
generatedRoom[createdRooms],//a MovieClip?
roomY+Main.getRandom(50, room.height-50)//int
);//(int, MovieClip(?), int)
没有正确的参数顺序:
spawnEnemy(setX:int,
setY:int,
inRoom:MovieClip,
t:int = 0)//(int, int, MovieClip)
提示:不要在Main
上将所有内容都设置为静态
函数。数学效用函数应为顶级函数或包含类似效用函数的单独类。生成敌人将最终改变对象的状态,它不应该是静态的。编辑以添加功能。“敌人产卵”几乎是一次性代码,我想首先让它工作。现在添加错误发生的行和堆栈跟踪。噢,哇,非常感谢,是的,我以错误的顺序调用了参数。