【问题标题】:Changing attached class library symbols on the fly动态更改附加的类库符号
【发布时间】:2014-03-19 11:54:11
【问题描述】:

我在大学做作业,我必须使用 Flash 制作游戏。

有几个限制:

  1. 不超过 5 个类(不包括 Main)

  2. 没有数组(虽然我们可以使用精灵作为容器,这为我们提供了显示对象数组的功能)。

  3. 没有时间线脚本

我决定制作一个 2D 横向滚动射击游戏,就像 R-Type Leo (http://www.youtube.com/watch?v=DjRAYV0jHBE)。

我目前的课程是:

Main、BaseObject、船、子弹、敌人、BG1、BG2、BG3

我创建了 3 个具有透明背景并被白点(星形)覆盖的 png 文件,每个 png 文件的宽度都不同,因此我可以将它们用于视差滚动。然后我导入了 png 并将它们转换为库符号。然后将 3 个符号中的每一个附加到一个单独的类。

我的问题是我必须有 3 个 BG(背景)类,有什么方法可以使用 1 个类来显示 3 个单独的库符号,还是每个符号都必须是一个类?

如果我不能即时更改库符号,我有一个解决方案;我将只有 1 个背景库符号,并将使用 Sprite 属性来更改比例/旋转/位置等以产生视差效果。

最后我听说有一种方法可以在不将库符号实际附加到类的情况下对其进行操作,即。我可以将符号放在 fla 文件中的舞台上,然后从 main 操作它们,而实际上根本不需要 BG 类,如果是这样,如何实现?这是不好的做法吗?

【问题讨论】:

  • 我应该补充一点:我已经尝试进入 3 个背景符号的属性并为每个符号输入相同的“基类”名称。但是当我现在尝试实例化它们时,它说:“在基类 Classes:BG 中找不到默认构造函数”这很奇怪,因为它们是构造函数,我已经三次检查了代码,这绝对是正确的......
  • 为什么我不创建具有 3 个(或更多)静态属性的单个 BG 类作为加载的资产?

标签: actionscript-3 flash parallax


【解决方案1】:

我的问题是我必须有 3 个 BG(背景)类,有什么方法可以使用 1 个类来显示 3 个单独的库符号,还是每个符号都必须是一个类?

只需创建一个 MovieClip 并将所有背景放在不同的帧上。然后对每个实例使用gotoAndStop,让它显示不同的背景。

【讨论】:

    【解决方案2】:

    您可以使用程序背景。例如,使用Graphics 生成一些简单的背景(被白点覆盖)。

    我可以将符号放在 fla 文件中的舞台上并对其进行操作

    是的,你可以。您可以在库中创建多个符号,并将它们放置在屏幕外(左上区域,如果您将使用stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE;),或者您可以切换可见性(mySceneAsset.visible = true|false)。并且不要忘记分配一些名称,以便您可以访问它们 - var someAsset: DisplayObject = getChildByName("someBackground1"); 但我会选择程序背景,因为这对于大学来说是非常简单的游戏。

    【讨论】:

    • 谢谢。我已将符号直接放在 fla 的舞台上,并从 main 操纵它们以产生我的视差 :-)
    【解决方案3】:

    我的问题是我必须有 3 个 BG(背景)课程,有吗 任何方式我都可以使用 1 个类来显示 3 个单独的库符号或 每个符号都必须是一个类吗?

    您可以从外部加载图像

    http://www.republicofcode.com/tutorials/flash/as3loader/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-25
      • 1970-01-01
      • 1970-01-01
      • 2020-07-02
      • 1970-01-01
      • 2017-02-23
      • 2021-01-07
      • 1970-01-01
      相关资源
      最近更新 更多