对初学者来说,FLASH(这里一FLASH8为例)的场景、图层(lawyer)和层(level)很轻易引起困惑的3个概念,今天看到大家在讨论涉及这个主题,我觉得有必要做一个比较系统的研究.不足之处希望大家指出,希望你起到一个抛砖引玉的作用. FLASH动画的各个对象的位置关系是按照一定的层状结构来呈现的。他的根是场景。有多个场景的情况,实际上每个场景是独立的动画,FLASH是通过设置各个场景播放顺序来把各个场景的动画逐个连接起来,因而我们看到的动画播放是连续的。在编辑时,每个场景的实例是不可以在其他场景使用,在具体编辑时最好在同一个场景编辑比较好。关于场景的播放顺序,可以通过窗口-面板-场景来设定。 对于具体的某一个场景来说,和其他场景的结构是一样的。都包含一个或多个图层(lawyer),每一个图层中的要害桢可以由一层或很多层(level)组成,层是有深度级别的,是一个抽象的概念,和图层又是不同的概念。每个层上面可以有不同的对象,假如将一个对象放置到有另外对象的层上,原有对象就会被新的对象所取代。层可以有多层的结构,但是这多层里面不是无序,是有严格的顺序的。一般,底层是level0,在这个层的上面是level1,再上面就是level2,依次类推。(在实际应用中对象主要是影片剪辑).原创部分结束,下面是一些参考。
[附录]
下面是引用FLASH8的帮助文档,关于:
_level 属性
_levelN
对 _level N 的根时间轴的引用。在使用 _level 属性定位 SWF 文件之前,必须使用 loadMovieNum()
将 SWF 文件加载到 Flash Player 中。还可使用 _level N 定位由 N 分配的级别的已加载 SWF 文件。加载到 Flash Player 实例中的初始 SWF 文件会自动加载到 _level0 中。_level0 中的 SWF 文件为所有随后加载的 SWF 文件设置帧频、背景色和帧大小。然后,SWF 文件堆叠在处于 _level0 中的 SWF 文件之上的更高编号级别中。您必须为使用 loadMovieNum() 加载到 Flash Player 中的每个 SWF 文件分配一个级别。您可按任意顺序分配级别。假如您分配的级别(包括 _level0)中已经包含 SWF 文件,则处于该级别的 SWF 文件将被卸载并由新的 SWF 文件替换。
假如大家还有爱好,可以再看看一个F8帮助文档里:
getNextHighestDepth(MovieClip.getNextHighestDepth 方法)
public getNextHighestDepth() : Number
确定可传递给 MovieClip.attachMovie()、MovieClip.duplicateMovieClip() 或
MovieClip.createEmptyMovieClip() 的深度值,以确保 Flash 将该影片剪辑呈现在当前影片剪辑中同一级和同一层上所有其它对象的前面。返回的值为 0 或更大的数字(即,不返回负数)。
您可以通过创建子类来扩展 MovieClip 类的方法和事件处理函数。
注重:假如使用第 2 版的组件,则不要使用此方法。假如您在舞台上或库中放置了第 2 版的版组件,getNextHighestDepth() 方法有时会返回深度 1048676,它超出了有效范围。假如使用第 2 版的组件,则应始终使用第 2 版的组件 DepthManager 类。
还有很多跟层级有关的,如:
getDepth(MovieClip.getDepth 方法),getInstanceAtDepth(MovieClip.getInstanceAtDepth 方法)
,swapDepths(MovieClip.swapDepths 方法),getDepth(TextField.getDepth 方法),getDepth(Button.getDepth 方法)等。有爱好请参考F8帮助文档的相关内容。以上对FLASH的场景、图层(lawyer)和层(level)做一个讨论,希望对你有所帮助。也希望你能指出不足之处。