使用 System 類別
Flash Player 9 以及更新的版本,Adobe AIR 1.0 以及更新的版本
System 類別包含的方法與屬性,可讓您與使用者的作業系統進行互動,並擷取執行階段目前的記憶體使用量。System 類別的方法和屬性可讓您偵聽 imeComposition 事件,並指示 執行階段利用使用者的目前字碼頁載入外部文字檔,或是將這些檔案載入為 Unicode,或者設定使用者的剪貼簿內容。
在執行階段取得使用者系統的相關資料
您可以藉由檢查 System.totalMemory 屬性,判斷 執行階段目前所佔用的記憶體位元組數量。這個屬性可讓您監視所佔用的記憶體,並根據記憶體等級變更的程度,最佳化您的應用程式。例如,假設某個視覺效果造成記憶體使用量大幅增加,您可能會想要修改此效果,或是將其徹底刪除。
System.ime 屬性是目前所安裝「輸入法編輯器」(IME) 的參考。這個屬性可以讓您藉由使用 addEventListener() 方法,偵聽 imeComposition 事件 (flash.events.IMEEvent.IME_COMPOSITION)。
System 類別中的第三個屬性為 useCodePage。當 useCodePage 設定為 true 時, 執行階段就會使用作業系統的傳統字碼頁來載入外部文字檔。如果您將此屬性設定為 false,就會指示 執行階段將外部檔案解譯為 Unicode。
如果您將 System.useCodePage 設定為 true,則必須記住,作業系統的傳統字碼頁必須包含外部文字檔中使用的字元,如此才能顯示該檔案中的文字。例如,如果您載入包含中文字元的外部文字檔案,這些中文字元將不會顯示在使用英文版 Windows 字碼頁的系統上,因為該字碼頁並不包含中文字元。
若要確保所有平台上的使用者都可以檢視應用程式中的外部文字檔案,則應該將所有外部文字檔案都編碼為 Unicode,而且保留 System.useCodePage 的 false 預設設定。這樣, 執行階段就會將文字解譯為 Unicode。
將文字儲存到剪貼簿
System 類別包含名為 setClipboard() 的方法,可讓 Flash 執行階段以指定的字串來設定使用者的剪貼簿內容。基於安全性考量,該類別中並沒有 Security.getClipboard() 方法,因為這種方法具有潛在性風險,可能會讓惡意網站存取最後複製到使用者「剪貼簿」中的資料。
下列程式碼說明發生安全性錯誤時,錯誤訊息如何複製到使用者的剪貼簿中。如果使用者要透過應用程式回報潛在性錯誤,則此錯誤訊息會非常有用。
private function securityErrorHandler(event:SecurityErrorEvent):void
{
var errorString:String = "[" + event.type + "] " + event.text;
trace(errorString);
System.setClipboard(errorString);
}
Flash Player 10 和 AIR 1.0
您可以使用 Clipboard 類別來讀取以及寫入剪貼簿資料,以便回應使用者事件。在 AIR 中,於應用程式安全執行程序中執行的程式碼存取剪貼簿時,不需要使用者事件。