flash时间轴上的图层和影片剪辑深度有何区别和关联?

图层1和深度1有何区别?
2024年11月22日 13:49
有2个网友回答
网友(1):

图层layer,层级_level,层深Depth,先说图层和层深。
flash依靠图层来组织对象。但是图层在as中不被引用。
对象实例化以后,就会具有层深。实例化对象有两种方式,一种是在舞台上通过新建元件或转成元件方式创建元件,另一种是通过as脚本动态创建。

对于在时间轴舞台上创建的实例来说,上一图层,永远覆盖下一图层的实例对象,上一图层的层深总是大于下一图层的层深。将两个图层交换位置,实际也是交换层深。然后同一图层上的对象又依据不同层深体现覆盖关系。此种方式创建的实例对象,其层深均为负值。flash最小层深是-16384,元件实例能返回的最小层深是-16383.

对于脚本动态创建的实例对象,起深度默认均不为负值。此时图层和深度关系又不同。在下一图层动态创建的对象,显示位置也会高于上一图层非动态创建的对象。但是注意在非动态创建的对象中再动态创建对象,则还是受其父级对象的规律影响。

基本就是这个样子,欢迎交流。

具体的说,图层1和深度1的关系符合图层和深度的关系,我们在flash中操作都是在图层上操作的,我们在舞台上创建对象,或者用脚本创建对象,都必须放在图层上来组织,默认是放在图层1。
在图层1上,非动态创建的对象,层深依据先后次序自动创建,后建的对象层深高于之前建的。默认这个层深会从-16383开始,都是负值,也就是说,这种情况下,图层1中不会有深度值1。非动态创建的对象,也分用工具绘制的形状、组和元件。还拿图层1中说,图层1的舞台上可以放置形状、图片、元件,形状和图片都无法获取到具体的深度值,只有元件才能返回深度值。而且,不论先后,形状总是位于图形和元件对象之下。

同样在图层1上,动态创建的对象,层深由动态创建时的层深参数值指定,参数值越大,层深越高。我们可以在as脚本参数中指定层深1。

深度值的范围很广,其深度范围通常分为三个区,有兴趣自己可以查一查。

综合起来一句话:图层,只是一个编辑FLA时才存在的概念,我们在编辑状态的操作是离不开它的。当输出SWF以后,图层已经形神俱灭了,MC之间只靠depth来确定上下位置,靠坐标来确定前后左右的位置;

层级,和层深以及图层基本没啥可比性。
我们测试一个元件实例,通常会得到:_level0.mymc
像这个样子的,_level0实际上相当于_root。默认情况下,一个flash文件里有很多图层,mc各自具有不同的深度,但他们都只有一个_root,即根目录,或者理解成主时间轴。
而每个_level都有各自的_root。
_level代表swf的上下关系。depth代表mc的上下关系。他们只是在这种位置层叠的性质上类似。

网友(2):

图层只是编辑阶段为了方便给人操作的东西,最终swf发布时,会根据各层级的层叠次序,对应编排层级。

图层1是面向编辑阶段的,比如动画教程里,或者我们回答别人flash的问题时,就说,选中图层2第15帧

而层级,则是运行时术语,比如我们说,交换mc_a与mc_b的层级