您可以使用 ActionScript® 在執行階段控制時間軸。 使用 ActionScript 便可以在 FLA 檔中建立互動效果與其他功能,這是單靠使用「時間軸」所無法做到的。
您可以使用 ActionScript® 在執行階段控制時間軸。 使用 ActionScript 便可以在 FLA 檔中建立互動效果與其他功能,這是單靠使用「時間軸」所無法做到的。
請參閱線上說明中與時間軸和 ActionScript 相關的討論,以了解如何使用 ActionScript 控制「時間軸」。
絕對路徑
絕對路徑是以文件載入的階層名稱做為開始,再依序加上顯示清單中的項目,直到到達目標實體為止。 您也可以使用別名 _root 來指向目前階層中的最高時間軸。 例如,影片片段 california 中指向影片片段 oregon 的動作可以使用絕對路徑 _root.westCoast.oregon。
Flash Player 會於階層 0 載入要開啟第一份文件。 您必須為其他所有文件指定要載入的階層編號。 當您在ActionScript中使用絕對參考來參考載入的檔案時,請使用表單_levelX,其中X是檔案載入的層級編號。 例如,在 Flash Player 中開啟的第一份文件叫做 _level0;載入階層 3 的文件則叫做 _level3。
若要在不同階層的文件之間通訊,請務必使用目標路徑中的階層名稱。 下列範例顯示portland執行個體如何定位於名為georgia的影片片段中的atlanta執行個體(georgia與oregon處於相同的層級):
_level5.georgia.atlanta
您可以使用 _root 別名指向目前階層中的主時間軸。 對主時間軸來說,當影片片段同時將 _level0 當成目標時,_root 別名就代表 _level0。 對於載入 _level5 的文件來說,當影片片段同時將 level 5 當成目標時,_root 則相當於 _level5。 例如,如果影片片段southcarolina和florida都載入到同一層級,則從例項southcarolina呼叫的操作可以使用以下絕對路徑來指向例項florida:
_root.eastCoast.florida
相對路徑
相對路徑是以控制時間軸和目標時間軸之間的關係做為基礎。 相對路徑只能在自己的 Flash Player 階層內為目標定址。 舉例來說,當 _level0 以 _level5 上的時間軸做為目標時,您無法在動作指令中使用相對路徑。
在相對路徑中,請使用關鍵字 this 來指向目前階層中的目前時間軸;請使用別名 _parent 代表目前時間軸的父時間軸。 若要在相同 Flash Player 階層內的影片片段階層架構中向上移動一個階層,請重複使用 _parent 別名。 例如,_parent._parent控制階層中兩個層級的影片片段。 任一 Flash Player 階層上的最高時間軸都是唯一具有未定義之 _parent 值的時間軸。
執行個體charleston的時間軸中的動作(位於southcarolina之下的一層)可以使用下列目標路徑來針對執行個體southcarolina:
_parent
若要從charleston的動作以執行個體eastCoast(上一層)為目標,您可以使用下列相對路徑:
_parent._parent
若要從charleston的時間軸中的動作以執行個體atlanta為目標,您可以使用下列相對路徑:
_parent._parent.georgia.atlanta
相對路徑對於重複使用指令碼來說非常有用。 例如,您可以將下列指令碼附加至將父項放大150%的影片片段:
onClipEvent(載入){ _parent._xscale
= 150; _parent._yscale = 150;
}
然後可以將這段指令碼附加到任何影片片段實體上,重複使用。
Flash Lite 1.0 和 1.1 僅支援將指令碼附加到按鈕, 並不支援將其附加到影片片段。
無論使用絕對路徑還是相對路徑,您都可以在時間軸中識別變數,或是具有點(.)的物件屬性 後接變數或屬性的名稱。 例如,下列陳述式將執行個體表單中的變數name設定為值「Gilbert」:
_root.form.name = 「Gilbert」;
使用絕對及相對目標路徑
您可以使用 ActionScript,將訊息從一個時間軸傳送到另一個時間軸。 包含動作的時間軸稱為「控制時間軸」,收到動作的時間軸稱為「目標時間軸」。 舉例來說,某個時間軸的最後一個影格中可能有一個動作,要求另一個時間軸開始播放。 若要指向某個目標時間軸,您必須使用目標路徑,指出此影片片段在顯示清單中的位置。
以下範例顯示一份名為 westCoast 之文件的階層關係,它在階層 0 上含有三段影片片段:california、oregon,和 washington。 每個影片片段依次包含兩個影片片段。
層級0(_l)
西海岸
加利福尼亞
三藩市
貝克斯費爾德
俄勒岡
波特蘭
亞士蘭
華盛頓
奧林匹亞
埃倫斯堡
就像在網站伺服器上一樣,Animate 中的每個時間軸有兩種定址方法:使用絕對路徑或相對路徑。 實體的絕對路徑一定是從階層名稱開始的完整路徑,不論呼叫動作的時間軸為何;例如,實體 california 的絕對路徑是 _level0.westCoast.california。 從不同位置呼叫的相對路徑不同;例如,從三藩市到california的相對路徑為 _parent,而從portland的相對路徑為_parent._parent.california。
指定目標路徑
若要控制影片片段、載入的 SWF 檔或按鈕,您必須指定目標路徑。 您可以手動指定目標路徑,或是使用「插入目標路徑」對話方塊或藉由建立可產生目標路徑的運算式來指定。 若要指定影片片段或按鈕的目標路徑,您必須先指定影片片段或按鈕的實體名稱。 載入的文件不需要實體名稱,因為會使用其階層編號做為實體名稱 (例如,_level5)。
將實體名稱指定至影片片段或按鈕
使用插入目標路徑對話方塊來指定目標路徑
這會成為控制時間軸。
手動指定目標路徑
這會成為控制時間軸。
將運算式當做目標路徑使用
這會成為控制時間軸。
在參數方塊中輸入運算結果為目標路徑的運算式。
請按一下滑鼠按鍵,在指令碼中置入插入點。 接著,請在「動作工具箱」的「函數」類別中連按兩下 targetPath 函數。 targetPath 函數會將影片片段的參考轉換為字串。
請按一下滑鼠按鍵,在指令碼中置入插入點。 接著,請在「動作工具箱」的「函數」類別中選取 eval 函數。 eval 函數會將字串轉換為用來呼叫 play 等方法的影片片段參考。
下面的指令碼會將值 1 指定給變數 i。 該指令碼接著便會使用 eval 函數來建立影片片段實體的參考,並將其指定給變數 x。 變數 x 現在為影片片段實體的參考,可以對 MovieClip 物件的方法進行呼叫。
i = 1; x = eval("mc"+i); x.play(); // this is equivalent to mc1.play();您也可以使用 eval 函數直接呼叫方法,如下範例所示:
eval("mc" + i)。play();