| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
La classe ByteArray fornisce metodi e proprietà per ottimizzare la lettura, scrittura e l'uso di dati binari.
Nota: la classe ByteArray è destinata agli sviluppatori di ActionScript esperti che necessitano di accedere ai dati a livello di byte.
I dati in memoria sono un array compresso (la rappresentazione più compatta del tipo di dati) di byte, ma un'istanza della classe ByteArray può essere manipolata mediante gli operatori [] (accesso array) standard di ActionScript. Può anche essere letta e scritta in un file in memoria, utilizzando metodi simili a quelli delle classi URLStream e Socket.
Inoltre, sono supportate la compressione e decompressione zlib e la serializzazione oggetto AMF (Action Message Format).
La classe ByteArray può essere utilizzata per le seguenti operazioni:
- Creare un protocollo personalizzato per connettersi a un server.
- Scrivere un proprio URLEncoder/URLDecoder.
- Scrivere un proprio pacchetto AMF/Remoting.
- Ottimizzare le dimensioni dei dati mediante i tipi di dati.
Vedere gli esempi
bytesAvailable:uint [sola lettura]
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Il numero di byte di dati disponibili per la lettura dalla posizione corrente dell'array di byte alla fine dell'array.
Utilizzare la proprietà bytesAvailable in combinazione con i metodi di lettura ogni volta che si accede a un oggetto ByteArray per verificare che i dati letti siano validi.
Implementazione
public function get bytesAvailable():uint
defaultObjectEncoding:uint [lettura-scrittura]
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Denota la codifica oggetto predefinita che la classe ByteArray deve utilizzare per una nuova istanza ByteArray. Quando si crea una nuova istanza ByteArray, la codifica dell'istanza inizia con il valore di defaultObjectEncoding. La proprietà defaultObjectEncoding è inizializzata su ObjectEncoding.AMF3.
Quando un oggetto viene scritto o letto da dati binari, il valore objectEncoding consente di determinare se deve essere utilizzato il formato ActionScript 3.0, 2.0 o 1.0. Questo valore è una costante della classe ObjectEncoding.
Implementazione
public static function get defaultObjectEncoding():uint
public function set defaultObjectEncoding(value:uint):void
Vedere anche
endian:String [lettura-scrittura]
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Modifica o legge l'ordine di byte dei dati: "bigEndian" o "littleEndian". Questi valori sono costanti della classe Endian.
Implementazione
public function get endian():String
public function set endian(value:String):void
Vedere anche
length:uint [lettura-scrittura]
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
La lunghezza dell'oggetto ByteArray in byte.
Se la lunghezza è impostata su un valore superiore alla lunghezza corrente, Flash Player riempie il lato destro con una serie di zero.
Se invece è impostata su un valore inferiore alla lunghezza corrente, l'array viene troncato.
Implementazione
public function get length():uint
public function set length(value:uint):void
objectEncoding:uint [lettura-scrittura]
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Consente di determinare se deve essere utilizzato il formato ActionScript 3.0, 2.0 o 1.0 per scrivere su o leggere da un'istanza ByteArray. Questo valore è una costante della classe ObjectEncoding.
Implementazione
public function get objectEncoding():uint
public function set objectEncoding(value:uint):void
Vedere anche
position:uint [lettura-scrittura]
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Sposta o restituisce la posizione corrente (in byte) del puntatore di file nell'oggetto ByteArray. Questo è il punto in cui la successiva chiamata a un metodo di lettura o di scrittura avvia, rispettivamente, la lettura o la scrittura.
Implementazione
public function get position():uint
public function set position(value:uint):void
public function ByteArray()
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Crea un'istanza ByteArray che rappresenta un array compresso di byte, in modo che sia possibile utilizzare i metodi e le proprietà della classe per ottimizzare l'archiviazione e il flusso dei dati.
public function compress():void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Comprime l'array di byte per mezzo del formato di dati compresso zlib. Viene compresso l'intero array.
Dopo la chiamata, viene impostata una nuova lunghezza della proprietà length del ByteArray. La proprietà position viene impostata alla fine dell'array di byte.
È possibile leggere la descrizione del formato di dati compresso zlib alle pagine e http://www.ietf.org/rfc/rfc1950.txt.
Vedere anche
public function readBoolean():Boolean
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Legge un valore booleano dal flusso di byte. Viene letto un singolo byte e viene restituito true se il byte è diverso da zero oppure false in caso contrario.
Restituisce
| Boolean — Restituisce true se il byte è diverso da zero; false in caso contrario.
|
Genera
| EOFError — I dati disponibili non sono sufficienti per la lettura.
|
public function readByte():int
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Legge un byte con segno dal flusso di byte.
Il valore restituito è compreso nell'intervallo da -128 a 127.
Restituisce
| int — Un numero intero compreso tra -128 e 127.
|
Genera
| EOFError — I dati disponibili non sono sufficienti per la lettura.
|
public function readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Legge il numero di byte di dati, specificato dal parametro length, dal flusso di byte. I byte vengono letti dall'oggetto ByteArray specificato dal parametro bytes e poi scritti nel ByteArray di destinazione a partire dalla posizione specificata dall'offset.
Parametri
| bytes:ByteArray — L'oggetto ByteArray in cui leggere i dati.
|
| |
| offset:uint (default = 0) — L'offset (posizione) in byte in corrispondenza del quale devono essere scritti i dati letti.
|
| |
| length:uint (default = 0) — Il numero di byte da leggere. Il valore predefinito 0 avvia la lettura di tutti i dati disponibili.
|
Genera
| EOFError — I dati disponibili non sono sufficienti per la lettura.
|
public function readDouble():Number
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Legge un numero a virgola mobile IEEE 754 a precisione doppia (64 bit) dal flusso di byte.
Restituisce
| Number — Un numero a virgola mobile a precisione doppia (64 bit).
|
Genera
| EOFError — I dati disponibili non sono sufficienti per la lettura.
|
public function readFloat():Number
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Legge un numero a virgola mobile IEEE 754 a precisione singola (32 bit) dal flusso di byte.
Restituisce
| Number — Un numero a virgola mobile a precisione singola (32 bit).
|
Genera
| EOFError — I dati disponibili non sono sufficienti per la lettura.
|
public function readInt():int
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Legge un numero intero con segno a 32 bit dal flusso di byte.
Il valore restituito è compreso nell'intervallo da -2147483648 a 2147483647.
Restituisce
| int — Un numero intero con segno a 32 bit, compreso tra -2147483648 e 2147483647.
|
Genera
| EOFError — I dati disponibili non sono sufficienti per la lettura.
|
public function readMultiByte(length:uint, charSet:String):String
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Legge una stringa multibyte della lunghezza specificata dal flusso di byte, utilizzando il set di caratteri specificato.
Parametri
| length:uint — Il numero di byte dal flusso di byte da leggere.
|
| |
| charSet:String — La stringa che indica il set di caratteri da utilizzare per interpretare i byte. Le stringhe dei set di caratteri possono essere "shift-jis", "cn-gb", "iso-8859-1" e altre. Per un elenco completo, vedere Set di caratteri supportati.
Nota: se il valore del parametro charSet non è riconosciuto dal sistema corrente, Flash Player impiega la pagina di codice predefinita del sistema come set di caratteri. Ad esempio, un valore per il parametro charSet, come inmyTest.readMultiByte(22, "iso-8859-01") che impiega 01 anziché 1 può funzionare sulla macchina utilizzata per lo sviluppo, ma non su un'altra macchina. Sull'altra macchina, Flash Player utilizzerà la pagina di codice predefinita del sistema.
|
Restituisce
| String — Stringa con codifica UTF-8.
|
Genera
| EOFError — I dati disponibili non sono sufficienti per la lettura.
|
public function readObject():*
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Legge un oggetto dall'array di byte, codificato nel formato serializzato AMF.
Restituisce
| * — L'oggetto deserializzato.
|
Genera
| EOFError — I dati disponibili non sono sufficienti per la lettura.
|
public function readShort():int
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Legge un numero intero con segno a 16 bit dal flusso di byte.
Il valore restituito è compreso nell'intervallo da -32768 a 32767.
Restituisce
| int — Un numero intero con segno a 16 bit, compreso tra -32768 e 32767.
|
Genera
| EOFError — I dati disponibili non sono sufficienti per la lettura.
|
public function readUnsignedByte():uint
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Legge un byte senza segno dal flusso di byte.
Il valore restituito è compreso nell'intervallo da 0 a 255.
Restituisce
| uint — Un numero intero senza segno a 32 bit, compreso tra 0 e 255.
|
Genera
| EOFError — I dati disponibili non sono sufficienti per la lettura.
|
public function readUnsignedInt():uint
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Legge un numero intero senza segno a 32 bit dal flusso di byte.
Il valore restituito è compreso nell'intervallo da 0 a 4294967295.
Restituisce
| uint — Un numero intero senza segno a 32 bit, compreso tra 0 e 4294967295.
|
Genera
| EOFError — I dati disponibili non sono sufficienti per la lettura.
|
public function readUnsignedShort():uint
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Legge un numero intero senza segno a 16 bit dal flusso di byte.
Il valore restituito è compreso nell'intervallo da 0 a 65535.
Restituisce
| uint — Un numero intero senza segno a 16 bit, compreso tra 0 e 65535.
|
Genera
| EOFError — I dati disponibili non sono sufficienti per la lettura.
|
public function readUTF():String
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Legge una stringa UTF-8 dal flusso di byte. Si presume che la stringa abbia come prefisso una dichiarazione unsigned short, che indica la lunghezza in byte.
Restituisce
| String — Stringa con codifica UTF-8.
|
Genera
| EOFError — I dati disponibili non sono sufficienti per la lettura.
|
Vedere anche
public function readUTFBytes(length:uint):String
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Legge una sequenza di byte UTF-8 specificata dal parametro length dal flusso di byte e restituisce una stringa.
Parametri
| length:uint — Una dichiarazione unsigned short che indica la lunghezza dei byte UTF-8.
|
Restituisce
| String — Una stringa composta dai byte UTF-8 della lunghezza specificata.
|
Genera
| EOFError — I dati disponibili non sono sufficienti per la lettura.
|
public function toString():String
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Converte l'array di byte in una stringa. Se i dati nell'array iniziano con un BOM Unicode, Flash rispetta questo contrassegno durante la conversione in stringa. Se System.useCodePage è impostato su true, i dati dell'array vengono considerati parte della tabella codici del sistema corrente durante la conversione.
Restituisce
| String — La rappresentazione in stringa dell'array di byte.
|
public function uncompress():void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Decomprime l'array di byte. L'array di byte deve essere compresso utilizzando il formato di dati compresso zlib.
Dopo la chiamata, viene impostata una nuova lunghezza della proprietà length del ByteArray. La proprietà position viene impostata su 0.
È possibile leggere la descrizione del formato di dati compresso zlib alle pagine e http://www.ietf.org/rfc/rfc1950.txt.
Vedere anche
public function writeBoolean(value:Boolean):void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Scrive un valore booleano. Viene scritto un singolo byte a seconda del parametro value: 1 se true oppure 0 se false.
Parametri
| value:Boolean — Un valore booleano che determina il byte da scrivere. Se il parametro è true, Flash Player scrive 1; se è false, scrive 0.
|
public function writeByte(value:int):void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Scrive un byte nel flusso di byte.
Vengono utilizzati i 8 bit bassi del parametro. I 24 bit alti vengono ignorati.
Parametri
| value:int — Numero intero a 32 bit. Gli 8 bit bassi vengono scritti nel flusso di byte.
|
public function writeBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Scrive una sequenza di byte length dall'array di byte specificato, bytes, avviando i byte offset (numero intero a base zero) nel flusso di byte.
Se il parametro length viene omesso, viene utilizzata la lunghezza predefinita 0 e Flash Player scrive l'intero buffer partendo da offset. Se viene omesso anche il parametro offset, viene scritto l'intero buffer.
Se offset o length è fuori intervallo, viene fissato all'inizio e alla fine dell'array bytes.
Parametri
| bytes:ByteArray — L'oggetto ByteArray.
|
| |
| offset:uint (default = 0) — Un numero intero a base zero, che indica la posizione dell'array da cui viene avviata la scrittura.
|
| |
| length:uint (default = 0) — Un numero intero senza segno, che indica fin dove scrivere nel buffer.
|
public function writeDouble(value:Number):void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Scrive un numero a virgola mobile IEEE 754 a precisione doppia (64 bit) nel flusso di byte.
Parametri
| value:Number — Un numero a virgola mobile a precisione doppia (64 bit).
|
public function writeFloat(value:Number):void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Scrive un numero a virgola mobile IEEE 754 a precisione singola (32 bit) nel flusso di byte.
Parametri
| value:Number — Un numero a virgola mobile a precisione singola (32 bit).
|
public function writeInt(value:int):void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Scrive un numero intero con segno a 32 bit nel flusso di byte.
Parametri
| value:int — Un numero intero da scrivere nel flusso di byte.
|
public function writeMultiByte(value:String, charSet:String):void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Scrive una stringa multibyte in un flusso di byte utilizzando il set di caratteri specificato.
Parametri
| value:String — Il valore stringa da scrivere.
|
| |
| charSet:String — La stringa che indica il set di caratteri da utilizzare. Le stringhe dei set di caratteri possono essere "shift-jis", "cn-gb", "iso-8859-1" e altre. Per un elenco completo, vedere Set di caratteri supportati.
|
public function writeObject(object:*):void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Scrive un oggetto nell'array di byte nel formato serializzato AMF.
Parametri
| object:* — L'oggetto da serializzare.
|
public function writeShort(value:int):void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Scrive un numero intero a 16 bit nel flusso di byte. Vengono utilizzati i 16 bit bassi del parametro. I 16 bit alti vengono ignorati.
Parametri
| value:int — Numero intero a 32 bit, i cui 16 bit bassi vengono scritti nel flusso di byte.
|
public function writeUnsignedInt(value:uint):void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Scrive un numero intero senza segno a 32 bit nel flusso di byte.
Parametri
| value:uint — Un numero intero senza segno da scrivere nel flusso di byte.
|
public function writeUTF(value:String):void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Scrive una stringa UTF-8 nel flusso di byte. La lunghezza della stringa UTF-8 in byte viene scritta per prima, come numero intero a 16 bit, seguita dai byte che rappresentano i caratteri della stringa.
Parametri
| value:String — Il valore stringa da scrivere.
|
Genera
public function writeUTFBytes(value:String):void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Scrive una stringa UTF-8 nel flusso di byte. È simile al metodo writeUTF(), ma writeUTFBytes() non inserisce come prefisso alla stringa una parola di 16 bit.
Parametri
| value:String — Il valore stringa da scrivere.
|
L'esempio seguente utilizza la classe
ByteArrayExample per scrivere un valore booleano e la rappresentazione di pi a virgola mobile e a precisione doppia in un array di byte. Questa operazione viene eseguita mediante la procedura seguente:
- Dichiarare una nuova istanza dell'oggetto ByteArray
byteArr.
- Scrivere l'equivalente in byte del valore booleano
false, quindi verificarne la lunghezza ed eseguirne la lettura.
- Scrivere l'equivalente a virgola mobile e precisione doppia del valore matematico di pi.
- Leggere ognuno dei nove byte scritti nell'array di byte.
Nota: quando trace() viene chiamato su un byte, viene stampato l'equivalente decimale dei byte memorizzati nell'array di byte.
Si noti che alla fine viene aggiunto un segmento di codice per verificare la presenza di errori di fine del file e assicurare che il flusso di byte non venga letto oltre il suo punto finale.
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. All rights reserved.
Fri Oct 12 2007, 3:14 AM GMT-07:00
Pagina corrente: http://livedocs.adobe.com/flash/9.0_it/ActionScriptLangRefV3/flash/utils/ByteArray.html