0

刚刚发现可以在 Flash Professional IDE 中为具有 Sprite 类作为父级的符号提供链接。以前我确信唯一的选择是 MovieClip。

问题是:

如何让这些符号在运行时播放动画?当我将它放在 IDE 中的舞台上时,我可以扩展父级的时间线并使用 Loop 或 Play First 属性来控制精灵内部的动画。但是,如果我在运行时实例化该 Sprite 派生类,我不知道如何对其进行动画处理 :( 没有 play() 并且我不知道如何将它的时间线链接到父级的时间线请帮助。

更新:可能我误解了 Shape 和 Sprite 类的区别。所以我需要 Shape 或 Sprite 实例:)

4

2 回答 2

2

假设您的 IDE 中有一个名为 Bear_animation 的带有链接的符号,它是一个 MovieClip。

然后,您可以在代码中创建一个实例,如下所示:

// create an instance of your bear_animation symbol in library
var bearAnimation:MovieClip = new bear_animation;

然后你可以将它添加到舞台并像这样播放:

addChild(bearAnimation);
bearAnimation.gotoAndPlay(1);

另外,我相信您对 Sprite 是什么感到困惑。Sprite 是静态图形图像,没有时间线,因此它没有动画。因此,您没有播放动画的选项。

MovieClip 有一个时间线,因此可以有一组可以播放的帧。所以你只需使用:

yourMovieClip.gotoAndPlay(<frame_number_to_start_on>);

这行代码将从您指定的任何帧开始播放 yourMovieClip 的动画。

您无法为 Sprite 设置动画,因此您对这个问题的初始前提与第二部分相结合是可撤销的。如果要制作动画,则需要一个 MovieClip。我的建议是,如果您有带动画的元件,则需要在 IDE 中将其更改为 MovieClip。

于 2012-12-18T00:04:35.817 回答
1

正如其他人所提到的,Sprite 对象中没有时间线/帧。来自 Sprite 类 api 参考:

Sprite 对象类似于影片剪辑,但没有时间线。Sprite 是不需要时间线的对象的适当基类。例如,Sprite 将是通常不使用时间线的用户界面 (UI) 组件的逻辑基类。

该类没有任何播放帧的方法,甚至没有任何引用帧的方法。如果您需要帧或时间线,请使用 Movieclip:

来自 Movieclip api 参考:

与 Sprite 对象不同,MovieClip 对象具有时间线。

一个精灵基本上只有一帧。要为 sprite 中的对象设置动画,您必须通过代码对其进行动画处理。虽然我从未真正尝试过,但我认为如果您将 Movieclip(带帧)投射到 Sprite 中,它会卡在第一帧上。

于 2012-12-18T11:44:26.987 回答