I Love China

技术·人生

技术服务生活
繁體
8月 15th, 2007

[ActionScript]一直以来对_parent的误解

[例子]:假设舞台上放置一个实例名为_mc的影片剪辑,在舞台时间轴上写如下代码:

ActionScript Code:
  1. _mc.onRelease = function ()
  2. {
  3.     trace (_parent);
  4. };

那么,当点击该影片剪辑时,输出的结果会是什么?是_level0吗?
一直以来,我都认为此处的_parent是指向_mc的上一级影片剪辑的,也就是说我认为此处_parentthis._parent是一样的作用。但是事实并非如此,你执行下最开始的那段代码就知道了,输出结果是undefined,而如果改成trace(this._parent)输出结果是_level0.
看下帮助中关于全局属性_parent的解释:
指定或返回一个引用,该引用指向包含当前影片剪辑或对象的影片剪辑或对象。
在相对路径中,使用关键字 this 指示当前层中的当前时间轴;使用别名 _parent 指示当前时间轴的父时间轴。
因此如果代码是写在帧上的时候,_parent指的是当前时间轴的父时间轴,而this._parent指的是this指向的对象或影片剪辑的父对象或影片简介。
另外,扯一点this,如果代码直接写到按钮上,this指的是包含该按钮的父级影片简介,如果写到影片剪辑上,this指向该影片剪辑,如果写到按钮或者影片剪辑的父级影片剪辑的帧上,this都指向该按钮或影片剪辑。

随机文章:

Leave a Reply