使用 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 中,在应用程序沙箱中运行的代码访问剪贴板时不需要用户事件。