輔助功能*

目錄

將檔案物件用於隨選視訊及 MP3 播放

檢查伺服器端 ActionScript

Flash Media Server 上會執行兩個應用程式:

  • FileObj 支援檔案存取和指向串流沙盒的篩選函數。
  • MyCollection 支援 FLVPlayback 元件函數。

這兩個應用程式都是使用相同的預設伺服器端 ActionScript 檔案 main.asc 執行的。

當您開發任何 Flash Media Server 應用程式時, 從伺服器端 ActionScript 著手會最簡單。這是因為您可以使用追蹤陳述式來除錯和模擬用戶端動作。這不但可以縮短開發時間, 也可避免後來的麻煩。

您可能會發現 FileObj 資料夾中的 main.asc 還有額外的函數。請注意, 伺服器端的 ActionScript 要比這個應用程式所需的來得多。這是要用來處理熟悉架構或 API 中的所有檔案存取指令。我希望您會覺得下面的程式碼實用, 並可改寫為未來使用的檔案存取函數。

讓我們來看看這個檔案中的幾個重要函數。

檔案類別的建構子

this.myFile = new File(name);

這個建構指令會建立檔案類別的執行個體, 即物件 myFile。變數和名稱可以是檔案或目錄。在本範例中, 您會將別名目錄傳遞到此處, 以蒐集目錄的相關資訊 (預設為 approot)。

檔案類別的檔案清單

var dirList = this.myFile.list(filter);

這是用戶端資料表格取得資訊的來源清單函數。這個清單方法會傳回陣列, 其中的每個元素代表目錄中的每個檔案。您可以使用下面的篩選函數來進一步篩選:

function filter(name)
    {
        if ( name.lastIndexOf( ".flv") != -1 || name.lastIndexOf(".mp3") != -1){
            return true;
        }
            return false;
    }

比方說, 如果您想以此為基礎, 但只要顯示 JPEG 影像, 就可以使用這個篩選和清單指令來控制傳送到用戶端的內容。

以下將簡短說明這個 main.asc 檔中的其他函數, 方便您改寫並用於「檔案物件」所建立的其他應用程式。如需這些函數的更多詳細資訊, 請參閱 Flash Media Server LiveDocs, 其中涵蓋每一個函數的仔細說明。

以下是其他「檔案物件」函數的簡短說明:

  1. newClient.mkdir 建立 dirName 定義的目錄
  2. newClient.remove 移除指定的檔案物件
  3. newClient.rename 重新命名指定的函數
  4. newClient.copy 將物件複製到指定的變數
  5. newClient.closeFile 關閉對檔案物件的存取

FLV_Playback 伺服器端 ActionScript

當使用 Flash Professional 8 中的 FLVPlayback 元件串流時, 最常見的錯誤就是忘了把 main.asc 檔加入串流 Flash Media Server 視訊目錄。因此, 我將這個檔案加到套件中, 以避免再發生這個問題。