我似乎遇到了一个小问题,我正在创建一个新的movieclip作为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);
}
这适用于两者,但如上所述, 如果基类=怪物 Class = Monster1 不会显示 如果Base Class = flash.display.MovieClip 等级=怪物 将会显示。
任何人都知道为什么?
帆布
更多信息, 这是class +基类的图像
这里还有怪物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;
}
}
}
}
答案 0 :(得分:1)
你的怪物类没有视觉方面。
Monster1,是我假设你的怪物艺术品,对吗?
要使用Monster1类,您可以使用以下代码:
var newMonster:Monster1 = new Monster1;
addChild(newMonster);
我不清楚你的方法是什么,但根据你的设置你永远不会创建一个可视元素的实例 - 这是Monster1类。