“偷窥”Flash 动作脚本的利器


  相信很多朋友对网上精彩的Flash交互动画都赞叹不已。欣赏之余又多少感到有些遗憾。那么精彩的交互动画是怎样制作出来的?能不能分析分析、研究研究,看看它的代码,学它几招?能!请跟我来吧!

  Action Script Viewer(ASV)是一个动作脚本查看程序,使用它可以查看SWF文件中的动作脚本。ASV可以把Flash 4和Flash 5编译的动作脚本反编译并转换为文本格式,然后你就可以把它拷贝到剪贴板、保存为文本文件或直接拷贝到Flash的动作脚本编辑器中。ASV输出的动作脚本语法与源代码基本一样。

  一、ASV 2.0的新特点

  与ASV 1.0和1.5相比,ASV 2.0具有以下的新特点:

 1.支持Flash 5:支持Flash 5的语法及语法的突出显示(保留字蓝色、属性绿色、字符串灰色);用图标指示剪辑动作;用[]括住标识符,指示图符连接;可以选择用Flash 5语法显示Flash 4动作脚本(按F8或“5”按钮切换为Flash 5模式)。

 2.Library(库)标签显示每个图符的编号。

 3.在一个新的窗口中打开按钮图符时,每一种按钮状态中所用的图符也被显示出来。

 4.在一个新的窗口中打开字体图符时,字体名和字符预览被显示出来。

 5.可以选择在预览窗口中是否允许动作脚本生效(F7)。

 6.Frames(帧)标签可显示层的附加信息。

  二、查看SWF文件动作脚本的操作方法

 1.ASV是一款无需安装的软件,直接把它拷贝到一个文件夹中,然后运行它就可以了。此软件很小,只要300KB。启动ASV后,它的操作主操作界面如下图所示。




  2.单击工具栏中的打开文件按钮,或从File(文件)菜单中选择Open命令,弹出Open SWF对话框。

  

 3.在文件列表中,选择一个SWF文件(本例选择“综合实例”),单击“打开”按钮,显示SWF窗口。



  在SWF窗口,可以查看下面的一些内容:


  (1)显示动画主时间轴所有帧

  单击Frames(帧)标签(在打开SWF文件时,默认显示此标签)或按Alt+R组合键,动画主时间轴所有帧被显示出来,如下图所示。



  在帧窗口,显示帧编号、帧动作和帧标签等信息。中间带有黑点的帧图标表示该帧为关键帧(如图中的第3帧)。如果在某一帧的动作脚本列中显示有脚本图标(如图中的第1和第3帧),表示该帧包含有动作脚本。选择该帧,相应的动作脚本就会在脚本窗口显示出来。
  在层窗口,显示帧窗口当前选定帧的所有层,以及相关的信息。中间带有黑点的层图标表示该层是可修改层(如含有可编辑文本框的层)。如果某层中包含有脚本,也会在动作脚本列中显示相应的图标。选择有脚本图标的层,相应的动作脚本就会在脚本窗口中显示出来。

  (2)查看动画的图符库
  单击Library(库)标签或按Alt+L组合键,将显示动画的图符库内容。动画中的所有图符均在此标签中显示出来。

  如果在第1列(黑点列)中有一个黑点图标,表示该图符在主动画中至少使用一次(如图中最后两行);如果该列没有黑点图标,表示该图符用来创建其它图符。如果图符中包含有脚本,则在脚本列中显示脚本图标。选择该图符,相关的脚本就会在脚本窗口显示出来。变量名列显示可编辑文本框的变量名。图符号列显示每个图符使用的编号。


  (3)查看实例名
  单击Instance names(实例名)标签或按Alt+I组合键,将显示动画中用到的所有电影剪辑实例名。

  名称列显示实例名。位置列显示帧号或电影剪辑实例及其本地帧号。图符列显示电影剪辑图符及其编号。如果要查找一个实例的原图符,可以在查找文本框中输入实例名,然后回车。此时,显示切换到库标签,光标就定位在该实例的原图符上。

  (4)查看帧标签
  单击Frame labels(帧标签)标签或按Alt+B组合键,将显示动画中定义了帧标签的所有帧。

  名称列显示帧标签,位置列显示帧号或电影剪辑实例及其本地帧号。如果要查找一个帧标签标识的帧,可以在查找文本框中输入帧标签,然后回车。此时,显示切换到库标签,光标就定位在该帧所在的图符上。



  (5)查看动作脚本
  单击Action scripts(动作脚本)标签或按Alt+A组合键,将显示动画中包含有动作脚本的所有帧和图符。

 


  位置列显示包含动作的所有帧和图符(电影剪辑和按钮)。脚本列显示脚本图标,其中的箭头图标表示该脚本是电影剪辑图符内部的脚本。单击保存所有脚本按钮,可以把动画中包含的所有脚本保存到一个文本文件中。文本文件中脚本的语法与当前选择的模式(Flash 4或5)一致。
  下面所列是本例保存脚本输出的文本文件(actions.txt)的部分内容:
      Action Script Viewer 2.0 - 综合实例.swf
      
      ----------------------------------------------------------------------
      Frame 1
      ----------------------------------------------------------------------
          function createInsects (count) {
              var i;
              i = 1;
              while (count >= i) {
                  _root.attachMovie("insect", "insect" + i, i);
                  i++;
              }
          }
          function changeCursor (movieclip) {
              Mouse.hide();
              _root.attachMovie(movieclip, "customCursor", 9999);
              _root.customCursor.startDrag(true);
          }
      ----------------------------------------------------------------------
      Frame 3
      ----------------------------------------------------------------------
          if (hit == num) {
              if (num < 8) {
                  num++;
              }
              hit = 0;
              createInsects(num);
          }
          prevFrame();
          play();
      ----------------------------------------------------------------------
      10 MovieClip
      ----------------------------------------------------------------------
      [ Actions in frame #1 ]
      
          stop();
      
      [ Actions in frame #2 ]
      
          stop();
      
      ----------------------------------------------------------------------
      11 MovieClip , Frame 1, Symbol 10
      ----------------------------------------------------------------------
      onClipEvent (mouseDown) {
          _root.playSound(640, _parent._x, "zish");
          gotoAndPlay (2);
      }
      
      onClipEvent (mouseUp) {
          gotoAndPlay (3);
      }
      
      onClipEvent (mouseMove) {
          updateAfterEvent();
      }

  从这个文件的内容我们可以看到,ASV保存的脚本保留了原脚本的语法格式,并详细列出了哪一段脚本位于动画的哪一帧,或哪个电影剪辑的哪一帧。


   三、设置ASV

   打开SWF文件时,SWF窗口显示一个工具栏,如下图所示。单击工具栏中的按钮,可以对ASV进行一些设置和常用操作。

  

 1.显示预览窗口

  如果预览窗口没有现实,首先要从Window(窗口)菜单中选择Preview Window命令,或按F5键,打开预览窗口。按下工具栏中的显示预览窗口按钮,可以打开预览窗口的显示。

 2.移动源到中间

  按下移动源到中间按钮,可以把预览窗口中的源对象从左上角移动到预览窗口中间,便于查看。

 3.显示所有帧

  按下显示所有帧按钮,动画中的所有帧将显示出来。否则,只显示关键帧。

 4.显示所有层

  按下显示所有层按钮,在帧标签中,选定帧的所有层将显示出来。否则,只显示可修改层。


 5.显示长脚本

  按下显示长脚本按钮,ASV将把全部脚本反编译并显示出来。否则,仅显示其中的几行。

 6.设置绕排

  按下设置绕排按钮,动作脚本中过长的行将自动绕排。

 7.设置突出显示

  按下设置突出显示按钮,脚本中的关键字将用不同的颜色突出显示。

 8.设置脚本字体

  单击设置脚本字体按钮,弹出字体选择对话框,可以从中选择一种字体和字号,改变脚本的字体。

 9.设置背景颜色

  单击设置背景颜色按钮,可以设置预览窗口的背景颜色,便于查看不同颜色的图符。

 10.拷贝脚本

  单击拷贝脚本按钮,可以把脚本窗口当前显示的动作脚本拷贝到剪贴板。

 11.保存脚本

  单击保存脚本按钮,可以把脚本窗口当前显示的动作脚本保存为文本文件。

 12.打开选定项

  单击打开选定项按钮,将在新的窗口打开选定的项目(帧、层或图符)。此按钮的作用是从动画中提取电影剪辑,然后可以用File菜单的Save命令,把提取出来的电影剪辑保存为一个小动画(.swf)。

 13.追踪选定项

  单击追踪选定项按钮,可以查找与选定项相关的帧或图符。如果在帧标签中选定了一层,单击本按钮可以在图符库标签中找到相关的图符;如果在图符库标签中选定一个图符,找到的是定义该图符的帧(很有可能是该图符首先出现的帧,尽管它可能嵌套在其它图符中)。在其它标签中选定一项,单击本按钮找到的是相关的帧或图符。

 14.使脚本生效

  按下使脚本生效按钮,可以使所有动作脚本预览窗口中生效。值得注意的是:预览窗口显示的是动画中相对独立某个部分,受制于动画其它部分的动作脚本会引起错误。因此,在默认情况下本按钮处在关闭状态。

 15.设置Flash 5模式

  按下设置Flash 5模式按钮,可以使Flash 4及以下版本的动作脚本按Flash 5的语法模式显示。如果打开的动画文件是Flash 5版本的,本按钮自动处于按下状态。


【责任编辑:星河 频道主编:赵家雄