学习 Flash 中的 ActionScript 2.0 |
|
|
|
| 语法和语言基础知识 > 关于点语法和目标路径 > 关于作用域和目标设定 | |||
嵌套实例时,嵌套了另一个影片剪辑的影片剪辑被称为被嵌套的实例的父级。被嵌套的实例被称为子实例。主舞台和主时间轴实质上就是影片剪辑本身,因此可以将它们作为影片剪缉设定为目标。有关作用域的更多信息,请参见关于变量和作用域。
可以使用 ActionScript 将父实例和父时间轴设定为目标。在您需要将当前的时间轴设定为目标时,可以使用 this 关键字。例如,在将当前主时间轴上名为 myClip 的影片剪辑设定为目标时,可以使用
this.myClip.
或者,也可以去掉 this 关键字,仅使用
myClip
可以选择添加 this 关键字来保证可读性和一致性。有关建议的编码做法的更多信息,请参见ActionScript 2.0 的最佳做法和编码约定。
如果跟踪此影片剪辑,则对于以上两个代码片断中的任意一个,您都会看到 _level0.myClip 出现在"输出"面板中。但是,如果 myClip 影片剪辑内部有 ActionScript,而您希望将主时间轴设定为目标,则您需要将该影片剪辑的父级(即主舞台)设定为目标。双击一个影片剪辑,将下面的 ActionScript 放置到该影片剪辑的时间轴上:
trace("me: " + this);
trace("my parent: " + this._parent);
测试 SWF 文件,您将看到"输出"面板中显示以下消息:
me: _level0.myClip my parent: _level0
这表示您已将主时间轴设定为目标。可以使用 parent 来创建对象的相对路径。例如,如果影片剪辑 dogClip 嵌套入动画影片剪辑 animalClip 的内部,则实例 dogClip 上的以下语句会指示 animalClip 停止动画:
this._parent.stop();
如果您熟悉 Flash 和 ActionScript,您可能已注意到人们会使用 _root 作用域。_root 作用域通常是指当前 Flash 文档的主时间轴。除非绝对必要,否则应避免使用 _root 作用域。您可以使用相对目标路径来取代 _root。
如果在代码中使用 _root,在将 SWF 文件加载到另一个 Flash 文档中时可能会遇到错误。在将 SWF 文件加载到一个不同的 SWF 文件中时,加载的文件中的 _root 可能指向该文件加载到的 SWF 文件的根作用域,而不是像您所期望的那样指向它自已的根。这可能会导致不可预料的结果,也可能会导致完全无法运行。
|
|
|
|