Uso de la clase System

Flash Player 9 y posterior, Adobe AIR 1.0 y posterior

La clase System contiene métodos y propiedades que permiten interactuar con el sistema operativo del usuario y obtener el consumo de memoria actual del motor de ejecución. Los métodos y propiedades de la clase System también permiten detectar eventos imeComposition , ordenar al motor de ejecución de que cargue archivos de texto externos con la página de códigos actual del usuario o como Unicode, o establecer el contenido del portapapeles del usuario.

Obtención de datos sobre el sistema del usuario en tiempo de ejecución

Se puede comprobar el valor de la propiedad System.totalMemory para determinar la cantidad de memoria (en bytes) utilizada actualmente por el motor de ejecución de Esta propiedad permite controlar el consumo de memoria y optimizar las aplicaciones a partir de los cambios de nivel de la memoria. Por ejemplo, si un efecto visual específico provoca un gran aumento de consumo de memoria, es posible que se desee modificar el efecto o eliminarlo del todo.

La propiedad System.ime es una referencia al editor de método de entrada (IME) instalado actualmente. Esta propiedad permite detectar eventos imeComposition ( flash.events.IMEEvent.IME_COMPOSITION ) mediante el método addEventListener() .

La tercera propiedad de la clase System es useCodePage . Si useCodePage se establece en true , el motor de ejecución de utiliza la página de código tradicional del sistema operativo para cargar archivos de texto externos. Si se establece esta propiedad en false , se indica al motor de ejecución de que debe interpretar el archivo externo como Unicode.

Si se establece System.useCodePage en el valor true , hay que recordar que la página de códigos tradicional del sistema operativo en el que se ejecuta el reproductor debe incluir los caracteres utilizados en el archivo de texto externo para que se muestre el texto. Por ejemplo, si se carga un archivo de texto externo que contiene caracteres chinos, dichos caracteres no se visualizarán en un sistema que utilice la página de códigos de Windows en inglés, ya que dicha página de códigos no contiene caracteres chinos.

Para garantizar que los usuarios de todas las plataformas puedan ver archivos de texto externos que se utilizan en su aplicación, hay que codificar todos los archivos de texto externos como Unicode y establecer System.useCodePage como false de forma predeterminada. De este modo, el motor de ejecución de interpreta el texto como Unicode.

Copia de texto al portapapeles

La clase System incluye un método denominado setClipboard() que permite al motor de ejecución de Flash establecer el contenido del portapapeles del usuario con una cadena especificada. Por razones de seguridad, no hay un método Security.getClipboard() , ya que este método podría permitir a sitios malintencionados el acceso a los últimos datos copiados al portapapeles del usuario.

El código siguiente ilustra cómo se puede copiar un mensaje de error al portapapeles del usuario cuando se produce un error de seguridad. El mensaje de error puede ser útil si el usuario desea notificar un posible error con una aplicación.

private function securityErrorHandler(event:SecurityErrorEvent):void 
{ 
    var errorString:String = "[" + event.type + "] " + event.text; 
    trace(errorString); 
    System.setClipboard(errorString); 
}

Flash Player 10 y AIR 1.0

La clase Clipboard se puede utilizar para leer y escribir datos del portapapeles como respuesta a un evento de usuario. En AIR, no se requiere ningún evento de usuario para que el código que se ejecuta en el entorno limitado de la aplicación pueda acceder al portapeles.