1

我似乎遇到了一点问题,我正在使用 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;
        }
    }
}
}
4

1 回答 1

1

你的 Monster 类没有视觉方面。

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

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

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

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

于 2012-12-30T22:18:05.353 回答