我似乎遇到了一点问题,我正在使用 AS3 创建一个新的影片剪辑作为变量,现在 AS 文件是 Monster.AS,如果我将基类作为 Monster 和类作为对象,则使用我的对象Monster1,怪物代码运行,因为我有一个跟踪消息,但它没有显示在屏幕上,如果我将基类更改为 flash.display.MovieClip 并将类更改为 Monster,它会运行代码并显示敌人......我很困惑为什么它显示和不显示,因为基类是如何工作的,这是创建怪物的代码
这是 Level.as 的代码片段
public function Level( playerHero:HeroDisplay )
{
trace("Level code ran");
monsterArray = new Array();
heroGra = playerHero;
addChild( heroGra );
var newMonster = new Monster();
monsterArray.push( newMonster );
addChild( newMonster );
setupLevel(1);
//Buttons
this.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin);
this.addEventListener(TouchEvent.TOUCH_MOVE, onTouchMove);
this.addEventListener(TouchEvent.TOUCH_END, onTouchEnd);
}
这对两者都有效,但如上所述,如果 Base Class = Monster Class = Monster1 将不会显示,如果 Base Class = flash.display.MovieClip Class = Monster 将显示。
有谁知道为什么?
帆布
更多信息,这是类+基类的图像
这里还有怪物AS文件
package
{
import flash.display.MovieClip;
public class Monster extends MovieClip
{
public var id:Number;
public var hp:Number;
public var damage:Number;
public var speed:Number;
public var xPos:Number;
public var yPos:Number;
public var avaiableSkill:Number;
public function Monster()
{
id = 1;
monsterSetup();
}
public function monsterSetup():void
{
switch(id)
{
case 1: hp = 10; damage = 1; speed = 2; avaiableSkill = 0; this.x = 100; this.y = 150; trace("Monster Setup");
break;
default:
break;
}
}
}
}