绝对路径

绝对路径以文档加载到其中的层名开始,直至显示列表中的目标实例。 也可以使用别名 _root 来指示当前层的最顶层时间轴。 例如,影片剪辑 california 中引用影片剪辑 oregon 的动作可以使用绝对路径 _root.westCoast.oregon

在 Flash Player 中打开的第一个文档被加载到第 0 层。 您必须给加载的所有其他文档分配层号。 在 ActionScript 中使用绝对引用来引用一个加载的文档时,可以使用 _levelX 的形式,其中 X 是文档加载到的层号。 例如,在 Flash Player 中打开的第一个文档叫做 _level0;加载到第 3 层的文档叫做 _level3

要在不同层的文档之间进行通信,必须在目标路径中使用层名。 下面的例子显示 portland 实例如何定位名为 georgia 的影片剪辑上的 atlanta 实例(georgiaoregon 位于同一层):

_level5.georgia.atlanta

您可以使用 _root 别名表示当前层的主时间轴。 对于主时间轴,当 _root 别名被同在 _level0 上的影片剪辑作为目标时,则代表 _level0。 对于加载到 _level5 的文档,如果被同在第 5 层上的影片剪辑作为目标,则 _root 等于 _level5。 例如,如果影片剪辑 southcarolinaflorida 都加载到同一层,从实例 southcarolina 调用的动作就可以使用以下绝对路径来指向目标实例 florida

_root.eastCoast.florida

相对路径

相对路径取决于控制时间轴和目标时间轴之间的关系。 相对路径只能确定 Flash Player 中它们所在层上的目标的位置。 例如,在 _level0 上的某个动作以 _level5 上的时间轴为目标时,不能使用相对路径。

在相对路径中,使用关键字 this 指示当前层中的当前时间轴;使用 _parent 别名指示当前时间轴的父时间轴。 您可以重复使用 _parent 别名,在 Flash Player 同一层内的影片剪辑层次结构中逐层上升。 例如,_parent._parent 控制影片剪辑在层次结构中上升两层。 Flash Player 中任何一层的最顶层时间轴是唯一具有未定义 _parent 值的时间轴。

实例 charleston(较 southcarolina 低一层)时间轴上的动作,可以使用以下目标路径将实例 southcarolina 作为目标:

_parent

若要从 charleston 中的动作指向实例 eastCoast(上一层),可以使用以下相对路径:

_parent._parent

若要从 charleston 的时间轴上的动作指向实例 atlanta,可以使用以下相对路径:

_parent._parent.georgia.atlanta

相对路径在重复使用脚本时非常有用。 例如,您可以将以下脚本附加到某个影片剪辑,使其父级放大 150%:

onClipEvent (load) {    _parent._xscale = 150;    _parent._yscale = 150; 
}

您可以通过将此脚本附加到任意影片剪辑实例来重复使用该脚本。

注:  Flash Lite 1.0 和 1.1 只支持将脚本附加到按钮。 不支持将脚本附加到影片剪辑。

无论使用绝对路径还是相对路径,都要用后面跟着表明变量或属性名称的点 (.) 来标识时间轴中的变量或对象的属性。 例如,以下语句将实例 form 中的变量 name 设置为值 "Gilbert"

_root.form.name = "Gilbert";

使用绝对和相对目标路径

使用 ActionScript 可以将消息从一个时间轴发送到另一个时间轴。 包含动作的时间轴称作控制时间轴,而接收动作的时间轴称作目标时间轴。 例如,一个时间轴的最后一帧上可以有一个动作,指示开始播放另一个时间轴。 要指向目标时间轴,必须使用目标路径,指明影片剪辑在显示列表中的位置。

下面的例子显示了 westCoast 文档在第 0 层上的层次结构,它包含三个影片剪辑:californiaoregonwashington。 每个影片剪辑又各包含两个影片剪辑。

_level0 
        westCoast 
                california 
                        sanfrancisco 
                        bakersfield 
                oregon 
                        portland 
                        ashland 
                washington 
                        olympia 
                        ellensburg

与在 Web 服务器上一样,FlashProfessional 中的每个时间轴都可以用两种方式确定其位置:绝对路径或相对路径。 实例的绝对路径是始终以层名开始的完整路径,与哪个时间轴调用动作无关;例如,实例 california 的绝对路径是 _level0.westCoast.california。 相对路径则随调用位置的不同而不同;例如,从 sanfranciscocalifornia 的相对路径是 _parent,但从 portland 出发的相对路径则是 _parent._parent.california

返回页首

指定目标路径

要控制影片剪辑、加载的 SWF 文件或按钮,必须指定目标路径。 您可以手动指定,也可以使用“插入目标路径”对话框指定,还可以通过创建结果为目标路径的表达式指定。 要指定影片剪辑或按钮的目标路径,必须为影片剪辑或按钮分配一个实例名称。 加载的文档不需要实例名称,因为其层号即可作为实例名称(例如 _level5)。

将一个实例名称指定给影片剪辑或按钮

  1. 在舞台上选择影片剪辑或按钮。

  2. 在“属性”检查器中输入实例名称。

使用插入目标路径对话框来指定目标路径

  1. 选择您想为其分配动作的影片剪辑、帧或按钮实例。  

    它将变为控制时间轴。


  2. 在“动作”面板中(“窗口”>“动作”),转到左边的“动作”工具箱,选择需要目标路径的动作或方法。

  3. 单击脚本中想插入目标路径的参数框或位置。

  4. 单击“脚本”窗格上面的“插入目标路径”按钮

  5. 对于目标路径模式,选择“绝对”或“相对”。

  6. 在“插入目标路径”显示列表中选择一个影片剪辑,再单击“确定”。

手动指定目标路径

  1. 选择您想为其分配动作的影片剪辑、帧或按钮实例。  

    它将变为控制时间轴。


  2. 在“动作”面板中(“窗口”>“动作”),转到左边的“动作”工具箱,选择需要目标路径的动作或方法。

  3. 单击脚本中想插入目标路径的参数框或位置。

  4. 在“动作”面板中输入绝对或相对目标路径。

使用表达式作为目标路径

  1. 选择您想为其分配动作的影片剪辑、帧或按钮实例。  

    它将变为控制时间轴。


  2. 在“动作”面板中(“窗口”>“动作”),转到左边的“动作”工具箱,选择需要目标路径的动作或方法。

  3. 请执行下列操作之一:

    • 在参数框中输入一个计算目标路径的表达式。

    • 单击,可将插入点放入脚本。 然后,在“动作”工具箱的“函数”类别中,双击 targetPath 函数。 targetPath 函数将对影片剪辑的引用转换为字符串。

    • 单击,可将插入点放入脚本。 然后,在“动作”工具箱的“函数”类别中,选择 eval 函数。 eval 函数将字符串转换为可用于调用方法(如 play)的影片剪辑引用。

      下面的脚本将值 1 赋予变量 i。 然后使用 eval 函数创建对影片剪辑实例的引用,并将它赋予变量 x。 现在,变量 x 表示对影片剪辑实例的引用,并可以调用 MovieClip 对象的方法。

      i = 1; 
      x = eval("mc"+i); 
      x.play(); 
      // this is equivalent to mc1.play();

      您也可以使用 eval 函数直接调用方法,如下例所示:

      eval("mc" + i).play();
,