Package | flash.utils |
Classe | public class ByteArray |
Héritage | ByteArray Object |
Implémente | IDataInput, IDataOutput |
Sous-classes | ByteArrayAsset |
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Remarque : la classe ByteArray s’adresse aux développeurs 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 []
(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, les technologies de compression/décompression zlib, deflate, et lzma sont prises en charge, de même que la sérialisation d’objet AMF (Action Message Format).
Un objet ByteArray peut partager sa mémoire de sauvegarde avec plusieurs occurrences de programmes de travail en définissant sa propriété shareable
sur true
.
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
- Utilisation des données binaires chargées à partir d’un fichier.
Plus d’exemples
Lecture et écriture d’un objet ByteArray
Exemple ByteArray : lecture d’un fichier .zip
Eléments de l’API associés
Propriété | Défini par | ||
---|---|---|---|
bytesAvailable : uint [lecture seule]
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. | ByteArray | ||
constructor : Object
Référence à l’objet de classe ou à la fonction constructeur d’une occurrence donnée d’un objet. | Object | ||
defaultObjectEncoding : uint [statique]
Indique l’encodage d’objet par défaut que doit utiliser la classe ByteArray pour une nouvelle occurrence de ByteArray. | ByteArray | ||
endian : String
Modifie ou lit l’ordre des octets des données (Endian.BIG_ENDIAN ou Endian.LITTLE_ENDIAN). | ByteArray | ||
length : uint
Longueur de l’objet ByteArray, en octets. | ByteArray | ||
objectEncoding : uint
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 de ByteArray. | ByteArray | ||
position : uint
Déplace le pointeur de fichier dans l’objet ByteArray ou en renvoie la position actuelle, en octets. | ByteArray | ||
shareable : Boolean
Indique si la mémoire sous-jacente du tableau d’octets est partageable. | ByteArray |
Méthode | Défini par | ||
---|---|---|---|
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. | ByteArray | ||
Dans une opération atomique unique, compare une valeur entière dans ce tableau d’octets à une autre valeur entière et, si elles correspondent, remplace ces octets par une autre valeur. | ByteArray | ||
Dans une opération atomique unique, compare la longueur de ce tableau d’octets à une valeur fournie et, si elles correspondent, modifie la longueur de ce tableau d’octets. | ByteArray | ||
Efface le contenu du tableau d’octets et réinitialise les propriétés length et position sur 0. | ByteArray | ||
Compresse le tableau d’octets. | ByteArray | ||
Compresse le tableau d’octets à l’aide de l’algorithme de compression deflate. | ByteArray | ||
Indique si la propriété spécifiée d’un objet est définie. | Object | ||
Décompresse le tableau d’octets à l’aide de l’algorithme de compression deflate. | ByteArray | ||
Indique si une occurrence de la classe Object figure dans la chaîne de prototype de l’objet spécifié en tant que paramètre. | Object | ||
Indique si la propriété spécifiée existe et est énumérable. | Object | ||
Lit une valeur booléenne dans le flux d’octets. | ByteArray | ||
Lit un octet signé dans le flux d’octets. | ByteArray | ||
Lit le nombre d’octets de données spécifié par le paramètre length dans le flux d’octets. | ByteArray | ||
Lit un nombre à virgule flottante à deux décimales (64 bits), conforme à IEEE 754, dans le flux d’octets. | ByteArray | ||
Lit un nombre à virgule flottante à une décimale (32 bits), conforme à IEEE 754, dans le flux d’octets. | ByteArray | ||
Lit un entier de 32 bits signé dans le flux d’octets. | ByteArray | ||
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é. | ByteArray | ||
readObject():*
Lit dans le flux d’octets un objet codé au format AMF (Action Message Format) sérialisé. | ByteArray | ||
Lit un entier de 16 bits signé dans le flux d’octets. | ByteArray | ||
Lit un octet non signé dans le flux d’octets. | ByteArray | ||
Lit un entier de 32 bits non signé dans le flux d’octets. | ByteArray | ||
Lit un entier de 16 bits non signé dans le flux d’octets. | ByteArray | ||
Lit une chaîne UTF-8 dans le flux d’octets. | ByteArray | ||
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. | ByteArray | ||
Définit la disponibilité d’une propriété dynamique pour les opérations en boucle. | Object | ||
Fournit une méthode remplaçable pour personnaliser l’encodage JSON de valeurs dans un objet ByteArray. | ByteArray | ||
Renvoie la représentation de chaîne de cet objet, formatée selon les paramètres régionaux en vigueur. | Object | ||
Convertit le tableau d’octets en chaîne. | ByteArray | ||
Décompresse le tableau d’octets. | ByteArray | ||
Renvoie la valeur primitive de l’objet spécifié. | Object | ||
Ecrit une valeur booléenne. | ByteArray | ||
Ecrit un octet dans le flux d’octets. | ByteArray | ||
Ecrit une séquence d’octets length extraits du tableau d’octets spécifié, des octets et des octets de début du décalage (index de base zéro) dans le flux d’octets. | ByteArray | ||
Ecrit un nombre à virgule flottante à deux décimales (64 bits), conforme à IEEE 754, dans le flux d’octets. | ByteArray | ||
Ecrit un nombre à virgule flottante à une décimale (32 bits) et conforme à IEEE 754 dans le flux d’octets. | ByteArray | ||
Ecrit un entier de 32 bits signé dans le flux d’octets. | ByteArray | ||
Ecrit une chaîne à plusieurs octets dans le flux d’octets en utilisant le jeu de caractères spécifié. | ByteArray | ||
Ecrit un objet dans le tableau d’octets au format AMF sérialisé. | ByteArray | ||
Ecrit un entier de 16 bits dans le flux d’octets. | ByteArray | ||
Ecrit un entier de 32 bits non signé dans le flux d’octets. | ByteArray | ||
Ecrit une chaîne UTF-8 dans le flux d’octets. | ByteArray | ||
Ecrit une chaîne UTF-8 dans le flux d’octets. | ByteArray |
bytesAvailable | propriété |
bytesAvailable:uint
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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 | propriété |
defaultObjectEncoding:uint
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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 static function set defaultObjectEncoding(value:uint):void
Eléments de l’API associés
endian | propriété |
endian:String
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Modifie ou lit l’ordre des octets des données (Endian.BIG_ENDIAN
ou Endian.LITTLE_ENDIAN
). La valeur par défaut est BIG_ENDIAN
.
Implémentation
public function get endian():String
public function set endian(value:String):void
Eléments de l’API associés
length | propriété |
length:uint
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Longueur de l’objet ByteArray, en octets.
Si la longueur est définie sur une valeur supérieure à la longueur en cours, le côté droit du tableau d’octets est rempli de zéros.
Si la longueur est définie sur une valeur inférieure à la longueur en cours, le tableau d’octets est tronqué.
Implémentation
public function get length():uint
public function set length(value:uint):void
objectEncoding | propriété |
objectEncoding:uint
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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 de 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
Eléments de l’API associés
position | propriété |
position:uint
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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
shareable | propriété |
shareable:Boolean
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 11.5, AIR 3.5 |
Indique si la mémoire sous-jacente du tableau d’octets est partageable (shareable). Pour un tableau d’octets partageable, toutes les occurrences de ByteArray dans tous les programmes de travail faisant référence au tableau d’octets utilisent la même mémoire système sous-jacente. La valeur par défaut est false
, ce qui indique que la mémoire sous-jacente n’est pas partagée entre les programmes de travail.
Cette propriété a également une incidence sur ce que fait le moteur d’exécution avec le tableau d’octets si ce dernier est transmis à un programme de travail à l’aide de la méthode Worker.setSharedProperty()
ou de la méthode MessageChannel.send()
:
- Not shareable : si cette propriété est définie sur
false
, lorsque le tableau d’octets est transmis à un programme de travail, le moteur d’exécution crée une copie intégrale du tableau d’octets et alloue un nouveau segment de mémoire dans lequel stocker le contenu du tableau d’octets dupliqué - Shareable : si cette propriété est définie sur
true
, lorsque le tableau d’octets est transmis à un programme de travail, le moteur d’exécution utilise la même mémoire sous-jacente que le tampon de stockage pour stocker le contenu de l’occurrence de l’objet ByteArray d’origine et celui de la nouvelle occurrence de l’objet ByteArray créée pour le deuxième programme de travail. Par défaut, les deux occurrences de l’objet ByteArray contiennent une référence au même tableau d’octets sous-jacent.
La possibilité d’accéder à un tableau d’octets partagé à partir de plusieurs programmes de travail simultanément peut entraîner une situation indésirable dans laquelle les deux programmes de travail manipulent en même temps la mémoire sous-jacente du tableau d’octets. Vous pouvez utiliser divers mécanismes pour contrôler l’accès à la mémoire partagée :
- les mécanismes de comparaison/remplacement fournis par les méthodes
atomicCompareAndSwapIntAt()
etatomicCompareAndSwapLength()
de la classe ByteArray - les mécanismes spécialisés fournis par les classes Mutex et Condition (dans le package flash.concurrent)
Définir cette propriété sur true
affecte uniquement le code suivant qui transmet ce tableau d’octets à un programme de travail. Toute copie de ce tableau d’octets ayant déjà été transmise à un programme de travail continue d’exister en tant que copie indépendante.
Si vous définissez cette propriété sur false
alors qu’elle était définie sur true
, la mémoire sous-jacente du tableau d’octets est immédiatement copiée dans un nouveau segment de mémoire système. Cette occurrence de ByteArray utilise désormais la nouvelle mémoire sous-jacente. Par conséquent, la mémoire sous-jacente de ce tableau d’octets n’est plus partagée avec d’autres programmes de travail, même si elle l’était auparavant. Si, par la suite, vous transmettez ce tableau d’octets à un programme de travail, sa mémoire sous-jacente est copiée comme avec les objets ByteArray dont la propriété shareable
est définie sur false
.
La valeur par défaut est false.
Implémentation
public function get shareable():Boolean
public function set shareable(value:Boolean):void
Eléments de l’API associés
ByteArray | () | Constructeur |
public function ByteArray()
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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.
atomicCompareAndSwapIntAt | () | méthode |
public function atomicCompareAndSwapIntAt(byteIndex:int, expectedValue:int, newValue:int):int
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 11.5, AIR 3.5 |
Dans une opération atomique unique, compare une valeur entière dans ce tableau d’octets à une autre valeur entière et, si elles correspondent, remplace ces octets par une autre valeur.
Cette méthode doit être utilisée avec un tableau d’octets dont la mémoire sous-jacente est partagée entre plusieurs programmes de travail (la propriété shareable
de l’occurrence de ByteArray est définie sur true
). Elle suit la procédure ci-dessous :
- Lit une valeur entière depuis ce tableau d’octets en commençant à l’index (mesuré en octets) spécifié dans l’argument
byteIndex
- Compare la valeur actuelle de ce tableau d’octets à la valeur transmise dans l’argument
expectedValue
- Si les deux valeurs sont identiques, elle écrit la valeur de l’argument
newValue
dans le tableau d’octets à l’emplacement spécifié par le paramètrebyteIndex
et renvoie la valeur précédemment contenue dans ces octets (valeur lue à l’étape 1) - Dans le cas contraire, le contenu du tableau d’octets ne change pas et la méthode renvoie la valeur actuelle lue à partir du tableau d’octets
Toutes ces étapes sont exécutées dans une seule transaction matérielle atomique afin de garantir qu’aucune opération provenant d’autres programmes de travail ne modifie le contenu du tableau d’octets durant l’opération de comparaison/remplacement.
Paramètres
byteIndex:int — la position d’index (en octets) à partir de laquelle l’entier à comparer est lu, et sur laquelle la valeur newValue est écrite si la comparaison aboutit à une correspondance. Cette valeur doit être un multiple de 4.
| |
expectedValue:int — la valeur attendue qui doit correspondre au contenu du tableau d’octets à l’index spécifié
| |
newValue:int — la nouvelle valeur qui remplace le contenu du tableau d’octets à l’index spécifié si la comparaison aboutit à une correspondance
|
int — la valeur précédente à l’emplacement spécifié si la comparaison aboutit à une correspondance, ou la valeur actuelle du tableau d’octets si la valeur actuelle et la valeur attendue ne correspondent pas
|
Valeur émise
ArgumentError — si la valeur byteIndex n’est pas un multiple de 4 ou si elle est négative
|
Eléments de l’API associés
atomicCompareAndSwapLength | () | méthode |
public function atomicCompareAndSwapLength(expectedLength:int, newLength:int):int
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 11.5, AIR 3.5 |
Dans une opération atomique unique, compare la longueur de ce tableau d’octets à une valeur fournie et, si elles correspondent, modifie la longueur de ce tableau d’octets.
Cette méthode doit être utilisée avec un tableau d’octets dont la mémoire sous-jacente est partagée entre plusieurs programmes de travail (la propriété shareable
de l’occurrence de ByteArray est définie sur true
). Il effectue les opérations suivantes :
- Lit la propriété
length
de l’entier de l’occurrence de ByteArray - Compare la longueur à la valeur transmise à l’argument
expectedLength
- Si les deux valeurs sont identiques, elle remplace la longueur du tableau d’octets par la valeur transmise en tant que paramètre
newLength
, ce qui augmente ou diminue la taille du tableau d’octets - Dans le cas contraire, le tableau d’octets n’est pas modifié
Toutes ces étapes sont exécutées dans une seule transaction matérielle atomique afin de garantir qu’aucune opération provenant d’autres programmes de travail ne modifie le contenu du tableau d’octets durant l’opération de comparaison/redimensionnement.
Paramètres
expectedLength:int — la valeur attendue de la propriété length de l’objet ByteArray. Si la valeur spécifiée et la valeur actuelle correspondent, la longueur du tableau d’octets est modifiée.
| |
newLength:int — la nouvelle valeur de longueur du tableau d’octets si la comparaison aboutit
|
int — la valeur de la propriété length précédente de l’objet ByteArray, qu’elle ait changé ou pas
|
Eléments de l’API associés
clear | () | méthode |
public function clear():void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Efface le contenu du tableau d’octets et réinitialise les propriétés length
et position
sur 0. L’appel à cette méthode libère explicitement la mémoire utilisée par l’occurrence de ByteArray.
compress | () | méthode |
public function compress(algorithm:String):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Compresse le tableau d’octets. 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.
Pour spécifier un algorithme de compression, vous devez transmettre une valeur (définie dans la classe CompressionAlgorithm) en tant que paramètre algorithm
. Les algorithmes pris en charge sont les suivants :
Le format de données compressé zlib est décrit à l’adresse http://www.ietf.org/rfc/rfc1950.txt.
L’algorithme de compression deflate est décrit à l’adresse http://www.ietf.org/rfc/rfc1951.txt.
L’algorithme de compression lzma est décrit à la page suivante : http://www.7-zip.org/7z.html.
L’algorithme de compression deflate est utilisé dans plusieurs formats de compression, notamment zlib, gzip, certaines implémentations zip, etc. Lorsque vous compressez les données avec l’un de ces formats de compression, les données compressées (par exemple, le fichier .zip) incluent non seulement la version compressée des données originales, mais également les informations de métadonnées. Exemples de types de métadonnées inclus dans divers formats de fichier : nom de fichier, date/heure de modification du fichier, taille du fichier original, commentaires, données du total de contrôle, etc.
Par exemple, lorsqu’un objet ByteArray est compressé à l’aide de l’algorithme zlib, l’objet ByteArray résultant est structuré dans un format spécifique. Certains octets contiennent des métadonnées sur les données compressées, alors que d’autres contiennent la version compressée actuelle des données originales de l’objet ByteArray. Comme l’indique la spécification du format de données compressées zlib, ces octets (c’est-à-dire la partie contenant la version compressée des données originales) sont compressées à l’aide de l’algorithme deflate. Par conséquent, ces octets sont identiques au résultat de l’appel de compress(air.CompressionAlgorithm.DEFLATE)
sur le ByteArray original. Notez toutefois que l’appel de compress(air. CompressionAlgorithm.ZLIB)
entraîne l’obtention de métadonnées supplémentaires, alors que l’appel de compress( CompressionAlgorithm.DEFLATE)
comprend exclusivement la version compressée des données originales de l’objet ByteArray.
Si vous souhaitez utiliser le format deflate pour compresser les données d’une occurrence de ByteArray dans un format spécifique, tel que gzip ou zip, l’appel de la méthode compress(CompressionAlgorithm.DEFLATE)
ne suffit pas. Vous devez créer un objet ByteArray structuré en tenant compte de la spécification du format de compression, et notamment des métadonnées appropriées, ainsi que des données compressées obtenues à l’aide du format deflate. De la même façon, pour décoder les données compressées dans un format tel que gzip ou zip, l’appel de la méthode uncompress(CompressionAlgorithm.DEFLATE)
ne suffit pas. Vous devez tout d’abord séparer les métadonnées des données compressées, puis utiliser le format deflate pour décompresser les données compressées.
Paramètres
algorithm:String (default = NaN ) — Algorithme de compression à utiliser lors de la compression. Les valeurs valides sont définies comme constantes dans la classe CompressionAlgorithm. Par défaut, le format zlib est utilisé. Appeler compress( CompressionAlgorithm.DEFLATE) revient à appeler la méthode deflate() . La prise en charge de l’algorithme lzma a été ajoutée pour Flash Player 11.3 et AIR 3.3. Vous devez disposer de ces versions du lecteur, ou de versions ultérieures, pour utiliser la compression lzma.
|
Eléments de l’API associés
deflate | () | méthode |
public function deflate():void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Compresse le tableau d’octets à l’aide de l’algorithme de compression deflate. 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.
L’algorithme de compression deflate est décrit à l’adresse http://www.ietf.org/rfc/rfc1951.txt.
Si vous souhaitez utiliser le format deflate pour compresser les données d’une occurrence de ByteArray dans un format spécifique, tel que gzip ou zip, l’appel de la méthode deflate()
ne suffit pas. Vous devez créer un objet ByteArray structuré en tenant compte de la spécification du format de compression, et notamment des métadonnées appropriées, ainsi que des données compressées obtenues à l’aide du format deflate. De la même façon, pour décoder les données compressées dans un format tel que gzip ou zip, l’appel de la méthode inflate()
ne suffit pas. Vous devez tout d’abord séparer les métadonnées des données compressées, puis utiliser le format deflate pour décompresser les données compressées.
Eléments de l’API associés
inflate | () | méthode |
public function inflate():void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 10 |
Décompresse le tableau d’octets à l’aide de l’algorithme de compression deflate. Le tableau d’octets doit avoir été compressé à l’aide du même algorithme.
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.
L’algorithme de compression deflate est décrit à l’adresse http://www.ietf.org/rfc/rfc1951.txt.
Pour décoder les données compressées dans un format qui utilise l’algorithme de compression deflate (données au format gzip ou zip, par exemple), l’appel de la méthode inflate()
pour un objet ByteArray contenant les données de format de compression ne suffit pas. Vous devez tout d’abord séparer les métadonnées faisant partie du format de données compressées des données compressées actuelles. Pour obtenir de plus amples informations, reportez-vous à description de la méthode compress()
.
Valeur émise
IOError — Ces données ne sont pas des données compressés valides, car elles n’ont pas été compressées avec l’algorithme utilisé lors de la compression.
|
Eléments de l’API associés
readBoolean | () | méthode |
public function readBoolean():Boolean
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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.
Boolean — Renvoie true si l’octet correspond à une valeur autre que zéro, false dans le cas contraire.
|
Valeur émise
EOFError — Les données à lire ne sont pas suffisantes.
|
readByte | () | méthode |
public function readByte():int
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Lit un octet signé dans le flux d’octets.
La valeur renvoyée est comprise entre -128 et 127.
Valeur renvoyéeint — Entier compris entre -128 et 127.
|
Valeur émise
EOFError — Les données à lire ne sont pas suffisantes.
|
readBytes | () | méthode |
public function readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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 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.
|
Valeur émise
EOFError — Les données à lire ne sont pas suffisantes.
| |
RangeError — La valeur combinée du décalage et de la longueur spécifiés est supérieure à la valeur uint maximale.
|
Plus d’exemples
readDouble | () | méthode |
public function readDouble():Number
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Lit un nombre à virgule flottante à deux décimales (64 bits), conforme à IEEE 754, dans le flux d’octets.
Valeur renvoyéeNumber — Nombre à virgule flottante à deux décimales (64 bits).
|
Valeur émise
EOFError — Les données à lire ne sont pas suffisantes.
|
readFloat | () | méthode |
public function readFloat():Number
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Lit un nombre à virgule flottante à une décimale (32 bits), conforme à IEEE 754, dans le flux d’octets.
Valeur renvoyéeNumber — Nombre à virgule flottante à une décimale (32 bits).
|
Valeur émise
EOFError — Les données à lire ne sont pas suffisantes.
|
readInt | () | méthode |
public function readInt():int
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Lit un entier de 32 bits signé dans le flux d’octets.
La valeur renvoyée est comprise entre -2147483648 et 2147483647.
Valeur renvoyéeint — Entier signé de 32 bits compris entre -2147483648 et 2147483647.
|
Valeur émise
EOFError — Les données à lire ne sont pas suffisantes.
|
readMultiByte | () | méthode |
public function readMultiByte(length:uint, charSet:String):String
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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, voir la section Jeux de caractères pris en charge.
Remarque : si la valeur du paramètre |
String — Chaîne au format UTF-8.
|
Valeur émise
EOFError — Les données à lire ne sont pas suffisantes.
|
readObject | () | méthode |
public function readObject():*
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Lit dans le flux d’octets un objet codé au format AMF (Action Message Format) sérialisé.
Valeur renvoyée* — Objet désérialisé.
|
Valeur émise
EOFError — Les données à lire ne sont pas suffisantes.
|
Eléments de l’API associés
readShort | () | méthode |
public function readShort():int
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Lit un entier de 16 bits signé dans le flux d’octets.
La valeur renvoyée est comprise entre -32768 et 32767.
Valeur renvoyéeint — Entier signé de 16 bits compris entre -32768 et 32767.
|
Valeur émise
EOFError — Les données à lire ne sont pas suffisantes.
|
readUnsignedByte | () | méthode |
public function readUnsignedByte():uint
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Lit un octet non signé dans le flux d’octets.
La valeur renvoyée est comprise entre 0 et 255.
Valeur renvoyéeuint — Entier non signé de 32 bits compris entre 0 et 255.
|
Valeur émise
EOFError — Les données à lire ne sont pas suffisantes.
|
readUnsignedInt | () | méthode |
public function readUnsignedInt():uint
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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éeuint — Entier non signé de 32 bits compris entre 0 et 4294967295.
|
Valeur émise
EOFError — Les données à lire ne sont pas suffisantes.
|
readUnsignedShort | () | méthode |
public function readUnsignedShort():uint
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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éeuint — Entier non signé de 16 bits compris entre 0 et 65535.
|
Valeur émise
EOFError — Les données à lire ne sont pas suffisantes.
|
readUTF | () | méthode |
public function readUTF():String
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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éeString — Chaîne au format UTF-8.
|
Valeur émise
EOFError — Les données à lire ne sont pas suffisantes.
|
Eléments de l’API associés
readUTFBytes | () | méthode |
public function readUTFBytes(length:uint):String
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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.
|
String — Chaîne de longueur spécifiée composée d’octets UTF-8.
|
Valeur émise
EOFError — Les données à lire ne sont pas suffisantes.
|
toJSON | () | méthode |
public function toJSON(k:String):*
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 11, AIR 3, Flash Lite 4 |
Fournit une méthode remplaçable pour personnaliser l’encodage JSON de valeurs dans un objet ByteArray.
La méthode JSON.stringify()
recherche une méthode toJSON()
sur chaque objet qu’elle traverse. Si la méthode toJSON()
est trouvée, la méthode JSON.stringify()
l’appelle automatiquement pour chaque valeur qu’elle rencontre, en transmettant la clé associée à la valeur.
ByteArray fournit une implémentation par défaut de toJSON()
qui renvoie simplement le nom de la classe. Etant donné que le contenu de tout ByteArray nécessite une interprétation, les clients qui souhaitent exporter des objets ByteArray dans JSON doivent fournir leur propre implémentation. Pour ce faire, vous pouvez redéfinir la méthode toJSON()
sur le prototype de classe.
La méthode toJSON()
peut renvoyer une valeur de n’importe quel type. Si elle renvoie un objet, stringify()
se répète dans cet objet. Si toJSON()
renvoie une chaîne, stringify()
ne se répète pas et poursuit sa traversée.
Paramètres
k:String — Clé d’une paire clé/valeur que la méthode JSON.stringify() a rencontré lors de la traversée de cet objet.
|
* — Nom de la classe String.
|
Informations complémentaires
Eléments de l’API associés
toString | () | méthode |
public function toString():String
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Convertit le tableau d’octets en chaîne. Si les données du tableau débutent par une marque d’ordre d’octet Unicode, l’application la respecte lors de la conversion en chaîne. Si System.useCodePage
est défini sur true
, l’application traite les données du tableau comme si elles figuraient dans l’actuelle page de codes système lors de la conversion.
String — Représentation sous forme de chaîne du tableau d’octets.
|
uncompress | () | méthode |
public function uncompress(algorithm:String):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Décompresse le tableau d’octets. 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 tableau d’octets doit avoir été compressé à l’aide du même algorithme que celui de décompression. Pour spécifier un algorithme de décompression, vous devez transmettre une valeur (définie dans la classe CompressionAlgorithm) en tant que paramètre algorithm
. Les algorithmes pris en charge sont les suivants :
Le format de données compressé zlib est décrit à l’adresse http://www.ietf.org/rfc/rfc1950.txt.
L’algorithme de compression deflate est décrit à l’adresse http://www.ietf.org/rfc/rfc1951.txt.
L’algorithme de compression lzma est décrit à la page suivante : http://www.7-zip.org/7z.html.
Pour décoder les données compressées dans un format qui utilise l’algorithme de compression deflate (données au format gzip ou zip, par exemple), l’appel de la méthode uncompress(CompressionAlgorithm.DEFLATE)
pour un objet ByteArray contenant les données de format de compression ne suffit pas. Vous devez tout d’abord séparer les métadonnées faisant partie du format de données compressées des données compressées actuelles. Pour obtenir de plus amples informations, reportez-vous à description de la méthode compress()
.
Paramètres
algorithm:String (default = NaN ) — Algorithme de compression à utiliser lors de la décompression. Il doit s’agir du même algorithme de compression utilisé lors de la compression des données. Les valeurs valides sont définies comme constantes dans la classe CompressionAlgorithm. Par défaut, le format zlib est utilisé. La prise en charge de l’algorithme lzma a été ajoutée pour Flash Player 11.3 et AIR 3.3. Vous devez disposer de ces versions du lecteur, ou de versions ultérieures, pour utiliser lzma.
|
Valeur émise
IOError — Ces données ne sont pas des données compressés valides, car elles n’ont pas été compressées avec l’algorithme utilisé lors de la compression.
|
Eléments de l’API associés
writeBoolean | () | méthode |
public function writeBoolean(value:Boolean):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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 écrit. Si le paramètre a pour valeur true , la méthode écrit 1 ; s’il a pour valeur false , la méthode écrit 0.
|
writeByte | () | méthode |
public function writeByte(value:int):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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.
|
writeBytes | () | méthode |
public function writeBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Ecrit une séquence d’octets length
extraits du tableau d’octets bytes
, des octets offset
de début (index de base zéro) dans le flux d’octets.
Si le paramètre length
est omis, la longueur par défaut, 0, est utilisée. La méthode é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 de base zéro indiquant 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.
|
Plus d’exemples
writeDouble | () | méthode |
public function writeDouble(value:Number):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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).
|
writeFloat | () | méthode |
public function writeFloat(value:Number):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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).
|
writeInt | () | méthode |
writeMultiByte | () | méthode |
public function writeMultiByte(value:String, charSet:String):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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, voir la section Jeux de caractères pris en charge.
|
writeObject | () | méthode |
writeShort | () | méthode |
public function writeShort(value:int):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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.
|
writeUnsignedInt | () | méthode |
writeUTF | () | méthode |
public function writeUTF(value:String):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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.
|
Valeur émise
RangeError — Si la longueur est supérieure à 65535.
|
writeUTFBytes | () | méthode |
public function writeUTFBytes(value:String):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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.
|
ByteArrayExample
pour écrire une valeur booléenne et la représentation à virgule flottante à deux décimales de pi dans un tableau d’octets. Pour ce faire, exécutez 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. } } } }
Tue Jun 12 2018, 09:30 AM Z