三分钟理解Flash中的级别关系
在些脚本的过程中经常遇到_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 文件。
但是_level到底是个什么东西?该如何理解呢?我们知道每个Flash动画都有一个主时间轴,这个主时间轴就被FlashPlayer预置为最高级也就0级(level0)。
通过loadMovieNum();loadMovie动作我们可以在动画的播放过程中加载其它的SWF文件到播放器中,并且把他放置于除最高级(0级_level0)的任何一个层级,可能第10层级当然也可以放置在100层级。被载入的电影剪辑他们不但能拥有自己的层级,还拥有自己的时间轴。也就是说假如我们装载了20个SWF文件,那么这20个电影剪辑实例都在自己的某个层级中拥有了一个自己的时间轴,不仅如此,在载入的电影剪辑中还能够包含其它的电影剪辑,这些被包含的电影剪辑还可以拥有自己的时间轴,这样Flash中的的层级别就显得非常复杂了,我们看下面的示意图:
通过Flash播放器中层级和电影剪辑的层次结构图形我们不难看出层级号大的电影剪辑实例堆叠在层级号小的上面,也就是说如果堆叠在前面的电影剪辑如果不是透明的是会遮挡主处在后面的电影剪辑。其次我们还能发现层级和层级之间的关系是“不交叉”的,“不包含”的,属“平行”关系。这里还要注意一点层级和层级的编号不一定要连续如_level2;_level99
层级之间以绝对大于,或绝对小于关系存在。层级和层级是不透明关系,和主场景中的层不一样并不是一张张“透明的纸”
举个例子来说,我们可以通过loadMovie动作,把一个电影剪辑载入到播放器中,并且把他放置于第99层(_level99)然后又把另外的一个电影剪辑放在第77层级(_level77)_level99和_level77是互不包含的,_level99会堆叠在_level77的前面并且会遮挡_leve77,但他们拥有各自的主时间轴互不干扰!如同在一个车间中各自干者各自的活。
- 上一篇: 给所有ActionScript初学者的建议
- 下一篇: Flash声音控制详解