0

我正在使用 Flex 3 SDK 和免费的FlashDevelop IDE。

由于我没有 FlexBuilder 或 Flash CS4 Professional,我无法以图形方式制作 MovieClip。

因此,我想使用代码或 MXML 创建一个简单的 MovieClip。例如,假设我想创建一个包含 3 帧的 MovieClip,并将位图加载到每个帧中以创建一个简单的动画。

这可能吗?我有一个很好的谷歌,我能找到的唯一例子是加载现有的电影剪辑并将它们添加到舞台。

4

4 回答 4

1

您可以使用以下简单代码创建影片剪辑:

var mc:MovieClip = new MovieClip();
stage.addChild(mc);

那是因为只是和空的影片剪辑,您可以使用图形属性在其上绘制(请参见此处)。

据我所知,没有办法用动作脚本创建框架。虽然可能有一些未记录的方法。有些函数没有出现在文档中(如addFrameScript方法)。

我想说最好的方法(如果你绝对不能使用 Flash CS4),就是拥有一系列Loader对象,然后依次隐藏和显示它们。只需将它们放在一个数组中并监听enterFrame事件。您可以在 Loader 对象中加载位图。

如果您使用链接并查看文档中的示例,我认为您应该能够弄清楚。

于 2009-06-02T14:05:26.557 回答
0

据我所见,在 Flex 中创建 MovieClip 并不容易,它的行为方式可能与 Flash 的实现 MovieClip 相当。但我不认为你真的想要一个 MovieClip 开始。Flex 不能很好地处理非 flex 对象。是的,可以向 UIComponent 添加一些东西,但是使用 Flex 框架比使用变通方法要好得多。

我会使用 mx:Image 标签来加载您的图像。这通常是将图像加载到 Flex 中最简洁的方式。它可以让您在编译时将对象嵌入到 SWF 中,这意味着您不必指向外部文件。我会警告有太多的嵌入式图形——这会浪费你的下载时间,甚至可能影响你的性能。

如果您只对动画移动或调整大小感兴趣,那么我会使用本机 Flex Tweens 的 Move 和 Resize 对象。

于 2009-06-02T16:58:13.473 回答
0

您最好的选择可能是扩展 UIComponent 类,添加一个 MovieClip 作为子组件,并通过代理应用来自 MXML 的设置。例如,

public function set movieFrames(value:Array):void {
   for each(var b:Bitmap in value) {
      //add bitmap to _movieclip object.
   }
}
于 2009-06-23T00:55:51.977 回答
0

你想要一个 Sprite 而不是一个 MovieClip。并使用时间而不是帧。有一个 Timer 类和一个 getTimer() 函数。使用它们。

  1. 创建一个扩展/实现 Sprite 的类。
  2. 添加一个加载器类。
  3. 谷歌它究竟是如何完成的。(flashtuts.com 或类似的东西)。
于 2009-07-08T11:22:49.103 回答