Individual Entry

【翻译】SWF结构规范第四章:显示列表(二)

剪辑层
Clipping Layers


显示列表中有一种特殊的角色被叫做剪辑层(clipping layer),它不会显示,而是会剪切(遮住)其上的角色。PlaceObject2的ClipDepth字段指定由剪辑层遮住的最大深度。假如一个形状的深度是1,而clipDepth的值为4,所有的深度都大于1,包括深度4,但深度4仍会被深度1的角色遮住,而深度4以上的角色不会被遮住。


使用显示列表
Using the Display List


下面是创建一个flash动画的过程:
1 用定义标签定义每个角色,每个角色都被赋予唯一的一个ID,并被添加入字典。
2 通过PlaceObject2标签将每个角色添加入显示列表。PlaceObject2标签指定了要显示的角色,有下面的属性:
■ depth值,该值控制了显示的角色的层次。低深度的角色在高深度的角色之下。深度为1的角色显示于最底处。显示列表种可以有多个相同的角色,但它们必须处于不同的深度,一个深度只能容纳一个角色。
■ transformation matrix属性。该属性定义了要显示的角色的位置,比例,系数,角度,旋转值。不同transformation matrix属性的同一个角色可能会被放置多次(在不同的深度)。
■ 可选的color transform属性。具体指定了被放置的角色所运用的颜色效果。颜色效果包括透明度和颜色转换。
■ 可选的name字符串。为SetTarget定义了角色。SetTarget用于在精灵内执行脚本。
■ 可选的ClipDepth值。指定被放置的角色遮住的最大深度。
■ 可选的ratio值。控制形素对象被放置时如何显示。若为0则在形态的开始就显示。ratio值为65535,则角色在形态结束时显示。
3 通过ShowFrame标签将显示列表的内容呈递给屏幕。
4 通过PlaceObject2标签修改显示列表中的每一个角色。PlaceObject2会在角色被分配与深度的同时分配给它一个新的转换矩阵(角色ID无需指定,因为每一个深度只有一个角色)。
5 通过ShowFrame标签在新的位置显示角色。步骤4和步骤5反复进行,保证了帧动画的进行。
注意:如果一个对象在每一帧都没有改变,也就没有必要在每一帧都重新替换它。
6 通过RemoveObject2标签移除显示列表中的所有角色,只需要被移除角色的深度值,以便标识被移除的角色。

No comments yet:



:

:
:



Meta Information:

Title: 【翻译】SWF结构规范第四章:显示列表(二)
Date posted: 14 Jun '06 - 18:07
Filed under: actionscript
Wordcount: 34 words
Good Karma: 139 (vote)
Bad Karma: 100 (vote)
Next entry:  【翻译】SWF结构规范第四章:显示列表(三)
Previous entry:  【翻译】SWF结构规范第四章:显示列表(一)

Frontpage