在阶段中的随机X位置生成库对象的实例

时间:2014-03-09 05:34:02

标签: actionscript-3 flash actionscript adobe

我是ActionScript 3.0的新手,我只是想制作一个简单的游戏,其中一个MovieClip的实例从屏幕顶部落到随机的X位置。

计划: 创建类似于MovieClip的4-5个实例,在随机X上将它们放在舞台上方,让它们掉落。一旦它们离屏,它们应该循环回到顶部,并在它们这样做时重新随机化X坐标。

问题: 我需要有关脚本的帮助,因为我几乎不知道如何做到这一点。我知道如何让我的按钮进入我想要的场景,以及如何使抓住所述MovieClip的篮子沿x轴移动......就是这样。

谢谢!

如果我留下任何信息,请告诉我。

1 个答案:

答案 0 :(得分:2)

您需要做的第一件事(如果您还没有这样做)是将其导出为ActionScript。

第1步:右键单击库中的影片剪辑。点击属性。选中“导出for ActionScript ”复选框。如果您看不到它,则可能需要先点击高级。为动画片段指定一个类名。除非要扩展另一个类实例,否则可以保留基类。点击确定

第2步:右键单击要生成动画片段的时间轴中的帧。点击操作。假设我们将类命名为 MyMovieClip ,这段代码会将该影片剪辑的实例添加到舞台中:

var mc:MyMovieClip = new MyMovieClip() // creates a instance of the movieclip, i.e, an object
addChild(mc);                          // adds the movie clip to the upper left corner of the stage relative to the movie clip's registration point

这基本上就是你如何在舞台上添加一个动画片段。要在舞台中的随机 x位置添加它,您需要使用 mc x y 字段和 Math.random()函数。

Math.random()生成0到1之间的伪随机数n(0 <= n <1),例如0.1232 ......因为您可能需要一个值大于或等于0,您需要将结果乘以某个整数值。例如:

var result:Number = Math.random() * 100  // returns a number between n, where 0 <= n < 100

既然你想要一个相对于舞台的x值,你必须将 Math.random()与舞台的宽度相乘。

var randomX:Number = Math.random() * stage.stageWidth // returns a number between n, where 0 <= n < stage.stageWidth

第3步:只需使用在将其添加到舞台之前生成的伪随机数设置动画片段的x值。

mc.x = randomX;

如果您希望在进入舞台时自行制作动画,则需要在AS3中学习事件处理。见this link

祝你好运!