2013-09-01

1-3 物件路徑

在使用 AS 控制影片片段時,一個影片片段視為一個物件,影片片段中的子影片片段視為該物件的子物件。取用某物件的子物件時,使用點(dot)表示法。例如,在場景(root)中有個 a_mc 的影片片段,a_mc 之中又包含了 b_mc 的影片片段,若要在 root 的影格中設定 b_mc 為隱藏可以使用下式:

a_mc.b_mc.visible = false;

在 root 中只能先看到 a_mc,不能直接看到 b_mc,所以必須先以「a_mc.」指出 b_mc 的位置,這就是所謂「物件路徑」。

如果上述的 a_mc 中還包含另一個影片片段 c_mc。在 a_mc 所屬的時間軸影格中,可以使用下式將 c_mc 設定成隱藏:

c_mc.visible = false;

若我們希望在 b_mc 的影格中控制 c_mc 的顯現或隱藏,應該怎麼做呢 ?如下圖所示,在 b_mc 中看不到 c_mc,所以必須將觀察點移至 a_mc,才能看到 c_mc。

在 b_mc 中必須先將觀察點移至 a_mc,才能看見 c_mc

所以可以使用下兩式中的任何一式,於 b_mc 的影格中設定 c_mc 為隱藏:

parent.c_mc.visible = false;

this.parent.c_mc.visible = false;

在 b_mc 的影格中,this 表示目前物件,parent 表示父物件也就是 a_mc,在 a_mc 中才能看到 c_mc。在此 this 可以省略,所以上兩式是相同的意思。以目前的位置為參考點,進而取用其它物件,稱為「相對路徑」。上兩式就是使用相對路徑。

把觀察點拉到舞台上,先看到的會是 root(如下圖),這種以 root 為開頭的路徑表示法稱為「絕對路徑」。

將觀察點拉到舞台上

下式可以設定 c_mc 為隱藏:

root['a_mc'].c_mc.visible = false ;

上式中,root 為絕對路徑的判別字,不能省略。使用絕對路徑時,可以不用考慮目前 Frame Actions 所在的位置。如果使用相對路徑,務必注意「Actions 位於何處」(觀察點的位置)。

什麼時候使用「相對路徑」?什麼時候使用「絕對路徑」?通常以 Actions 敘述的長短而定。以上面的例子來說,若在 a_mc 中設定 c_mc 的屬性可以直接使用下式:

c_mc.屬性 = 設定值;

而不會使用下式:

root['a_mc'].c_mc.屬性 = 設定值;

有時為了避免混淆,可以使用絕對路徑。若要讓 MovieClip 方便重複使用,應該使用相對路徑。

目錄

沒有留言:

FB 留言