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 方便重複使用,應該使用相對路徑。
目錄 |
沒有留言:
張貼留言