动态更改附加的类库符号

时间:2014-03-19 11:54:12

标签: actionscript-3 flash parallax

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

有几个限制因素:

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

  2. 没有数组(尽管我们允许使用sprite作为容器,它为我们提供了显示对象数组的功能)。

  3. 没有时间轴脚本

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

    我到目前为止的课程是:

    Main,BaseObject,Ship,Bullet,Enemy,BG1,BG2,BG3

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

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

    如果我无法动态更改库符号,我有一个解决方案;我将只有1个背景库符号,并将使用Sprite属性来更改比例/旋转/位置等以产生parralax效果。

    最后我听说有一种方法可以操作库符号而不必将它们实际附加到类中,即。我可以把符号放在fla文件的舞台上,然后从main操作它们而不必实际拥有BG类,如果是这样的话,怎么能实现呢?这是不好的做法吗?

3 个答案:

答案 0 :(得分:1)

  

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

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

答案 1 :(得分:0)

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

  

我可以将符号放在fla文件的舞台上并操纵它们

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

答案 2 :(得分:0)

  

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

您可以从外部加载图片

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