创建自己的帧动画并在movieclip中播放

时间:2011-06-21 14:21:10

标签: flex actionscript-3 flash-builder


我如何创建自己的帧动画和播放movieclip或任何movieclip扩展..我有这个代码,但是错了 - 我是flash builder初学者所以我不知道它是如何工作的..我可以在MovieClip中做到这一点

<?xml version="1.0" encoding="utf-8"?>

             

        public var mc:MovieClip;
        protected function application1_creationCompleteHandler(event:FlexEvent):void
        {
            var comp:UIComponent = new UIComponent();
            this.addElement(comp);

            mc = new MovieClip();

            for (var i:int =0; i<100; i++)
            {   
                var rect:Sprite = new Sprite();
                rect.graphics.beginFill(0x330000);
                rect.graphics.drawCircle(0, 0, 20);
                rect.graphics.endFill();
                rect.x=30 + (i%40)*5;
                rect.y=100;
                mc.addChild(rect);
            }
            comp.addChild(mc);
        }


        protected function button1_clickHandler(event:MouseEvent):void
        {
            mc.play();
        }
    ]]>
</fx:Script>

<s:Button click="button1_clickHandler(event)"/>

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

遗憾的是,无法在运行时创建MovieClip动画,只能使用Flash创作(或者可能导出为swf的其他工具)创建动画。

您可以选择创建一堆SpriteShape,并在逐帧显示时从显示列表中添加/删除这些内容。另一种选择,如果你的图形更简单,你可以为每一帧动态生成它们。

答案 1 :(得分:0)

我认为我们需要更多关于您希望创建的动画类型的信息。

取决于它是什么,理论上它可能是非常可能的。您将创建一个扩展MovieClip的单独类,并在'for循环'中实例化它。该类可以有各种动画指令和逻辑。扩展'MovieClip'并不是唯一的选择,但它确实可以让你使用Event.ENTER_FRAME,你需要使用Sprite来设置一个内部Timer或者使用一个公共的'update'或'draw'方法从您的主要代码中调用。

还有“Motion”类允许您加载具有相当大量控制权的XML动画指令。查找fl.motion.Animator。

你想做什么?欢迎使用ActionScript!