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 クラスの 3 番目のプロパティは useCodePage です。 useCodePage true に設定した場合、ランタイムは、オペレーティングシステムの通常のコードページを使用して外部テキストファイルを読み込みます。このプロパティを false に設定すると、ランタイムは外部ファイルを Unicode として解釈します。

System.useCodepage true に設定した場合、外部テキストファイル内で使用されている文字がオペレーティングシステムの通常のコードページに含まれていないと、そのテキストは表示されないことに注意してください。例えば、中国語を含んだ外部テキストファイルをロードする場合、English Windows コードページを使用しているシステム上では文字が表示されません。これは、English 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 では、クリップボードへのアクセスのためにアプリケーションサンドボックス内で実行されるコードにユーザーイベントは不要です。