Flash CS4 Professional ActionScript 2.0

使用 fscommand() 函數

注意

 

External API 是 Flash 8 及更新版本中,取代 fscommand() 來與 HTML 網頁或容器應用程式交互作業的工具。在這種情況下,「外部 API」能較 fscommand() 提供更完備的功能。如需詳細資訊,請參閱關於外部 API

您可以使用 fscommand() 函數將訊息傳送到裝載 Flash Player 的任何程式,如網頁瀏覽器。

注意

 

在 Macintosh 的 Safari 或 Internet Explorer 瀏覽器上使用 fscommand 呼叫 JavaScript 並不會有作用。

fscommand() 函數有兩個參數:commandarguments。若要將訊息傳送到獨立版本的 Flash Player,必須使用預先定義的命令和引數。例如,下例事件處理常式會在放開按鈕時,將獨立播放程式設定為將 SWF 檔放大到全螢幕大小:

my_btn.onRelease = function() {
    fscommand("fullscreen", true);
};

下表會顯示您可以為 fscommand()commandarguments 參數指定的值,用來控制在獨立播放程式 (包含放映檔) 中播放之 SWF 檔的播放和外觀:

注意

 

「放映檔」就是一種 SWF 儲存的格式,這種格式能夠將檔案本身當做是可以獨立播放的應用程式,也就是在可執行檔內將 Flash Player 內嵌在您的內容中。

命令

引數

目的

quit

關閉放映檔。

fullscreen

truefalse

指定 true 會將 Flash Player 設定為全螢幕模式。指定 false 會將播放程式恢復為一般選單檢視。

allowscale

truefalse

指定 false 會將播放程式設定為永遠以原始大小顯示 SWF 檔,而不需要縮放。指定 true 則會強制 SWF 檔縮放至播放程式的 100%。

showmenu

truefalse

指定 true 會顯示出完整的一組快顯選單項目;指定 false 會將除了「設定」及「關於 Flash Player」以外的所有快顯選單項目變暗。

exec

應用程式的路徑

從放映檔內執行應用程式。

若要使用 fscommand(),將訊息傳送到網頁瀏覽器中的 Scripting 語言 (如 JavaScript),可以在 commandarguments 參數中傳遞任意兩個參數。這些參數可以是字串或運算式,而且是應用在「捕捉」或處理 fscommand() 函數的 JavaScript 函數中。

fscommand() 函數會叫用嵌入 SWF 檔之 HTML 網頁中的 JavaScript 函數 moviename_DoFSCommand,其中 moviename 指的是 Flash Player 的名稱 (由 embed 標籤的 name 特質或 object 標籤的 id 特質所指定)。如果 SWF 檔指定名稱為 myMovie,則被叫用的 JavaScript 函數就會是 myMovie_DoFSCommand

 若要使用 fscommand() 透過 JavaScript 從 HTML 網頁中的 SWF 檔開啟訊息方塊:

  1. 建立一個新的 FLA 檔,將它儲存為 myMovie.fla
  2. 將兩個 Button 組件實體拖曳到「舞台」,並分別賦予它們實體名稱為 window_btnalert_btn,再將它們的標籤設為「開啟視窗」和「警告」。
  3. 在時間軸上插入新的圖層,然後將它重新命名為「動作」。
  4. 選取「動作」圖層的影格 1,然後在「動作」面板中加入下列的 ActionScript:
    window_btn.onRelease = function() {
        fscommand("popup", "http://www.adobe.com/");
    };
    alert_btn.onRelease = function() {
        fscommand("alert", "You clicked the button.");
    };
    
    
  5. 選取「檔案>發佈設定」,然後確認 HTML 索引標籤上的「範本」選單中,已選取了「包含 FSCommand 的 Flash」。
  6. 選取「檔案>發佈」,以產生 SWF 和 HTML 檔。
  7. 在 HTML 或文字編輯器中,開啟步驟 6 中所產生的 HTML 檔,然後檢查程式碼。當您使用「發佈設定」對話方塊之 HTML 索引標籤上的「包含 FSCommand 的 Flash」範本發佈 SWF 檔時,HTML 檔會差入一些額外的程式碼。SWF 檔的 NAMEID 特質就是檔案名稱。例如,檔案 myMovie.fla 的特質將會被設定成 myMovie
  8. 在 HTML 檔中,在文件顯示 // Place your code here.的地方加入下列的 JavaScript 程式碼:
    if (command == "alert") {
        alert(args);
    } else if (command == "popup") {
        window.open(args, "mmwin", "width=500,height=300");
    }
    
    

    (如需有關發佈的詳細資訊,請參閱「使用 Flash」)。

    或者,對於 Microsoft Internet Explorer 應用程式,您可以直接在 <SCRIPT> 標籤中附加事件處理常式,如下列範例所示:

    <script Language="JavaScript" event="FSCommand (command, args)" for="theMovie">
    ...
    </script>
    
    
  9. 儲存並關閉 HTML 檔。

    當您在 Flash 外部以這種方式編輯 HTML 檔時,請記得必須取消選取「檔案>發佈設定」中的 HTML 核取方塊,否則重新發佈時 Flash 就會覆寫 HTML 程式碼。

  10. 在網頁瀏覽器中,開啟 HTML 檔進行檢視。按一下「開啟視窗」按鈕,就會開啟一個連結到 Macromedia 網站的視窗。按一下「警告」按鈕,就會開啟警告視窗。

fscommand() 函數可將訊息傳送到 Macromedia Director,這些訊息會由 Lingo 解譯為字串、事件或可執行的 Lingo 程式碼。如果訊息是字串或事件,您必須編寫 Lingo 程式碼,接收來自 fscommand() 函數的訊息,並在 Director 中執行動作。如需詳細資訊,請參閱「Director 支援中心」,網址為 www.adobe.com/support/director

在 Visual Basic、Visual C++ 以及其它可裝載 ActiveX 控制項的程式中,fscommand() 會傳送 VB 事件,它包含的兩個字串可在環境的程式語言中處理。如需詳細資訊,請使用關鍵字 Flash method 在「Flash 支援中心」進行搜尋,網址為 www.adobe.com/support/flash