AS3 Flash CS6对象基类和类

时间:2012-12-30 17:44:51

标签: actionscript-3 flash air

我似乎遇到了一个小问题,我正在创建一个新的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 +基类的图像

enter image description here

这里还有怪物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;
        }
    }
}
}

1 个答案:

答案 0 :(得分:1)

你的怪物类没有视觉方面。

Monster1,是我假设你的怪物艺术品,对吗?

要使用Monster1类,您可以使用以下代码:

var newMonster:Monster1 = new Monster1;
addChild(newMonster);

我不清楚你的方法是什么,但根据你的设置你永远不会创建一个可视元素的实例 - 这是Monster1类。