| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
La classe ByteArray comporte des méthodes et des propriétés permettant d’optimiser la lecture, l’écriture et la manipulation des données binaires.
Remarque : la classe ByteArray s’adresse aux développeurs ActionScript chevronnés qui doivent accéder aux données au niveau des octets.
Les données en mémoire correspondent à un tableau contracté (la représentation la plus compacte du type de données) d’octets, mais une occurrence de la classe ByteArray peut être manipulée avec les opérateurs ActionScript [] (accès au tableau). Ces données peuvent également être lues et écrites sous forme de fichier en mémoire, en utilisant des méthodes similaires à celles des classes URLStream et Socket.
En outre, la technologie zlib de compression/décompression est prise en charge, de même que la sérialisation d’objet AMF (Action Message Format).
Exemples d’utilisation de la classe ByteArray :
- Création d’un protocole personnalisé pour établir une connexion à un serveur
- Ecriture de votre propre URLEncoder/URLDecoder
- Ecriture de votre propre paquet AMF/Remoting
- Optimisation de la taille de vos données à l’aide de types de données
Consulter les exemples
bytesAvailable:uint [lecture-seule]
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Nombre d'octets de données pouvant être lus à partir de la position actuelle dans le tableau d'octets et jusqu'à la fin de ce tableau.
Utilisez la propriété bytesAvailable conjointement avec les méthodes de lecture chaque fois que vous accédez à un objet ByteArray pour vous assurer que les données lues sont valides.
Implémentation
public function get bytesAvailable():uint
defaultObjectEncoding:uint [lecture-écriture]
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Indique l’encodage d’objet par défaut que doit utiliser la classe ByteArray pour une nouvelle occurrence de ByteArray. Lorsque vous créez une nouvelle occurrence de ByteArray, l’encodage correspondant débute par la valeur de defaultObjectEncoding. La propriété defaultObjectEncoding est initialisée à ObjectEncoding.AMF3.
Lorsqu’un objet est écrit ou lu dans des données binaires, la valeur objectEncoding permet de déterminer le format à utiliser : ActionScript 3.0, ActionScript 2.0 ou ActionScript 1.0. La valeur est une constante extraite de la classe ObjectEncoding.
Implémentation
public static function get defaultObjectEncoding():uint
public function set defaultObjectEncoding(value:uint):void
Voir aussi
endian:String [lecture-écriture]
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Modifie ou lit l’ordre des octets des données (« bigEndian » ou « littleEndian »). Les valeurs supportées sont des constantes extraites de la classe Endian.
Implémentation
public function get endian():String
public function set endian(value:String):void
Voir aussi
length:uint [lecture-écriture]
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Longueur de l’objet ByteArray, en octets.
Si la longueur est réglée sur une valeur supérieure à la longueur en cours, Flash Player remplit l'espace laissé à droite avec des zéros.
Si la longueur est réglée sur une valeur inférieure à la longueur en cours, le tableau est tronqué.
Implémentation
public function get length():uint
public function set length(value:uint):void
objectEncoding:uint [lecture-écriture]
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Permet de déterminer le format à utiliser (ActionScript 3.0, ActionScript 2.0 ou ActionScript 1.0) pour l’écriture ou la lecture d'une occurrence ByteArray. La valeur est une constante extraite de la classe ObjectEncoding.
Implémentation
public function get objectEncoding():uint
public function set objectEncoding(value:uint):void
Voir aussi
position:uint [lecture-écriture]
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Déplace le pointeur de fichier dans l’objet ByteArray ou en renvoie la position actuelle, en octets. Il s'agit de l’endroit où le prochain appel d’une méthode de lecture ou d’écriture démarre l’opération.
Implémentation
public function get position():uint
public function set position(value:uint):void
public function ByteArray()
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Crée une occurrence de ByteArray qui représente un tableau d’octets contracté, afin de vous permettre d'utiliser les méthodes et propriétés de cette classe pour optimiser les flux et le stockage de vos données.
public function compress():void
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Compresse le tableau d'octets au format de données compressé zlib. Tout le tableau d’octets est compressé.
Après l'appel, la propriété length de l'objet ByteArray est définie sur la nouvelle longueur. La propriété position est définie à la fin du tableau d'octets.
Le format de données compressé zlib est décrit à l'adresse http://www.ietf.org/rfc/rfc1950.txt.
Voir aussi
public function readBoolean():Boolean
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Lit une valeur booléenne dans le flux d’octets. Un seul octet est lu, et la valeur true est renvoyée s'il n'est pas nul, false dans le cas contraire.
Valeur renvoyée
| Boolean — Renvoie true si l’octet correspond à une valeur autre que zéro, false dans le cas contraire.
|
Lance
| EOFError — Les données à lire ne sont pas suffisantes.
|
public function readByte():int
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Lit un octet signé dans le flux d’octets.
La valeur renvoyée est comprise entre -128 et 127.
Valeur renvoyée
| int — Entier compris entre -128 et 127.
|
Lance
| EOFError — Les données à lire ne sont pas suffisantes.
|
public function readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Lit le nombre d’octets de données spécifié par le paramètre length dans le flux d’octets. Les octets sont lus dans l'objet ByteArray spécifié par le paramètre bytes, et les octets sont écrits dans l'objet ByteArray cible en commençant à la position spécifiée par offset.
Paramètres
| bytes:ByteArray — Objet ByteArray dont les données doivent être lues.
|
| |
| offset:uint (default = 0) — Décalage (position) en octets auquel les données lues doivent être écrites.
|
| |
| length:uint (default = 0) — Nombre d'octets à lire. La valeur 0 (par défaut) provoque la lecture de toutes les données disponibles.
|
Lance
| EOFError — Les données à lire ne sont pas suffisantes.
|
public function readDouble():Number
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Lit un nombre à virgule flottante à deux décimales (64 bits), conforme à IEEE 754, dans le flux d’octets.
Valeur renvoyée
| Number — Nombre à virgule flottante à deux décimales (64 bits).
|
Lance
| EOFError — Les données à lire ne sont pas suffisantes.
|
public function readFloat():Number
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Lit un nombre à virgule flottante à une décimale (32 bits), conforme à IEEE 754, dans le flux d’octets.
Valeur renvoyée
| Number — Nombre à virgule flottante à une décimale (32 bits).
|
Lance
| EOFError — Les données à lire ne sont pas suffisantes.
|
public function readInt():int
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Lit un entier de 32 bits signé dans le flux d’octets.
La valeur renvoyée est comprise entre -2147483648 et 2147483647.
Valeur renvoyée
| int — Entier signé de 32 bits compris entre -2147483648 et 2147483647.
|
Lance
| EOFError — Les données à lire ne sont pas suffisantes.
|
public function readMultiByte(length:uint, charSet:String):String
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Lit une chaîne à plusieurs octets de longueur spécifiée à partir du flux d'octets et à l'aide du jeu de caractères désigné.
Paramètres
| length:uint — Nombre d'octets à lire dans le flux d'octets.
|
| |
| charSet:String — Chaîne désignant le le jeu de caractères à utiliser pour interpréter les octets. Parmi les chaînes de jeu de caractères possibles figurent "shift-jis", "cn-gb", "iso-8859-1", etc. Pour obtenir la liste complète, consultez la section Jeux de caractères pris en charge.
Remarque : Si la valeur du paramètre charSet n'est pas reconnue par le système actuel, Flash Player utilise la page de code par défaut du système comme jeu de caractères. Par exemple, une valeur du paramètre charSet, telle que dans myTest.readMultiByte(22, "iso-8859-01"), qui utilise 01 au lieu de 1 peut fonctionner sur votre poste de développement mais pas sur un autre poste. Sur l'autre poste, Flash Player utilisera la page de code par défaut du système.
|
Valeur renvoyée
| String — Chaîne au format UTF-8.
|
Lance
| EOFError — Les données à lire ne sont pas suffisantes.
|
public function readObject():*
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Lit dans le flux d'octets un objet codé au format AMF (Action Message Format) sérialisé.
Valeur renvoyée
Lance
| EOFError — Les données à lire ne sont pas suffisantes.
|
public function readShort():int
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Lit un entier de 16 bits signé dans le flux d’octets.
La valeur renvoyée est comprise entre -32768 et 32767.
Valeur renvoyée
| int — Entier signé de 16 bits compris entre -32768 et 32767.
|
Lance
| EOFError — Les données à lire ne sont pas suffisantes.
|
public function readUnsignedByte():uint
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Lit un octet non signé dans le flux d’octets.
La valeur renvoyée est comprise entre 0 et 255.
Valeur renvoyée
| uint — Entier non signé de 32 bits compris entre 0 et 255.
|
Lance
| EOFError — Les données à lire ne sont pas suffisantes.
|
public function readUnsignedInt():uint
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Lit un entier de 32 bits non signé dans le flux d’octets.
La valeur renvoyée est comprise entre 0 et 4294967295.
Valeur renvoyée
| uint — Entier non signé de 32 bits compris entre 0 et 4294967295.
|
Lance
| EOFError — Les données à lire ne sont pas suffisantes.
|
public function readUnsignedShort():uint
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Lit un entier de 16 bits non signé dans le flux d’octets.
La valeur renvoyée est comprise entre 0 et 65535.
Valeur renvoyée
| uint — Entier non signé de 16 bits compris entre 0 et 65535.
|
Lance
| EOFError — Les données à lire ne sont pas suffisantes.
|
public function readUTF():String
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Lit une chaîne UTF-8 dans le flux d'octets. La chaîne doit être précédée d'un caractère non signé indiquant la longueur en octets.
Valeur renvoyée
| String — Chaîne au format UTF-8.
|
Lance
| EOFError — Les données à lire ne sont pas suffisantes.
|
Voir aussi
public function readUTFBytes(length:uint):String
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Lit une séquence d'octets UTF-8 spécifiée par le paramètre length dans le flux d'octets et renvoie une chaîne.
Paramètres
| length:uint — Entier court non signé qui indique la longueur des octets UTF-8.
|
Valeur renvoyée
| String — Chaîne de longueur spécifiée composée d’octets UTF-8.
|
Lance
| EOFError — Les données à lire ne sont pas suffisantes.
|
public function toString():String
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Convertit le tableau d’octets en chaîne. Si les données du tableau débutent par une marque d’ordre d’octet Unicode, Flash la respecte lors de la conversion en chaîne. Si System.useCodePage est défini sur true, Flash Player traite les données du tableau comme si elles figuraient dans l'actuelle page de codes système lors de la conversion.
Valeur renvoyée
| String — Représentation sous forme de chaîne du tableau d'octets.
|
public function uncompress():void
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Décompresse le tableau d’octets. Le tableau d'octets doit avoir été compressé au format zlib.
Après l'appel, la propriété length de l'objet ByteArray est définie sur la nouvelle longueur. La propriété position est définie sur 0.
Le format de données compressé zlib est décrit à l'adresse http://www.ietf.org/rfc/rfc1950.txt.
Voir aussi
public function writeBoolean(value:Boolean):void
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Ecrit une valeur booléenne. Un seul octet est écrit, conformément au paramètre value, soit 1 si true ou 0 si false.
Paramètres
| value:Boolean — Valeur booléenne qui détermine l’octet à écrire. Si le paramètre est true Flash Player écrit un 1 ; si false, Flash Player écrit un 0.
|
public function writeByte(value:int):void
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Ecrit un octet dans le flux d’octets.
Les 8 bits inférieurs du paramètre sont utilisés. Les 24 bits supérieurs ne sont pas pris en compte.
Paramètres
| value:int — Entier de 32 bits. Les 8 bits inférieurs sont écrits dans le flux d'octets.
|
public function writeBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Ecrit une séquence d’octets length extraits du tableau d'octets bytes, en démarrant aux octets offset (index à base zéro) dans le flux d'octets.
Si le paramètre length est omis, la longueur par défaut est utilisée. Flash Player écrit tout le contenu de la mémoire tampon à partir de offset. Si le paramètre offset est également omis, toute la mémoire tampon est écrite.
Si les paramètres offset et length sont hors limites, ils sont réglés sur le début et la fin du tableau (bytes).
Paramètres
| bytes:ByteArray — Objet ByteArray.
|
| |
| offset:uint (default = 0) — Index basé sur zéro qui indique où débuter l’écriture dans le tableau.
|
| |
| length:uint (default = 0) — Entier non signé qui indique l’emplacement du début d’écriture dans la mémoire tampon.
|
public function writeDouble(value:Number):void
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Ecrit un nombre à virgule flottante à deux décimales (64 bits), conforme à IEEE 754, dans le flux d’octets.
Paramètres
| value:Number — Nombre à virgule flottante à deux décimales (64 bits).
|
public function writeFloat(value:Number):void
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Ecrit un nombre à virgule flottante à une décimale (32 bits) et conforme à IEEE 754 dans le flux d’octets.
Paramètres
| value:Number — Nombre à virgule flottante à une décimale (32 bits).
|
public function writeInt(value:int):void
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Ecrit un entier de 32 bits signé dans le flux d'octets.
Paramètres
| value:int — Entier à écrire dans le flux d’octets.
|
public function writeMultiByte(value:String, charSet:String):void
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Ecrit une chaîne à plusieurs octets dans le flux d’octets en utilisant le jeu de caractères spécifié.
Paramètres
| value:String — Valeur de la chaîne à écrire.
|
| |
| charSet:String — Chaîne indiquant le jeu de caractères à utiliser. Parmi les chaînes de jeu de caractères possibles figurent "shift-jis", "cn-gb", "iso-8859-1", etc. Pour obtenir la liste complète, consultez la section Jeux de caractères pris en charge.
|
public function writeObject(object:*):void
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Ecrit un objet dans le tableau d'octets au format AMF sérialisé.
Paramètres
| object:* — Objet à sérialiser.
|
public function writeShort(value:int):void
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Ecrit un entier de 16 bits dans le flux d'octets. Les 16 bits inférieurs du paramètre sont utilisés. Les 16 bits supérieurs ne sont pas pris en compte.
Paramètres
| value:int — Entier de 32 bits, dont les 16 bits inférieurs sont écrits dans le flux d’octets.
|
public function writeUnsignedInt(value:uint):void
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Ecrit un entier de 32 bits non signé dans le flux d'octets.
Paramètres
| value:uint — Entier non signé à écrire dans le flux d’octets.
|
public function writeUTF(value:String):void
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Ecrit une chaîne UTF-8 dans le flux d'octets. La longueur de la chaîne UTF-8 exprimée en octets est d'abord écrite sous forme d’entier de 16 bits, suivi des octets représentant les caractères de la chaîne.
Paramètres
| value:String — Valeur de la chaîne à écrire.
|
Lance
| RangeError — Si la longueur est supérieure à 65535.
|
public function writeUTFBytes(value:String):void
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Ecrit une chaîne UTF-8 dans le flux d'octets. Comme writeUTF(), mais la méthode writeUTFBytes() n’insère pas dans la chaîne un préfixe correspondant à un mot de 16 bits.
Paramètres
| value:String — Valeur de la chaîne à écrire.
|
L'exemple suivant utilise la classe
ByteArrayExample pour écrire une valeur booléenne et la représentation à virgule flottante à deux décimales de pi dans un tableau d'octets. Cette opération se déroule selon la procédure suivante :
- Déclarez une nouvelle occurrence de l'objet
byteArr.
- Ecrivez la valeur équivalente en octets de la valeur booléenne
false, puis vérifiez la longueur et relisez-la.
- Ecrivez la valeur à virgule flottante à double décimale de la valeur mathématique de pi.
- Relisez chacun des neuf octets écrits dans le tableau d'octets.
Remarque : lorsque la méthode trace() est appelée sur un octet, elle imprime l'équivalent décimal des octets stockés dans le tableau d'octets.
Vous remarquerez qu'un segment de code est ajouté à la fin pour vérifier les erreurs de fin de fichier et s'assurer que la lecture du flux d’octets ne dépasse pas la fin.
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. Tous droits réservés.
Fri Oct 12 2007, 2:53 AM GMT-07:00
Page en cours: http://livedocs.adobe.com/flash/9.0_fr/ActionScriptLangRefV3/flash/utils/ByteArray.html