我正在使用Flex 3 SDK和免费的FlashDevelop IDE。
由于我没有FlexBuilder或Flash CS4 Professional,因此无法以图形方式制作MovieClip。
所以我想使用代码或MXML创建一个简单的MovieClip。例如,假设我想创建一个包含3个帧的MovieClip,并将位图加载到每个帧中以创建一个简单的动画。
这可能吗?我有一个很好的谷歌和我能找到的唯一例子是加载现有的MovieClip并将它们添加到舞台。
答案 0 :(得分:1)
您可以使用以下简单代码创建一个动画片段:
var mc:MovieClip = new MovieClip();
stage.addChild(mc);
这是因为只是和空的movieclip,你可以使用图形属性(see here)绘制它。
据我所知,没有办法用actionscript创建框架。虽然可能有一些未记录的方法。有些功能未出现在文档中(例如addFrameScript方法)。
我想说最好的方法(如果你绝对不能使用Flash CS4),就是拥有一系列Loader个对象,然后隐藏并按顺序显示它们。 只需将它们放在一个数组中,然后收听enterFrame事件即可。 您可以加载Loader对象中的位图。
如果您使用链接并查看文档中的示例,我认为您应该能够弄明白。
答案 1 :(得分:0)
就我所见,没有简单的方法可以在Flex中创建一个MovieClip,其行为方式与Flash的实现MovieClip相当。但我认为你真的不想要一个MovieClip。 Flex并不能很好地适应非flex对象。是的,可以向UIComponent添加一些内容,但是使用Flex框架比使用变通方法要好得多。
我会使用mx:Image标签来加载你的图片。它通常是将图像加载到Flex中的最简洁方法。它允许您在编译时将对象嵌入到SWF中,这意味着您不必指向外部文件。我会提醒你有太多嵌入式图形 - 这会导致你的下载时间和性能下降。
如果您只对动画移动或重新调整大小感兴趣,那么我将使用本机Flex Tweens的Move和Resize对象。
答案 2 :(得分:0)
您最好的选择可能是扩展UIComponent类,将MovieClip添加为子组件,并通过代理应用MXML中的设置。如,
public function set movieFrames(value:Array):void {
for each(var b:Bitmap in value) {
//add bitmap to _movieclip object.
}
}
答案 3 :(得分:0)
你想要一个Sprite而不是MovieClip。并使用时间而不是帧。有一个Timer类和一个getTimer()函数。使用它们。