您的位置: 首页 > 技术文档 > 多媒体制作 > [root,global,level,depth] 解析
Flash 创建XML驱动的图像滚动 回到列表 鼠标拖曳的时钟
 [root,global,level,depth] 解析

作者:snow 时间: 2004-03-14 文档类型:转载 来自:snow's blog

[root,global], [level,depth,]全解析
By snow(http://www.7dev.net) 参考了old9同志的意见和自在幻想(Fictiony的帖子)

帮助中_global的说明

 标识符;创建全局变量、对象或类。
例如,您可以创建公开为全局动作脚本对象的库,此库非常类似于 Math 或 Date 对象。与时间轴声明或局部声明的变量和函数不一样,全局变量和函数只要未被内部范围中具有相同名称的标识符遮蔽,则它们对于 SWF 文件中的每个时间轴和范围均是可见的。

 _root的说明

属性;指定或返回指向根影片时间轴的引用。
如果影片有多个级别,则根影片时间轴位于包含当前正在执行脚本的级别上。
例如,如果级别 1 中的脚本计算 _root,则返回 _level1。  

_level的说明

标识符;对 _levelN 的根时间轴的引用。
必须在使用 loadMovieNum() 将 SWF 文件加载到 Flash Player 中以后,才可使用 _level 属性来定位这些 SWF。还可使用 _levelN 来定位由 N 所指定级别处的已加载 SWF 文件。  
 加载到 Flash Player 实例中的初始 SWF 文件会自动加载到 _level0。_level0 中的 SWF 文件为所有随后加载的 SWF 文件设置帧频、背景色和帧大小。然后 SWF 文件堆叠在处于 _level0 的 SWF 文件之上的更高编号级别中。  
您必须为每个使用 loadMovieNum() 加载到 Flash Player 中的 SWF 文件分配一个级别。您可按任意顺序分配级别。如果您分配的级别(包括 _level0)中已经包含 SWF 文件,则处于该级别的 SWF 文件将被卸载并替换为新的 SWF 文件。

depth的说明(by snow,非官方文档)

depth值特指MC的深度,depth越大,MC越在上面;制作动画时画出来的MC它的depth值一定小于0,而SWF运行时动态产生的MC的depth值则一定大于0,从而保证了ActionScript操纵而产生的MC位置是在上面的;    

_root和_level

新建一个影片,它的_root就是它本身的根影片时间轴,运行时它所在的层级是level0,可以载入其他的影片到其他层级;如level1等,这些影片会同时运行, 仔细看上面level的说明,"将 SWF 文件加载到 Flash Player 中以后,才可使用 _level 属性来定位这些 SWF",注意"定位"这个词,曾经有人打过一个形象的比方,层级就象并排从上到下的许多抽屉,层级(level)值越大的动画越在上面;对于某个MC而言,它的"最高级领导"就是_root,_level根本不是对MC谈论的概念, 它只表明了SWF之间的上下关系,好,趁热打铁,我们来看下面---------  

_level和Depth

不同点
level和depth根本不具有可比性,level是针对SWF,而depth是针对MovieClip的;  

相同点
1,正如上面所说的,level表示了SWF之间的上下关系,类似的是,depth也表明了一种上下关系,就是MC之间的,MC的depth值越高,它就越在上面

2,比如:同一level和depth上,放入新的对象时,都会挤掉原来的. (by 自在幻想)  

layer与depth

layer只是一个编辑FLA时才存在的概念,当输出SWF以后,layer已经形神俱灭了,MC之间只靠depth来确定上下位置,靠坐标来确定前后左右的位置;  

另一种眼光看_root

_root是个MC的证据

1,_root变成了MC(说法特别不规范,有助于理解就行了).

_root在一个影片中一副老大的样子,好象大得不得了,会一直是这样的吗?
不;可以使用loadMovie()把一个SWF加载到另一个SWF(名为firstSWF)中的一个MC中,假设加载SWF(名为mySWF),到一个名为myMC的MC中,此时原来的MC已经被干掉了,mySWF已经变成了myMC, mySWF的_root已经指向firstSWF的根影片时间轴了.(请自行构造例子测试); 这下怎么操纵load进来的SWF的各种状态呢,就不用说了吧? (操纵myMC这个MC即可)

  相应地,如果加载某个SWF到levelN(N>0),那么在原SWF中可以把load进来的这个SWF当成一个名为_levelN的MC来操纵。  

 证据2, 测试如下语句:trace(typeof _root); 会输出"movieclip", 悄悄告诉你哦,trace(typeof _level0),也输出"movieclip";  

之所以强调这种提法,为什么呢,只可意会不可言传.     基本含义帮助中已经说明得很清楚了,下面是一点补充:

1,昨天一个朋友问到的,设动画有两个场景(scene),在两个场景中第一帧分别放一同名的MC,通过trace发现它们的深度是一样的.   下面我们重点说明一下这个问题: 其实这个depth值,是针对某一帧这个生存周期的概念.当播放到第一场景中的第一帧时,不能谈论第一个场景中的第一帧中的MC的depth,就象关公不可能战秦琼一样.  

2,那位朋友还问,象这种两个场景(扩展到多个场景)的情况,_root是怎样的呢?每个场景都有它们自己的_root吗?
非也,最终输出的SWF中,根本没有场景(scene)这个东西,象上述两个场景(每个场景中只有一个帧),输出的动画中只有连续的两个帧,何来什么场景! 又比如两个场景,都有20帧,那么gotoAndPlay("Scene 2",1)和gotoAndPlay(21),是一样的.  

 结论:_root从来只有一个.  

3,_root的说明中,"当前正在执行脚本的级别"中的"级别",就是指level,也译作"层级"; 我们知道不同的影片(SWF)可以分别载入到不同的层级(level)去,层级之间是并列的关系,所以在某个level中计算它的_root,得到的都是本身的level值.  

BTW,抱歉没能用图形的方式来说明,不过应该不难理解。

出处:snow's blog
责任编辑:qhwa

◎进入论坛Flash专栏版块参加讨论

作者文章
[root,global,level,depth] 解析
关键字搜索 常规搜索 推荐文档
热门搜索:CSS Fireworks 设计比赛 网页制作 web标准 用户体验 UE photoshop Dreamweaver Studio8 Flash 手绘 CG
站点最新 站点最新列表
周大福“敬•自然”设计大赛开启
国际体验设计大会7月将在京举行
中国国防科技信息中心标志征集
云计算如何让安全问题可控
云计算是多数企业唯一拥抱互联网的机会
阿里行云
云手机年终巨献,送礼标配299起
阿里巴巴CTO王坚的"云和互联网观"
1499元买真八核 云OS双蛋大促
首届COCO桌面手机主题设计大赛
栏目最新 栏目最新列表
浅谈JavaScript编程语言的编码规范
如何在illustrator中绘制台历
Ps简单绘制一个可爱的铅笔图标
数据同步算法研究
用ps作简单的作品展示页面
CSS定位机制之一:普通流
25个最佳最闪亮的Eclipse开发项目
Illustrator中制作针线缝制文字效果
Photoshop制作印刷凹凸字体
VS2010中创建自定义SQL Rule

蓝色理想版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有。

转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。

特别注意:本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有,文章若有侵犯作者版权,请与我们联系,我们将立即删除修改。

您的评论
用户名:  口令:
说明:输入正确的用户名和密码才能参与评论。如果您不是本站会员,你可以注册 为本站会员。
注意:文章中的链接、内容等需要修改的错误,请用报告错误,以利文档及时修改。
不评分 1 2 3 4 5
注意:请不要在评论中含与内容无关的广告链接,违者封ID
请您注意:
·不良评论请用报告管理员,以利管理员及时删除。
·尊重网上道德,遵守中华人民共和国的各项有关法律法规
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·本站评论管理人员有权保留或删除其管辖评论中的任意内容
·您在本站发表的作品,本站有权在网站内转载或引用
·参与本评论即表明您已经阅读并接受上述条款
推荐文档 | 打印文档 | 评论文档 | 报告错误  
专业书推荐 更多内容
网站可用性测试及优化指南
《写给大家看的色彩书1》
《跟我去香港》
众妙之门—网站UI 设计之道
《Flex 4.0 RIA开发宝典》
《赢在设计》
犀利开发—jQuery内核详解与实践
作品集 更多内容

杂⑦杂⑧ Gold NORMANA V2