关于通过动作脚本控制影片剪辑

您可以使用全局动作脚本函数或 MovieClip 类的方法对影片剪辑执行任务。某些 MovieClip 方法执行与同名函数相同的任务;而有些 MovieClip 方法,例如 hitTest()swapDepths(),则没有相应的函数名称。

下面的示例说明了使用方法和使用函数之间的差异。这两条语句都重制实例 my_mc,将新剪辑命名为 newClip,然后将它放在第 5 层。 

my_mc.duplicateMovieClip("newClip", 5);
duplicateMovieClip("my_mc", "newClip", 5);

当函数和方法提供相似的行为时,您可以选择其中任意一个来控制影片剪辑。这种选择取决于您的喜好以及对在动作脚本中撰写脚本的熟悉程度。无论使用函数还是方法,调用函数或方法时,必须将目标时间轴加载到 Flash Player 中。

要使用方法,可通过使用实例名称的目标路径、点和紧跟其后的方法名称和参数来调用它,如下面的语句所示: 

myMovieClip.play();
parentClip.childClip.gotoAndPlay(3);

在第一条语句中,play() 移动 myMovieClip 实例中的播放头。在第二条语句中,gotoAndPlay()childClip(它是实例 parentClip 的子级实例)中的播放头发送到第 3 帧,然后继续移动播放头。

控制时间轴的全局函数有一个 target 参数,可用于指定到所要控制实例的目标路径。例如,在下面的脚本中,startDrag()customCursor 实例作为目标并使该实例可拖动:

on (press) {
  startDrag("customCursor");
}

以下函数以影片剪辑为操作对象:loadMovie()unloadMovie()loadVariables()setProperty()startDrag()duplicateMovieClip()removeMovieClip()。要使用这些函数,必须为函数的 target 参数输入一个目标路径以指示函数的目标。

下列 MovieClip 方法可以控制影片剪辑或加载的级别,它们没有等同的函数:
MovieClip.attachMovie(), MovieClip.createEmptyMovieClip(),
MovieClip.createTextField(), MovieClip.getBounds(), MovieClip.getBytesLoaded(), MovieClip.getBytesTotal(), MovieClip.getDepth(), MovieClip.getInstanceAtDepth(), MovieClip.getNextHighestDepth(), MovieClip.globalToLocal(),
MovieClip.localToGlobal(), MovieClip.hitTest(),
MovieClip.setMask(), MovieClip.swapDepths().