最近看到很多朋友发贴说不清楚_root和_level是干什么的,还有一个depth(深度)。
经常把人搞得晕乎。xx( 所以痛下决心一定要让各位深入了解。如果认为说的对的
给点掌声,认为说的错的扔点砖头顺带一起研究。
_level与路径
在开始教程之前先说一下文件的目录结构,因为这种结构与swf中的路径结构十分相似
先来看一张图。
在我的电脑里有一个mypath.swf的文件,它存放在我的电脑的C盘的downloads目录的
A star算法实例目录中。
我们访问的时候可以这么访问c:\downloads\A star算法实例\mypath.swf。这一长串路
径说明了mypath.swf在我的电脑里的存储位置。Flash中MC或者其他对象在swf中的存
储也遵循着同样的规则。
还是以上面为例,如果我们把我的电脑看成一个Flash文件,那么下面的C D E盘就相当
于flash中的_level0 _level1 _level2,downloads和A star算法实例这两个目录就相当于
两个MC,而mypath.swf就是最终的mc。和文件的访问方式相同在这里访问mypath.swf
你可以用_level.downloads.A star算法实例.(mypath.swf)来访问他了。是不是有点明白
了?不过注意上面的_level.downloads.A star算法实例.(mypath.swf)只是说明一下原理
真正使用时你不能用mypath.swf这种名字给MC命名的。
给张完整的图(有点丑陋,:))
关于_root
_root相当于根,还是先用上面第一张图的文件结构来说明:
对于c:\downloads\A star算法实例\mypath.swf这个文件,它的根就是C盘。
针对c盘的任何一个文件她的根就是C盘,针对于任何一个D盘的文件她的根就是D盘
以此类推。
同样在flash里面也是如此。针对任何一个_leve0的Mc,它的_root就是_level0.依此类推
什么是depth
Depth表示的是深度,这与_level和_root是两码事。因为depth至于显示有关,Depth
越大,就显示在上面。而_level和_root的最重要的作用是用来识别MC在flash 中的路径
要注意的是_level是有各自默认的Depth,并且每个mc中都有自己的Depth
可以分配。
为什么说_level有各自默认的Depth。因为所有的_level(包括_level0、_level1、_level2......)
他们实际上都从属于一个更上一级的MC,大概就是SWF本身了。
_level0位于SWF的-16384这个位置
_level1位于SWF的-16383这个位置
依此类推,Flash大概支持955599999999个_level(具体的没有册出来),如果还是用
文件的方式来理解,那么就是说可以有955599999999左右的盘符。
如果你不想用系统对_level的默认深度你甚至可以交换_level0和level1的深度,别不信。
试试知道了
下面我们做一个例子说明一下
在flash中新开一个文件,
第一桢写入
loadMovie("logo.jpg",1); //这里的logo.jpg当然是填入你本地的任何一个jpg文件
然后新建一个层随便画点什么东西在,保证这个层一直存在到30桢,一定要保证新加载
的图片和这个层上面的东西重叠,否则无法看到效果的。
第15桢写入
trace("_level0 depth="+this.getDepth());
trace("_level1 depth="+_level1.getDepth());
this.swapDepths(1);
第30帧写入
trace("_level0 depth="+this.getDepth());
trace("_level1 depth="+_level1.getDepth());
stop();
好了运行以下,你可以看到当_level0与depth 1 交换时,_level0上的东西移到了_level1的上面
结果是
_level0 depth=-16384
_level1 depth=-16383
_level0 depth=1
_level1 depth=-16383
是不是很有意思
提示:各个level中必须有东西才可以trace,如果你没有使用loadMovie到_level1,那么trace(_level1.getDepth())是无效的
前面说到的每个MC拥有自己可以分配的depth,这也好理解。
就是说假如_level1中可以有自己的depth 1位置的MC,_level2中可以有自己的depth 1位置的MC。两个不会冲突,谁显示在最前面取决于_level2和_level1谁的depth 大
好了,就写这么多了。:)
最后再给一张图
Re:[教程]如何正确理解_root/_level/depth的关系
呵呵
补充:
depth(深度)
所谓depth(深度),也就是几个mc的叠加位置。
depth(深度)越大,位置越上。
如果你有过aw的制作经验,那么这也就类似于它的层,上面的可以遮住下面的。
完毕。
[全屏欣赏]
Re:[教程]如何正确理解_root/_level/depth的关系
问一下
例如导入一个MC到第2个时间轴,是不是也就相当于导入到了_level2?
主时间轴对应level0?
第2个时间轴对应level1?
我的理解对吗?
Re:[教程]如何正确理解_root/_level/depth的关系
默认的第二个时间轴是level1,flash默认好的是从level0开始的,从下往上依次是_level0
level1 level2 level3 .........
我们的每一个制作都是默认建立在_level0上面的,事实上_level0只是用来表示路径的。
只不过因为它的depth值默认是在swf的level中最小的,所以有些人认为_level0是位于
swf文件的最下面。如果你看完了我前面写的教程就可以知道你可以自己改变_level的
depth分布。让_level0在_level1的上层。
经常把人搞得晕乎。xx( 所以痛下决心一定要让各位深入了解。如果认为说的对的
给点掌声,认为说的错的扔点砖头顺带一起研究。
_level与路径
在开始教程之前先说一下文件的目录结构,因为这种结构与swf中的路径结构十分相似
先来看一张图。
在我的电脑里有一个mypath.swf的文件,它存放在我的电脑的C盘的downloads目录的
A star算法实例目录中。
我们访问的时候可以这么访问c:\downloads\A star算法实例\mypath.swf。这一长串路
径说明了mypath.swf在我的电脑里的存储位置。Flash中MC或者其他对象在swf中的存
储也遵循着同样的规则。
还是以上面为例,如果我们把我的电脑看成一个Flash文件,那么下面的C D E盘就相当
于flash中的_level0 _level1 _level2,downloads和A star算法实例这两个目录就相当于
两个MC,而mypath.swf就是最终的mc。和文件的访问方式相同在这里访问mypath.swf
你可以用_level.downloads.A star算法实例.(mypath.swf)来访问他了。是不是有点明白
了?不过注意上面的_level.downloads.A star算法实例.(mypath.swf)只是说明一下原理
真正使用时你不能用mypath.swf这种名字给MC命名的。
给张完整的图(有点丑陋,:))
关于_root
_root相当于根,还是先用上面第一张图的文件结构来说明:
对于c:\downloads\A star算法实例\mypath.swf这个文件,它的根就是C盘。
针对c盘的任何一个文件她的根就是C盘,针对于任何一个D盘的文件她的根就是D盘
以此类推。
同样在flash里面也是如此。针对任何一个_leve0的Mc,它的_root就是_level0.依此类推
什么是depth
Depth表示的是深度,这与_level和_root是两码事。因为depth至于显示有关,Depth
越大,就显示在上面。而_level和_root的最重要的作用是用来识别MC在flash 中的路径
要注意的是_level是有各自默认的Depth,并且每个mc中都有自己的Depth
可以分配。
为什么说_level有各自默认的Depth。因为所有的_level(包括_level0、_level1、_level2......)
他们实际上都从属于一个更上一级的MC,大概就是SWF本身了。
_level0位于SWF的-16384这个位置
_level1位于SWF的-16383这个位置
依此类推,Flash大概支持955599999999个_level(具体的没有册出来),如果还是用
文件的方式来理解,那么就是说可以有955599999999左右的盘符。
如果你不想用系统对_level的默认深度你甚至可以交换_level0和level1的深度,别不信。
试试知道了
下面我们做一个例子说明一下
在flash中新开一个文件,
第一桢写入
loadMovie("logo.jpg",1); //这里的logo.jpg当然是填入你本地的任何一个jpg文件
然后新建一个层随便画点什么东西在,保证这个层一直存在到30桢,一定要保证新加载
的图片和这个层上面的东西重叠,否则无法看到效果的。
第15桢写入
trace("_level0 depth="+this.getDepth());
trace("_level1 depth="+_level1.getDepth());
this.swapDepths(1);
第30帧写入
trace("_level0 depth="+this.getDepth());
trace("_level1 depth="+_level1.getDepth());
stop();
好了运行以下,你可以看到当_level0与depth 1 交换时,_level0上的东西移到了_level1的上面
结果是
_level0 depth=-16384
_level1 depth=-16383
_level0 depth=1
_level1 depth=-16383
是不是很有意思
提示:各个level中必须有东西才可以trace,如果你没有使用loadMovie到_level1,那么trace(_level1.getDepth())是无效的
前面说到的每个MC拥有自己可以分配的depth,这也好理解。
就是说假如_level1中可以有自己的depth 1位置的MC,_level2中可以有自己的depth 1位置的MC。两个不会冲突,谁显示在最前面取决于_level2和_level1谁的depth 大
好了,就写这么多了。:)
最后再给一张图
Re:[教程]如何正确理解_root/_level/depth的关系
呵呵
补充:
depth(深度)
所谓depth(深度),也就是几个mc的叠加位置。
depth(深度)越大,位置越上。
如果你有过aw的制作经验,那么这也就类似于它的层,上面的可以遮住下面的。
完毕。
[全屏欣赏]
Re:[教程]如何正确理解_root/_level/depth的关系
问一下
例如导入一个MC到第2个时间轴,是不是也就相当于导入到了_level2?
主时间轴对应level0?
第2个时间轴对应level1?
我的理解对吗?
Re:[教程]如何正确理解_root/_level/depth的关系
默认的第二个时间轴是level1,flash默认好的是从level0开始的,从下往上依次是_level0
level1 level2 level3 .........
我们的每一个制作都是默认建立在_level0上面的,事实上_level0只是用来表示路径的。
只不过因为它的depth值默认是在swf的level中最小的,所以有些人认为_level0是位于
swf文件的最下面。如果你看完了我前面写的教程就可以知道你可以自己改变_level的
depth分布。让_level0在_level1的上层。
回复Comments
作者:
{commentrecontent}