1,新建一个Flash文件,在库中新建一个MC,把事先准备好的图片序列导入到该MC中,一张图片占一帧;
2,把这个MC拖放到场景中,可以先发布预览一下,看看图片序列播放起来是否流畅;
3,新建一个ActionScript文件,文件名保存为DragCtrlPlay.as(文件名必须跟里面的类名相同),里面的代码如下:
 

 
  
  1. class DragCtrlPlay extends MovieClip {  
  2.       //被拖拽MC的总帧数:  
  3.       private var total_frames:Number;  
  4.       //被拖拽MC的当前帧数:  
  5.       private var current_frame:Number;  
  6.       //鼠标点击图片时的x坐标:  
  7.       var start_x:Number;   
  8.       //拖拽控制灵敏度:  
  9.       var drag_dx:Number;  
  10.       //响应拖拽的开关:  
  11.       var is_ctrl:Boolean;  
  12.  
  13.       //构造函数:  
  14.       function DragCtrlPlay() {  
  15.               init();   
  16.       }  
  17.       //各项初始化:  
  18.       private function init() {  
  19.               total_frames = this._totalframes;  
  20.               current_frame = 1;  
  21.               drag_dx = 10;  
  22.               is_ctrl = false;  
  23.               this.gotoAndStop(1);  
  24.               this.onRollOver = mcOnRollOver;  
  25.               this.onPress = mcOnPress;   
  26.               this.onRelease = this.onReleaseOutside=mcOnRelease;   
  27.               this.onMouseMove = mcOnMouseMove;  
  28.       }  
  29.       //鼠标onRollOver事件:  
  30.       private function mcOnRollOver() {  
  31.               //不显示鼠标手势:  
  32.               //this.useHandCursor = false;   
  33.       }  
  34.       //鼠标onPress事件:  
  35.       private function mcOnPress() {  
  36.               //记录鼠标点击图片时的x坐标:  
  37.               start_x = _xmouse;  
  38.               //打开响应开关:  
  39.               is_ctrl = true;   
  40.       }   
  41.       //鼠标onRelease事件:  
  42.       private function mcOnRelease() {  
  43.               //关闭响应开关:  
  44.               is_ctrl = false;  
  45.               //更新当前帧数:  
  46.               current_frame = this._currentframe;  
  47.       }  
  48.       //鼠标onMouseMove事件:  
  49.       private function mcOnMouseMove() {  
  50.               if (is_ctrl) {  
  51.                       //实时获取鼠标当前x坐标:  
  52.                       var current_x:Number = _xmouse;  
  53.                       //播放的帧数差:  
  54.                       var frame_d:Number = Math.ceil((current_x-start_x)/drag_dx);  
  55.                       //影片播放到当前帧数差的位置:  
  56.                       mcGotoAndStop(frame_d);  
  57.                       //更新画面显示,使拖拽效果不受影片帧速影响:  
  58.                       updateAfterEvent();   
  59.               }  
  60.       }  
  61.       //影片播放到当前帧数差的位置:  
  62.       private function mcGotoAndStop(__d) {  
  63.               //影片最终播放并停止到的帧数:  
  64.               var frame_final:Number = current_frame+__d;  
  65.               //超出帧数范围会循环播放:  
  • while (frame_final>total_frames) {
     
  •         frame_final -= total_frames;
     
  • }
     
  • while (frame_final<1) {
     
  •         frame_final += total_frames;
     
  • }
  •  
  •               this.gotoAndStop(frame_final);   
  •       }   
               //最后gotoAndStop到计算好的帧数:  

 4,在库中右键单击这个MC,选择“链接...”(Linkage...);
5,在弹出的窗口中勾选“为ActionScript导出“(Exprot for ActionScript),在“类”(Class)那一栏中填入要绑定的类名:DragCtrlPlay;
6,把类文件DragCtrlPlay.as跟FLASH源文件在同一目录下,发布即可看到效果;