一.使用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); }

posted on 2012-11-06 23:07  才美  阅读(243)  评论(0编辑  收藏  举报