转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 电脑应用 >> 电脑技术 >> 正文
[root,global,level,depth] 解析         ★★★

[root,global,level,depth] 解析

作者:闵涛 文章来源:闵涛的学习笔记 点击数:854 更新时间:2004/3/14

[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,抱歉没能用图形的方式来说明,不过应该不难理解。


[系统软件]WVTFTPD 0.9 heap overflow remote root exploit.…  [Web开发]【ASP.NET中的Global.asax以及Web应用的生命周期】
[SyBase]linux忘记root密码,进入单用户模式修改密码  [MySql]如何恢复MYSQL的ROOT口令
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · 电脑技术  · 操作系统
    · 磁盘工具  · 视音频技术
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台