转载自:http://aresleecool.blog.163.com/blog/static/120715798201011895334718/
http://cctv566888.blog.163.com/blog/static/16307169120103277309237/
flash中Stage,stage,root和this的区别用法
要了解这个问题就要先对flash中的显示对象结构有一个大概的了解:
第一级:舞台;
第二级:当前SWF;
第三级:各种容器及可视对象(如:文本框,位图……);
以此类推…………
Stage:
其中舞台(Stage)是最根本的容器,包含当前SWF的所有显示对象,每个flash程序只能有一个舞台容器。
所有显示对象的Stage属性指向舞台。
注意:Stage与stage有区别
一个flash工程 也就是一个.swf文件 只有一个Stage.也就是整个舞台区域,包括舞台的大小 缩放 以及和外界的通信等等。它不能被实例化,只能通过他的子级设置它的属性
而每个在显示列表里的元件都有一个.stage属性,同样具有以上的那些属性和方法。所有这些都是Stage的子级,所有这些子级也就是stage都指向Stage。有点绕口。
简单的说呢,就是你设置任何一个元件的.stage属性就等于设置了Stage的属性。舞台上有无数的元件 你只要设置其中的一个就可以了
root:
在舞台下面的也是一个容器,被称作当前SWF主类的实例(注:AS3.0中所有容器直接或间接继承自DisplayObjectContainer类),在AS3.0中,每一个SWF都和一个类相关联,这个类就称为SWF的主类,如果没有设定文档类,则MainTimeline类(注:MainTimeLine是MovieClip的子类)就是主类。而root就指向当前SWF主类的实例(注:在AS2.0中,_root.指代绝对路径)。
this:
this关键字持有对当前对象的引用,编译器将this关键字加在类中每一个调用实例属性和实例方法的地方。
this关键字常见使用情况:
(1)向第三方提供对象自身的引用。
(2)与return结合,在类方法中返回自身的引用。
(3)和局部变量,方法参数,静态属性同名时,加上this关键字明确指定使用实例属性。