一.使用Animator类制作补间动画 Animator类将补间动画的XML说明应用于显示对象。Animator类的属性和方法控制动画的播 放,Flash Player会广播事件以便对动画状态的变化作出响应。Animator类主要由FlashCS3 的“将动作复制为ActionScript”命令使用。然后,可以使用应用程序编程接口编辑 ActionScript.
例: (1)制作一段动作补间动画 (2)选中动画的全部帧,右击,在弹出的菜单中选择【将动画复制为ActionScript3.0脚本】 命令 (3)在弹出的【提示】对话框中输入“motion”名称,单击【确定】按钮。 (4)打开【动作】面板,单击右键,粘贴,在面板中就看到XML形式的代码。 (5)创建一个名为motion的影片剪辑实例,测试影片,就可看到应用于motion的动画效果。 二.使用Tween类制作补间动画 通过Tween可以使用程序来创建补间动画,通过指定目标影片剪辑的属性使得若干帧数或 秒数具有动画效果,从而对影片剪辑进行移动、调整大小和淡入淡出操作。 Tween类还能够指定各种缓动方法。“缓动”是动画运行期间的渐进加速和渐进减速效果 有助于使动画显得更逼真。fl.transitions.easing 包提供了很多缓动方法,它们会相 应的更改缓动动画。 使用Tween类制作动画效果的代码很简单: new Tween(obj:Object, prop:String, func:Function, begin:Number, finish:Number, duration:Number, useSeconds:Boolean=false); 各参数说明如下: * obj:Object: Tween作为目标的对象。 * prop:String : 要影响的属性的名称。 * func:Function: 要使用的缓动函数的名称。 * begin:Number: prop参数的开始值。 * finish:Number: 一个指示prop参数(要补间的目标对象属性)的结束值的数字。 * duration:Number: 动画的时间长度;如果为负或被省略,则设置为infinity. * useSeconds:Boolean: 一个标志,指定是否使用秒数而不是帧数。如果为true, 则函数使用秒;如果为false,则使用相对于duration参数中指定的值的帧。 具体实现的代码如下: //导入包 import flash.display.Sprite; import flash.events.MouseEvent; import fl.transitions.Tween; //把动画类保存在数组中 var type:Array =["Back","Bounce","Elastic","None","Regular","Strong"]; //把具体的动画保存在数组中 var fun:Array =["easeIn","easeOut","easeInOut"]; //类名 var claName:Class ; //函数名 var funName:String ; var dis:Number =2; //放置按钮的容器 var subMenu:Sprite =new Sprite (); createMainBtn(); createSubBtn(); //创建主按钮函数 function createMainBtn() { var startx:Number =10; var starty:Number =30; for(var i:String in type) { var btn:Button=new Button(); btn.label=type[i]; btn.x=startx; btn.y=starty; btn.addEventListener(MouseEvent.MOUSE_OVER,onMouseOver); this.addChild (btn); starty+=btn.height+dis; } } //创建子按钮函数 function createSubBtn() { var starty:Number =0; var btn:Button; for (var i:String in fun) { btn=new Button(); btn.label=fun[i]; btn.y=starty; btn.addEventListener(MouseEvent.CLICK,onClick); //btn.addEventListener(MouseEvent.MOUSE_OUT,onMouseOut); starty+=btn.height+dis; subMenu.addChild(btn); } } //鼠标移过时,根据参数得到类的引用 function onMouseOver(e:MouseEvent) { subMenu.x=e.target.x+e.target.width+dis; subMenu.y=e.target.y; this.addChild (subMenu); switch(e.target.label) { case"Back": claName=Back; break; case"Bounce": claName=Bounce; break; case"Elastic": claName=Elastic; break; case"None": claName=None; break; case"Regular": claName=Regular; break; case"Strong": claName=Strong; break; } } function onMouseOut(e:MouseEvent) { this.removeChild(subMenu); } //单击后得到动画的类型 function onClick(e:MouseEvent) { startTween(claName[e.target.label]); } //开始补间动画 function startTween(f:Function) { new Tween (mc,"x",f,50,500,2,true); }