1

我有一个名为 HomingBullet 的 MovieClip 类,它是一个空的 MovieClip(里面没有图形)。我正在努力做到这一点,以便当我实例化 HomingBullet 时,我可以从库中选择一个图形。目前,HomingBullet 的构造函数如下所示:

public function HomingBullet(speed:int)
{
    playerX = Main.instance.getPlayerX();
    playerY = Main.instance.getPlayerY();
    this.speed = speed;
    addEventListener(Event.ADDED_TO_STAGE, addedToStage);
}

此类的典型实例化当前如下所示:

var tempBulletA = new HomingBullet(6);

本质上,我正在尝试制作它,以便在实例化它时可以从库中选择要使用的图形。

4

2 回答 2

1

当然。最简单的方法是在您的库中创建一个 MovieClip 并将位图放置在其中。然后打开该影片剪辑的属性对话框,单击“高级”下拉菜单,然后选中“Export for ActionScript”并为其命名。对于这个例子,假设我选择“Image1”作为我的类名。

然后在您的代码中,您可以执行以下操作:

public function HomingBullet(speed:int, image:DisplayObject)
{

    addChild(image);
    playerX = Main.instance.getPlayerX();
    playerY = Main.instance.getPlayerY();
    this.speed = speed;
    addEventListener(Event.ADDED_TO_STAGE, addedToStage);
}

你可以用以下方式实例化它:

var tempBulletA = new HomingBullet(6, new Image1());

您可以只使用一个位图并以相同的方式将其导出(不使用动画剪辑包装器),但这有点烦人,因为您在创建位图时必须知道位图的高度和宽度。

于 2013-03-13T01:40:05.547 回答
1

我将假设您库中的所有项目符号都是基于 MovieClip 的。您可以将构造函数设置为:

public function HomingBullet(speed:int, bulletClass:Class)
{
    addChild(new bulletClass());
    playerX = Main.instance.getPlayerX();
    playerY = Main.instance.getPlayerY();
    this.speed = speed;
    addEventListener(Event.ADDED_TO_STAGE, addedToStage);
}

要创建一个实例:

var tempBulletA = new HomingBullet(6, someBullet);

上面示例中的 someBullet 将是您想要使用的所需项目符号的类名称。

于 2013-03-13T01:40:07.567 回答