| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
La clase ByteArray proporciona métodos y propiedades para optimizar la lectura, escritura y trabajo con datos binarios.
Nota: la clase ByteArray está pensada para desarrolladores avanzados de ActionScript que necesiten acceder al nivel de bytes de los datos.
Los datos en memoria son una matriz empaquetada de bytes (la representación más compacta para este tipo de datos), pero se puede manipular una instancia de la clase ByteArray con los operadores habituales [] (acceso a matrices) de ActionScript. También se puede leer y escribir como en un archivo en memoria; los métodos utilizados son similares a los de las clases URLStream y Socket.
Además, se admite la compresión y descompresión zlib, así como la serialización de objetos de formato de mensaje de acción (AMF).
Éstos son algunos de los posibles usos de la clase ByteArray:
- Creación de un protocolo personalizado para conectar con un servidor.
- Escritura de sus propios URLEncoder/URLDecoder.
- Escritura de su propio paquete AMF/remoto.
- Optimización del tamaño de los datos gracias a los tipos de datos.
Ver los ejemplos
bytesAvailable:uint [read-only]
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
El número de bytes de datos disponibles para su lectura desde la posición actual de la matriz de bytes hasta el final de la matriz.
Utilice la propiedad bytesAvailable en combinación con los métodos de lectura cada vez que acceda a un objeto ByteArray para garantizar que los datos leídos son válidos.
Implementación
public function get bytesAvailable():uint
defaultObjectEncoding:uint [read-write]
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Denota la codificación predeterminada del objeto para que la clase ByteArray lo utilice en una instancia nueva de ByteArray. Al crear una nueva instancia de ByteArray, la codificación de dicha instancia se inicia con el valor de defaultObjectEncoding. La propiedad defaultObjectEncoding se inicializa en ObjectEncoding.AMF3.
Cuando se escribe o se lee un objeto a partir de datos binarios, se utiliza el valor objectEncoding para determinar si se debe utilizar el formato de ActionScript 3.0, 2.0 ó 1.0. El valor es una constante de la clase ObjectEncoding.
Implementación
public static function get defaultObjectEncoding():uint
public function set defaultObjectEncoding(value:uint):void
Véase también
endian:String [read-write]
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Cambia o lee el orden de bytes para los datos "bigEndian" o "littleEndian". Los valores son constantes de la clase Endian.
Implementación
public function get endian():String
public function set endian(value:String):void
Véase también
length:uint [read-write]
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Longitud del objeto ByteArray, expresada en bytes.
Si la longitud se define como valor superior a la longitud actual, Flash Player rellena el lado derecho con ceros.
Si la longitud se define como valor inferior a la longitud actual, la matriz se trunca.
Implementación
public function get length():uint
public function set length(value:uint):void
objectEncoding:uint [read-write]
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Se utiliza para determinar si se debe utilizar el formato ActionScript 3.0, 2.0 ó 1.0 al escribir o leer una instancia de ByteArray. El valor es una constante de la clase ObjectEncoding.
Implementación
public function get objectEncoding():uint
public function set objectEncoding(value:uint):void
Véase también
position:uint [read-write]
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Desplaza (o devuelve) la posición actual (expresada en bytes) del puntero del archivo al objeto ByteArray. Se trata del punto en el que se inicia la lectura de la siguiente llamada a un método de lectura o la escritura de un método de escritura.
Implementación
public function get position():uint
public function set position(value:uint):void
public function ByteArray()
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Crea una instancia de ByteArray que representa una matriz empaquetada de bytes, de modo que es posible utilizar los métodos y propiedades de esta clase para mejorar el flujo y almacenamiento de los datos.
public function compress():void
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Comprime la matriz de bytes con el formato de datos comprimidos zlib. Se comprime toda la matriz de bytes.
Después de la llamada, la propiedad length de ByteArray se establece con la nueva longitud. La propiedad position se establece al final de la matriz de bytes.
El formato de datos comprimidos zlib se describe en http://www.ietf.org/rfc/rfc1950.txt.
Véase también
public function readBoolean():Boolean
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Lee un valor booleano del flujo de bytes. Se lee un solo byte y devuelve true si el byte es distinto de cero; en caso contrario, devuelve false.
Valor devuelto
| Boolean — Devuelve true si el byte es distinto a cero; en caso contrario, devuelve false.
|
Emite
| EOFError — No hay datos suficientes disponibles para leer.
|
public function readByte():int
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Lee un byte con signo del flujo de bytes.
El valor devuelto se encuentra entre -128 y 127.
Valor devuelto
| int — Un entero entre -128 y 127.
|
Emite
| EOFError — No hay datos suficientes disponibles para leer.
|
public function readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Lee el número de bytes de datos especificado por el parámetro length desde el flujo de bytes. Los bytes se leen en un objeto ByteArray especificado por el parámetro bytes y se escriben en el ByteArray de destino comenzando desde la posición especificada en offset.
Parámetros
| bytes:ByteArray — El objeto ByteArray en el que se leerán los datos.
|
| |
| offset:uint (default = 0) — La posición de desplazamiento en bytes en la que se deben escribir los datos de lectura.
|
| |
| length:uint (default = 0) — El número de bytes que se van a leer. El valor predeterminado 0 hace que se lean todos los datos disponibles.
|
Emite
| EOFError — No hay datos suficientes disponibles para leer.
|
public function readDouble():Number
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Lee un número de coma flotante (64 bits) con precisión doble IEEE 754 del flujo de bytes.
Valor devuelto
| Number — Número de coma flotante (64 bits) con precisión doble.
|
Emite
| EOFError — No hay datos suficientes disponibles para leer.
|
public function readFloat():Number
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Lee un número de coma flotante (32 bits) con precisión simple IEEE 754 del flujo de bytes.
Valor devuelto
| Number — Número de coma flotante (32 bits) con precisión simple.
|
Emite
| EOFError — No hay datos suficientes disponibles para leer.
|
public function readInt():int
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Lee un entero de 32 bits con signo del flujo de bytes.
El valor devuelto se encuentra entre -2147483648 y 2147483647.
Valor devuelto
| int — Entero de 32 bits con signo entre -2147483648 y 2147483647.
|
Emite
| EOFError — No hay datos suficientes disponibles para leer.
|
public function readMultiByte(length:uint, charSet:String):String
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Lee una cadena multibyte de longitud especificada desde el flujo de bytes mediante el juego de caracteres especificado.
Parámetros
| length:uint — El número de bytes del flujo de bytes que se va a leer.
|
| |
| charSet:String — La cadena que denota el juego de caracteres que se utilizará para interpretar los bytes. Las posibles cadenas del conjunto de caracteres puden ser "shift-jis", "cn-gb", "iso-8859-1" y otras. Para obtener una lista completa, consulte los juegos de caracteres admitidos.
Nota: si el sistema actual no reconoce el parámetro charSet, Flash Player utiliza la página de códigos predeterminada del sistema como conjunto de caracteres. Por ejemplo, un valor para el parámetro charSet, como en myTest.readMultiByte(22, "iso-8859-01") que utiliza 01 en lugar de 1 podría funcionar en su equipo de desarrollo, pero no en otro. En el otro equipo, Flash Player utilizará la página de códigos predeterminada del sistema.
|
Valor devuelto
| String — Cadena con codificación UTF-8.
|
Emite
| EOFError — No hay datos suficientes disponibles para leer.
|
public function readObject():*
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Lee un objeto de la matriz de bytes, codificado en formato serializado AMF.
Valor devuelto
| * — El objeto deserializado.
|
Emite
| EOFError — No hay datos suficientes disponibles para leer.
|
public function readShort():int
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Lee un entero de 16 bits con signo del flujo de bytes.
El valor devuelto se encuentra entre -32768 y 32767.
Valor devuelto
| int — Entero de 16 bits con signo entre -32768 y 32767.
|
Emite
| EOFError — No hay datos suficientes disponibles para leer.
|
public function readUnsignedByte():uint
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Lee un byte sin signo del flujo de bytes.
El valor devuelto se encuentra entre 0 y 255.
Valor devuelto
| uint — Entero de 32 bits sin signo entre 0 y 255.
|
Emite
| EOFError — No hay datos suficientes disponibles para leer.
|
public function readUnsignedInt():uint
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Lee un entero de 32 bits sin signo del flujo de bytes.
El valor devuelto se encuentra entre 0 y 4294967295.
Valor devuelto
| uint — Entero de 32 bits sin signo entre 0 y 4294967295.
|
Emite
| EOFError — No hay datos suficientes disponibles para leer.
|
public function readUnsignedShort():uint
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Lee un entero de 16 bits sin signo del flujo de bytes.
El valor devuelto se encuentra entre 0 y 65535.
Valor devuelto
| uint — Entero de 16 bits sin signo entre 0 y 65535.
|
Emite
| EOFError — No hay datos suficientes disponibles para leer.
|
public function readUTF():String
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Lee una cadena UTF-8 del flujo de bytes. Se da por hecho que la cadena tiene un prefijo de declaración unsigned short que indica la longitud en bytes.
Valor devuelto
| String — Cadena con codificación UTF-8.
|
Emite
| EOFError — No hay datos suficientes disponibles para leer.
|
Véase también
public function readUTFBytes(length:uint):String
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Lee una secuencia de bytes UTF-8 especificada por el parámetro length desde el flujo de bytes y devuelve una cadena.
Parámetros
| length:uint — Declaración unsigned short que indica la longitud de los bytes UTF-8.
|
Valor devuelto
| String — Cadena compuesta por los bytes UTF-8 de la longitud especificada.
|
Emite
| EOFError — No hay datos suficientes disponibles para leer.
|
public function toString():String
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Convierte la matriz de bytes en una cadena. Si los datos de la matriz comienzan con una marca de orden de byte Unicode, Flash conservará dicha marca al convertirla en una cadena. Si System.useCodePage se define como true, el reproductor tratará los datos de la matriz como si estuvieran en la página de códigos del sistema actual durante la conversión.
Valor devuelto
| String — Representación de cadena de la matriz de bytes.
|
public function uncompress():void
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Descomprime la matriz de bytes. La matriz de bytes debe haberse comprimido con el formato de datos comprimidos zlib.
Después de la llamada, la propiedad length de ByteArray se establece con la nueva longitud. La propiedad position está establecida en 0.
El formato de datos comprimido zlib se describe en http://www.ietf.org/rfc/rfc1950.txt.
Véase también
public function writeBoolean(value:Boolean):void
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Escribe un valor booleano. Se escribe un solo byte según el parámetro value, 1 si es true o 0 si es false.
Parámetros
| value:Boolean — Valor booleano que determina el byte que se escribe. Si el parámetro es true, Flash Player escribe un 1; si es false, Flash Player escribe un 0.
|
public function writeByte(value:int):void
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Escribe un byte en el flujo de bytes.
Se utilizan los 8 bits más bajos del parámetro. Los 24 bits más altos se omiten.
Parámetros
| value:int — Entero de 32 bits. Los 8 bits más bajos se escriben en el flujo de bytes.
|
public function writeBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Escribe una secuencia de length bytes desde la matriz de bytes especificada, bytes, comenzando por offset (índice basado en cero) bytes en el flujo de bytes.
Si se omite el parámetro length, se utiliza la longitud predeterminada de 0; Flash Player escribe en todo el búfer comenzando por offset. Si también se omite el parámetro offset, se escribirá en todo el búfer.
Si offset o length está fuera de rango, se ajustarán para que coincidan con el principio y el final de la matriz bytes.
Parámetros
| bytes:ByteArray — Objeto ByteArray.
|
| |
| offset:uint (default = 0) — Índice basado en cero que indica la posición de la matriz en la que se comenzará a escribir.
|
| |
| length:uint (default = 0) — Un entero sin signo que indica la profundidad del búfer en el que se escribirá.
|
public function writeDouble(value:Number):void
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Escribe un número de coma flotante (64 bits) con precisión doble IEEE 754 en el flujo de bytes.
Parámetros
| value:Number — Número de coma flotante (64 bits) con precisión doble.
|
public function writeFloat(value:Number):void
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Escribe un número de coma flotante (32 bits) con precisión simple IEEE 754 en el flujo de bytes.
Parámetros
| value:Number — Número de coma flotante (32 bits) con precisión simple.
|
public function writeInt(value:int):void
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Escribe un entero de 32 bits con signo en el flujo de bytes.
Parámetros
| value:int — Entero que se escribe en el flujo de bytes.
|
public function writeMultiByte(value:String, charSet:String):void
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Escribe una cadena multibyte en el flujo de bytes mediante el juego de caracteres especificado.
Parámetros
| value:String — El valor de la cadena que se va a escribir.
|
| |
| charSet:String — Cadena que denota el conjunto de caracteres que se va a utilizar. Las posibles cadenas del conjunto de caracteres pueden ser "shift-jis", "cn-gb", "iso-8859-1" y otras. Para obtener una lista completa, consulte los juegos de caracteres admitidos.
|
public function writeObject(object:*):void
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Escribe un objeto en la matriz de bytes en formato serializado AMF.
Parámetros
| object:* — Objeto que se va a serializar.
|
public function writeShort(value:int):void
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Escribe un entero de 16 bits en el flujo de bytes. Se utilizan los 16 bits más bajos del parámetro. Los 16 bits más altos se omiten.
Parámetros
| value:int — Entero de 32 bits, cuyos 16 bits más bajos se escriben en el flujo de bytes.
|
public function writeUnsignedInt(value:uint):void
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Escribe un entero de 32 bits sin signo en el flujo de bytes.
Parámetros
| value:uint — Entero sin signo que se escribe en el flujo de bytes.
|
public function writeUTF(value:String):void
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Escribe una cadena UTF-8 en el flujo de bytes. La longitud de la cadena UTF-8 (expresada en bytes) se escribe primero, como un entero de 16 bits, seguida de los bytes que representan los caracteres de la cadena.
Parámetros
| value:String — El valor de la cadena que se va a escribir.
|
Emite
public function writeUTFBytes(value:String):void
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Escribe una cadena UTF-8 en el flujo de bytes. Similar al método writeUTF(), pero writeUTFBytes() no añade un prefijo a la cadena con una palabra de 16 bits de longitud.
Parámetros
| value:String — El valor de la cadena que se va a escribir.
|
En el ejemplo siguiente, se utiliza la clase
ByteArrayExample para escribir un valor booleano y la representación de coma flotante con precisión doble de pi en una matriz de bytes. Esto se consigue con los pasos siguientes:
- Declare una nueva instancia del objeto ByteArray
byteArr.
- Escriba el valor equivalente a bytes del valor booleano
false y, a continuación, compruebe la longitud y vuélvalo a leer.
- Escriba el equivalente de coma flotante con precisión doble del valor matemático de pi.
- Vuelva a leer cada uno de los nueves bytes escritos en la matriz de bytes.
Nota: si trace() se llama en un byte, imprime el equivalente decimal de los bytes almacenados en la matriz de bytes.
Observe que se añade un segmento de código al final para comprobar errores al final del archivo para garantizar que el flujo de bytes no se lea más allá de su final.
package {
import flash.display.Sprite;
import flash.utils.ByteArray;
import flash.errors.EOFError;
public class ByteArrayExample extends Sprite {
public function ByteArrayExample() {
var byteArr:ByteArray = new ByteArray();
byteArr.writeBoolean(false);
trace(byteArr.length); // 1
trace(byteArr[0]); // 0
byteArr.writeDouble(Math.PI);
trace(byteArr.length); // 9
trace(byteArr[0]); // 0
trace(byteArr[1]); // 64
trace(byteArr[2]); // 9
trace(byteArr[3]); // 33
trace(byteArr[4]); // 251
trace(byteArr[5]); // 84
trace(byteArr[6]); // 68
trace(byteArr[7]); // 45
trace(byteArr[8]); // 24
byteArr.position = 0;
try {
trace(byteArr.readBoolean() == false); // true
}
catch(e:EOFError) {
trace(e); // EOFError: Error #2030: End of file was encountered.
}
try {
trace(byteArr.readDouble()); // 3.141592653589793
}
catch(e:EOFError) {
trace(e); // EOFError: Error #2030: End of file was encountered.
}
try {
trace(byteArr.readDouble());
}
catch(e:EOFError) {
trace(e); // EOFError: Error #2030: End of file was encountered.
}
}
}
}
© 2004-2007 Adobe Systems Incorporated. Todos los derechos reservados.
Fri Oct 12 2007, 2:30 AM GMT-07:00
Página actual: http://livedocs.adobe.com/flash/9.0_es/ActionScriptLangRefV3/flash/utils/ByteArray.html