flash.utilsProxy La classe Proxy permet de contourner le comportement par défaut des opérations ActionScript (notamment pour l’extraction et la modification des propriétés) effectuées sur un objet.Object La classe Proxy permet de contourner le comportement par défaut des opérations ActionScript (notamment pour l’extraction et la modification des propriétés) effectuées sur un objet.

La classe Proxy ne possède pas de constructeur et il n’est pas recommandé de l’instancier. Utilisez la classe Proxy en tant que sous-classe pour bloquer des méthodes telles que getProperty et fournir un comportement personnalisé. Si vous tentez d’utiliser une méthode de la classe Proxy sans la bloquer, une exception est renvoyée.

N’oubliez pas que, si votre propre code bloque les méthodes de la classe Proxy, des exceptions risquent d’être renvoyées non intentionnellement. Le renvoi d’exceptions lors de l’utilisation de ces méthodes est source de problèmes, car le code appelant (qui utilise des opérateurs tels que in, is, delete, etc.) ne s’attend pas à des exceptions. A moins d’être certain que la méthode de remplacement ne renvoie pas d’exceptions, Adobe recommande l’utilisation d’instructions try..catch de part et d’autre de votre implémentation de la classe Proxy afin d’éviter les erreurs irrémédiables lorsque les opérateurs appellent vos méthodes. Par exemple :

dynamic class MyProxy extends Proxy { flash_proxy override function callProperty(name:~~, ...rest):~~ { try { // custom code here } catch (e:Error) { // respond to error here } }

La classe Proxy remplace les fonctionnalités Object.__resolve et Object.addProperty d’ActionScript 2.0, qui ne sont plus disponibles dans ActionScript 3.0. La fonctionnalité Object.addProperty() vous permet de créer dynamiquement les méthodes get et set dans ActionScript 2.0. Bien que ActionScript 3.0 fournisse les méthodes get et set à la compilation, il est impossible d’en affecter une dynamiquement à un objet sans utiliser la classe Proxy.

Pour éviter les doublons des espaces de noms public, les méthodes de la classe Proxy sont dans l’espace de noms flash_proxy.

Si les méthodes de la classe Proxy nécessitent un argument name, name peut correspondre à un objet String ou QName (sous réserve d’utiliser les espaces de noms).

package { import flash.display.Sprite; public class ProxyExample extends Sprite { public function ProxyExample() { var arr:ProxyArray = new ProxyArray(); arr.push(1); arr.push(-2); arr.push(3); arr.push(4); arr.push("five"); trace(arr.length); // 5 trace(arr[0]); // 1 trace(arr[1]); // -2 trace(arr[2]); // 3 trace(arr[3]); // 4 trace(arr.sum()); // 6 arr.clear(); trace(arr); // (empty string) arr[0] = "zero"; trace(arr); // zero } } } import flash.utils.Proxy; import flash.utils.flash_proxy; dynamic class ProxyArray extends Proxy { private var _item:Array; public function ProxyArray() { _item = new Array(); } override flash_proxy function callProperty(methodName:*, ... args):* { var res:*; switch (methodName.toString()) { case 'clear': _item = new Array(); break; case 'sum': var sum:Number = 0; for each (var i:* in _item) { // ignore non-numeric values if (!isNaN(i)) { sum += i; } } res = sum; break; default: res = _item[methodName].apply(_item, args); break; } return res; } override flash_proxy function getProperty(name:*):* { return _item[name]; } override flash_proxy function setProperty(name:*, value:*):void { _item[name] = value; } }
callProperty Bloque le comportement de la propriété d’un objet susceptible d’être appelée en tant que fonction.Valeur renvoyée par la méthode appelée. nameNom de la méthode invoquée. restTableau qui spécifie les arguments à la méthode appelée. Bloque le comportement de la propriété d’un objet susceptible d’être appelée en tant que fonction. Lorsqu’une méthode de l’objet est invoquée, cette méthode est appelée. Bien que certains objets puissent être appelés en tant que fonctions, certaines propriétés d’objets peuvent également l’être. Function.call()Spécification ECMA-262, édition 3, section 15deleteProperty Bloque la requête de suppression d’une propriété.Si la propriété a été supprimée, true ; dans le cas contraire, false. BooleannameNom de la propriété à supprimer. Bloque la requête de suppression d’une propriété. Lorsqu’une propriété est supprimée par l’opérateur delete, cette méthode est appelée pour effectuer la suppression. opérateur deleteSpécification ECMA-262, édition 3, section 8.6.2.5getDescendants Bloque l’utilisation de l’opérateur descendant.Résultats de l’opérateur descendant. nameNom de la propriété à rechercher en descendant dans l’objet. Bloque l’utilisation de l’opérateur descendant. Lorsque l’opérateur descendant est utilisé, cette méthode est invoquée. Opérateur descendantSpécification E4XgetProperty Bloque toute requête de valeur d’une propriété.Propriété spécifiée, ou undefined si elle est introuvable. nameNom de la propriété à extraire. Bloque toute requête de valeur d’une propriété. Si la propriété est introuvable, la méthode renvoie undefined. Pour plus d’informations sur ce comportement, voir la spécification ECMA-262, édition 3, section 8.6.2.1. Instruction getSpécification ECMA-262, édition 3, section 8.6.2.1.hasProperty Bloque une requête pour vérifier si un objet possède une propriété spécifique identifiée.Renvoie true si la propriété existe, false dans le cas contraire. BooleannameNom de la propriété à vérifier. Bloque une requête pour vérifier si un objet possède une propriété spécifique identifiée. Object.hasOwnProperty()Spécification ECMA-262, édition 3, section 8.6.2.4isAttribute Vérifie si le QName fourni est également marqué comme attribut.Renvoie true si l’argument associé à name est un QName également marqué comme attribut. BooleannameNom de la propriété à vérifier. Vérifie si le QName fourni est également marqué comme attribut. Classe QNamenextNameIndex Permet l’énumération par numéro d’index des propriétés de l’objet traité par proxy.Valeur de l’index de la propriété. intindexintValeur d’index de base zéro qui indique le début de l’énumération. Permet l’énumération par numéro d’index des propriétés de l’objet traité par proxy. Vous ne pouvez cependant pas énumérer les propriétés de la classe Proxy elles-mêmes. Cette fonction prend en charge l’implémentation des boucles for...in et for each..in dans l’objet pour récupérer les valeurs d’index des propriétés.

Par exemple :

protected var _item:Array; // array of object's properties override flash_proxy function nextNameIndex (index:int):int { // initial call if (index == 0) { _item = new Array(); for (var x:~~ in _target) { _item.push(x); } } if (index < _item.length) { return index + 1; } else { return 0; } } override flash_proxy function nextName(index:int):String { return _item[index - 1]; }
Proxy.nextName()Proxy.nextValue()
nextName Permet l’énumération par numéro d’index des propriétés de l’objet traité par proxy pour extraire les noms de propriété.Nom de la propriété. StringindexintValeur de l’index de base zéro de la propriété de l’objet. Permet l’énumération par numéro d’index des propriétés de l’objet traité par proxy pour extraire les noms de propriété. Vous ne pouvez cependant pas énumérer les propriétés de la classe Proxy elles-mêmes. Cette fonction prend en charge l’implémentation des boucles for...in et for each..in dans l’objet pour extraire les noms requis.

Exemple (code extrait de Proxy.nextNameIndex()) :

protected var _item:Array; // array of object's properties override flash_proxy function nextNameIndex (index:int):int { // initial call if (index == 0) { _item = new Array(); for (var x:~~ in _target) { _item.push(x); } } if (index < _item.length) { return index + 1; } else { return 0; } } override flash_proxy function nextName(index:int):String { return _item[index - 1]; }
Proxy.nextNameIndex()Proxy.nextValue()
nextValue Permet l’énumération par numéro d’index des propriétés de l’objet traité par proxy pour extraire les valeurs de propriété.Valeur de la propriété. indexintValeur de l’index de base zéro de la propriété de l’objet. Permet l’énumération par numéro d’index des propriétés de l’objet traité par proxy pour extraire les valeurs de propriété. Vous ne pouvez cependant pas énumérer les propriétés de la classe Proxy elles-mêmes. Cette fonction prend en charge l’implémentation des boucles for...in et for each..in dans l’objet pour extraire les valeurs requises.

Exemple (code extrait de Proxy.nextNameIndex()) :

protected var _item:Array; // array of object's properties override flash_proxy function nextNameIndex (index:int):int { // initial call if (index == 0) { _item = new Array(); for (var x:~~ in _target) { _item.push(x); } } if (index < _item.length) { return index + 1; } else { return 0; } } override flash_proxy function nextName(index:int):String { return _item[index - 1]; }
Proxy.nextNameIndex()Proxy.nextName()
setProperty Bloque un appel de modification de la valeur d’une propriété.nameNom de la propriété à modifier. valueValeur à affecter à la propriété. Bloque un appel de modification de la valeur d’une propriété. Si la propriété est introuvable, cette méthode crée une propriété avec le nom et la valeur spécifiés. Instruction setSpécification ECMA-262, édition 3, section 8.6.2.2.
ByteArray 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.flash.utils:IDataInputflash.utils:IDataOutputObject 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 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, 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
  • Utilisation des données binaires chargées à partir d’un fichier dans Adobe® AIR®.

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. Pour ce faire, exécutez la procédure suivante :
  1. Déclarez une nouvelle occurrence de l’objet byteArr.
  2. Ecrivez la valeur équivalente en octets de la valeur booléenne false, puis vérifiez la longueur et relisez-la.
  3. Ecrivez la valeur à virgule flottante à double décimale de la valeur mathématique de pi.
  4. 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. } } } }
[] (accès au tableau)Classe SocketClasse URLStreamByteArray 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. 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. clear Efface le contenu du tableau d’octets et réinitialise les propriétés length et position sur 0. 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 Compresse le tableau d’octets.algorithmStringunknownAlgorithme 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é. Ce paramètre n’est reconnu que dans le cas de contenu s’exécutant dans Adobe AIR. Flash Player ne prend en charge que l’algorithme par défaut, zlib, et renvoie une exception si vous tentez de transmettre une valeur pour ce paramètre. Appeler compress( CompressionAlgorithm.DEFLATE) revient à appeler la méthode deflate(). Compresse le tableau d’octets. Tout le tableau d’octets est compressé. Dans le cas de contenu s’exécutant dans Adobe AIR, vous pouvez spécifier un algorithme de compression en transmettant une valeur (définie dans la classe CompressionAlgorithm) en tant que paramètre algorithm. Flash Player prend uniquement en charge l’algorithme par défaut, 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 à 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.

L’algorithme de compression deflate est décrit à l’adresse http://www.ietf.org/rfc/rfc1951.txt.

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.

uncompress()flash.utils.CompressionAlgorithm
deflate Compresse le tableau d’octets à l’aide de l’algorithme de compression deflate. 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.

inflate()
inflate Décompresse le tableau d’octets à l’aide de l’algorithme de compression deflate.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. IOErrorflash.errors:IOError 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().

deflate()
readBoolean Lit une valeur booléenne dans le flux d’octets.Les données à lire ne sont pas suffisantes. EOFErrorflash.errors:EOFErrorRenvoie true si l’octet correspond à une valeur autre que zéro, false dans le cas contraire. Boolean 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. readByte Lit un octet signé dans le flux d’octets.Les données à lire ne sont pas suffisantes. EOFErrorflash.errors:EOFErrorEntier compris entre -128 et 127. int Lit un octet signé dans le flux d’octets.

La valeur renvoyée est comprise entre -128 et 127.

readBytes Lit le nombre d’octets de données spécifié par le paramètre length dans le flux d’octets.Les données à lire ne sont pas suffisantes. EOFErrorflash.errors:EOFErrorLa valeur combinée du décalage et de la longueur spécifiés est supérieure à la valeur uint maximale. RangeErrorRangeErrorbytesflash.utils:ByteArrayObjet ByteArray dont les données doivent être lues. offsetuint0Décalage (position) en octets auquel les données lues doivent être écrites. lengthuint0Nombre d’octets à lire. La valeur 0 (par défaut) provoque la lecture de toutes les données disponibles. 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. readDouble Lit un nombre à virgule flottante à deux décimales (64 bits), conforme à IEEE 754, dans le flux d’octets.Les données à lire ne sont pas suffisantes. EOFErrorflash.errors:EOFErrorNombre à virgule flottante à deux décimales (64 bits). Number Lit un nombre à virgule flottante à deux décimales (64 bits), conforme à IEEE 754, dans le flux d’octets. readFloat Lit un nombre à virgule flottante à une décimale (32 bits), conforme à IEEE 754, dans le flux d’octets.Les données à lire ne sont pas suffisantes. EOFErrorflash.errors:EOFErrorNombre à virgule flottante à une décimale (32 bits). Number Lit un nombre à virgule flottante à une décimale (32 bits), conforme à IEEE 754, dans le flux d’octets. readInt Lit un entier de 32 bits signé dans le flux d’octets.Les données à lire ne sont pas suffisantes. EOFErrorflash.errors:EOFErrorEntier signé de 32 bits compris entre -2147483648 et 2147483647. int Lit un entier de 32 bits signé dans le flux d’octets.

La valeur renvoyée est comprise entre -2147483648 et 2147483647.

readMultiByte 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é.Les données à lire ne sont pas suffisantes. EOFErrorflash.errors:EOFErrorChaîne au format UTF-8. StringlengthuintNombre d’octets à lire dans le flux d’octets. charSetStringChaî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 charSet n’est pas reconnue par le système actuel, l’application utilise la page de code par défaut du système comme jeu de caractères. Par exemple, une valeur pour le paramètre charSet, comme dans myTest.readMultiByte(22, "iso-8859-01"), qui utilise 01 au lieu de 1 pourra éventuellement fonctionner sur votre système de développement, mais pas sur un autre système. Sur l’autre système, l’application utilisera la page de code par défaut du système.

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é.
readObject Lit dans le flux d’octets un objet codé au format AMF (Action Message Format) sérialisé.Les données à lire ne sont pas suffisantes. EOFErrorflash.errors:EOFErrorObjet désérialisé. Lit dans le flux d’octets un objet codé au format AMF (Action Message Format) sérialisé. flash.net.registerClassAlias()readShort Lit un entier de 16 bits signé dans le flux d’octets.Les données à lire ne sont pas suffisantes. EOFErrorflash.errors:EOFErrorEntier signé de 16 bits compris entre -32768 et 32767. int Lit un entier de 16 bits signé dans le flux d’octets.

La valeur renvoyée est comprise entre -32768 et 32767.

readUTFBytes 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.Les données à lire ne sont pas suffisantes. EOFErrorflash.errors:EOFErrorChaîne de longueur spécifiée composée d’octets UTF-8. StringlengthuintEntier court non signé qui indique la longueur des octets UTF-8. 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. readUTF Lit une chaîne UTF-8 dans le flux d’octets.Les données à lire ne sont pas suffisantes. EOFErrorflash.errors:EOFErrorChaîne au format UTF-8. String 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. flash.utils.IDataInput.readUTF()readUnsignedByte Lit un octet non signé dans le flux d’octets.Les données à lire ne sont pas suffisantes. EOFErrorflash.errors:EOFErrorEntier non signé de 32 bits compris entre 0 et 255. uint Lit un octet non signé dans le flux d’octets.

La valeur renvoyée est comprise entre 0 et 255.

readUnsignedInt Lit un entier de 32 bits non signé dans le flux d’octets.Les données à lire ne sont pas suffisantes. EOFErrorflash.errors:EOFErrorEntier non signé de 32 bits compris entre 0 et 4294967295. uint Lit un entier de 32 bits non signé dans le flux d’octets.

La valeur renvoyée est comprise entre 0 et 4294967295.

readUnsignedShort Lit un entier de 16 bits non signé dans le flux d’octets.Les données à lire ne sont pas suffisantes. EOFErrorflash.errors:EOFErrorEntier non signé de 16 bits compris entre 0 et 65535. uint Lit un entier de 16 bits non signé dans le flux d’octets.

La valeur renvoyée est comprise entre 0 et 65535.

toString Convertit le tableau d’octets en chaîne.Représentation sous forme de chaîne du tableau d’octets. String 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. uncompress Décompresse le tableau d’octets.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. IOErrorflash.errors:IOErroralgorithmStringunknownAlgorithme 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é. Ce paramètre n’est reconnu que dans le cas de contenu s’exécutant dans Adobe AIR. Flash Player ne prend en charge que l’algorithme par défaut, zlib, et renvoie une exception si vous tentez de transmettre une valeur pour ce paramètre. Décompresse le tableau d’octets. Dans le cas de contenu s’exécutant dans Adobe AIR, vous pouvez spécifier un algorithme de compression en transmettant une valeur (définie dans la classe CompressionAlgorithm) en tant que paramètre algorithm. Le tableau d’octets doit avoir été compressé à l’aide du même algorithme. Flash Player prend uniquement en charge l’algorithme par défaut, 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.

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 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().

compress()flash.utils.CompressionAlgorithm
writeBoolean Ecrit une valeur booléenne.valueBooleanValeur 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. Ecrit une valeur booléenne. Un seul octet est écrit, conformément au paramètre value, soit 1 si true ou 0 si false. writeByte Ecrit un octet dans le flux d’octets.valueintEntier de 32 bits. Les 8 bits inférieurs sont écrits dans le flux d’octets. 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.

writeBytes 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. bytesflash.utils:ByteArrayObjet ByteArray. offsetuint0Index de base zéro indiquant où débuter l’écriture dans le tableau. lengthuint0Entier non signé qui indique l’emplacement du début d’écriture dans la mémoire tampon. 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).

writeDouble Ecrit un nombre à virgule flottante à deux décimales (64 bits), conforme à IEEE 754, dans le flux d’octets.valueNumberNombre à virgule flottante à deux décimales (64 bits). Ecrit un nombre à virgule flottante à deux décimales (64 bits), conforme à IEEE 754, dans le flux d’octets. writeFloat Ecrit un nombre à virgule flottante à une décimale (32 bits) et conforme à IEEE 754 dans le flux d’octets.valueNumberNombre à virgule flottante à une décimale (32 bits). Ecrit un nombre à virgule flottante à une décimale (32 bits) et conforme à IEEE 754 dans le flux d’octets. writeInt Ecrit un entier de 32 bits signé dans le flux d’octets.valueintEntier à écrire dans le flux d’octets. Ecrit un entier de 32 bits signé dans le flux d’octets. writeMultiByte Ecrit une chaîne à plusieurs octets dans le flux d’octets en utilisant le jeu de caractères spécifié.valueStringValeur de la chaîne à écrire. charSetStringChaî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. Ecrit une chaîne à plusieurs octets dans le flux d’octets en utilisant le jeu de caractères spécifié. writeObject Ecrit un objet dans le tableau d’octets au format AMF sérialisé.objectObjet à sérialiser. Ecrit un objet dans le tableau d’octets au format AMF sérialisé. flash.net.registerClassAlias()writeShort Ecrit un entier de 16 bits dans le flux d’octets.valueintEntier de 32 bits, dont les 16 bits inférieurs sont écrits dans le flux d’octets. 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. writeUTFBytes Ecrit une chaîne UTF-8 dans le flux d’octets.valueStringValeur de la chaîne à écrire. 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. writeUTF Ecrit une chaîne UTF-8 dans le flux d’octets.Si la longueur est supérieure à 65535. RangeErrorRangeErrorvalueStringValeur de la chaîne à écrire. 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. writeUnsignedInt Ecrit un entier de 32 bits non signé dans le flux d’octets.valueuintEntier non signé à écrire dans le flux d’octets. Ecrit un entier de 32 bits non signé dans le flux d’octets. bytesAvailable 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.uint 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.

defaultObjectEncoding Indique l’encodage d’objet par défaut que doit utiliser la classe ByteArray pour une nouvelle occurrence de ByteArray.uint 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.

Classe ObjectEncodingflash.utils.ByteArray.objectEncoding
endian Modifie ou lit l’ordre des octets des données (Endian.BIG_ENDIAN ou Endian.LITTLE_ENDIAN).String Modifie ou lit l’ordre des octets des données (Endian.BIG_ENDIAN ou Endian.LITTLE_ENDIAN). Classe Endianlength Longueur de l’objet ByteArray, en octets.uint 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é.

objectEncoding 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.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. La valeur est une constante extraite de la classe ObjectEncoding. Classe ObjectEncodingflash.utils.ByteArray.defaultObjectEncodingposition Déplace le pointeur de fichier dans l’objet ByteArray ou en renvoie la position actuelle, en octets.uint 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.
IDataOutput L’interface IDataOutput propose plusieurs méthodes d’écriture des données binaires. L’interface IDataOutput propose plusieurs méthodes d’écriture des données binaires. Cette interface est l’équivalent E/S de l’interface IDataOutput, qui lit des données binaires. L’interface IDataOutput est implémentée par les classes FileStream, Socket et ByteArray.

Toutes les opérations IDataInput et IDataOutput utilisent l’ordre d’octet « bigEndian » par défaut (où l’octet le plus significatif de la séquence est mémorisé dans l’adresse de stockage de plus bas niveau ou dans la première adresse de stockage) et ne sont pas bloquantes.

L’extension de signe ne joue un rôle que lors de la lecture des données et non lors de leur écriture. Il est donc inutile d’utiliser des méthodes d’écriture distinctes pour faire appel à IDataInput.readUnsignedByte() et IDataInput.readUnsignedShort(). En d’autres termes :

  • Utilisez IDataOutput.writeByte() avec IDataInput.readUnsignedByte() et IDataInput.readByte().
  • Utilisez IDataOutput.writeShort() avec IDataInput.readUnsignedShort() et IDataInput.readShort().
L’exemple suivant utilise la classe DataOutputExample 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 :
  1. Déclarez une nouvelle occurrence de l’objet byteArr.
  2. Ecrivez l’équivalant en octets de la valeur booléenne false et l’équivalent de la valeur mathématique de pi avec deux décimales.
  3. Relisez la valeur booléenne et le nombre à virgule flottante à deux décimales.

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 DataOutputExample extends Sprite { public function DataOutputExample() { var byteArr:ByteArray = new ByteArray(); byteArr.writeBoolean(false); byteArr.writeDouble(Math.PI); byteArr.position = 0; try { trace(byteArr.readBoolean()); // false } 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. } } } }
Interface IDataInputendianClasse FileStreamClasse SocketClasse URLStreamClasse ByteArraywriteBoolean Ecrit une valeur booléenne.valueBooleanValeur booléenne qui détermine l’octet écrit. Si le paramètre a pour valeur true, 1 est écrit ; s’il a pour valeur false, 0 est écrit. Ecrit une valeur booléenne. Un seul octet est écrit, conformément au paramètre value, soit 1 si true ou 0 si false. writeByte Ecrit un octet.valueintValeur d’octet exprimée comme un entier. Ecrit un octet. Les 8 bits inférieurs du paramètre sont utilisés. Les 24 bits supérieurs ne sont pas pris en compte. writeBytes Ecrit une séquence d’octets à partir du tableau d’octets ou des octets spécifiés, en partant de l’octet spécifié par l’offset (à l’aide d’un index de base zéro) dont la longueur est indiquée par le paramètre length dans le flux de fichiers ou d’octets, ou le tableau d’octets.bytesflash.utils:ByteArrayTableau d’octets à écrire. offsetuint0Index de base zéro qui indique où débuter l’écriture dans le tableau. lengthuint0Entier non signé qui indique l’emplacement du début d’écriture dans la mémoire tampon. Ecrit une séquence d’octets à partir du tableau d’octets ou des octets spécifiés, en partant de l’octet spécifié par l’offset (à l’aide d’un index de base zéro) dont la longueur est indiquée par le paramètre length dans le flux de fichiers ou d’octets, ou le tableau d’octets.

Si le paramètre length est omis, la longueur par défaut est utilisée (à savoir 0) et tout le contenu de la mémoire tampon à partir de offset est écrit. Si le paramètre offset est également omis, toute la mémoire tampon est écrite.

Si les paramètres offset ou length ne sont pas compris dans la plage supportée, ils sont réglés sur le début et la fin du tableau d’octets (bytes).

writeDouble Ecrit un nombre à virgule flottante à deux décimales (64 bits) et conforme à IEEE 754.valueNumberNombre à virgule flottante à deux décimales (64 bits). Ecrit un nombre à virgule flottante à deux décimales (64 bits) et conforme à IEEE 754. writeFloat Ecrit un nombre à virgule flottante à une décimale (32 bits) et conforme à IEEE 754.valueNumberNombre à virgule flottante à une décimale (32 bits). Ecrit un nombre à virgule flottante à une décimale (32 bits) et conforme à IEEE 754. writeInt Ecrit un entier signé de 32 bits.valueintValeur d’octet exprimée comme un entier signé. Ecrit un entier signé de 32 bits. writeMultiByte Ecrit une chaîne multi-octets dans le flux de fichiers, le flux d’octets ou le tableau d’octets en utilisant le jeu de caractères spécifié.valueStringValeur de la chaîne à écrire. charSetStringChaî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. Ecrit une chaîne multi-octets dans le flux de fichiers, le flux d’octets ou le tableau d’octets en utilisant le jeu de caractères spécifié. writeObject Ecrit un objet codé au format AMF sérialisé dans le flux de fichiers, le flux d’octets ou le tableau d’octets.objectObjet à sérialiser. Ecrit un objet codé au format AMF sérialisé dans le flux de fichiers, le flux d’octets ou le tableau d’octets. objectEncodingflash.net.registerClassAlias()writeShort Ecrit un entier de 16 bits.valueintValeur d’octet exprimée comme un entier. Ecrit un entier de 16 bits. Les 16 bits inférieurs du paramètre sont utilisés. Les 16 bits supérieurs ne sont pas pris en compte. writeUTFBytes Ecrit une chaîne UTF-8.valueStringValeur de la chaîne à écrire. Ecrit une chaîne UTF-8. Comme writeUTF(), mais n’insère pas dans la chaîne un préfixe correspondant à un mot de 16 bits. writeUTF Ecrit une chaîne UTF-8 dans le flux de fichiers, le flux d’octets ou le tableau d’octets.Si la longueur est supérieure à 65535. RangeErrorRangeErrorvalueStringValeur de la chaîne à écrire. Ecrit une chaîne UTF-8 dans le flux de fichiers, le flux d’octets ou le tableau 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. writeUnsignedInt Ecrit un entier non signé de 32 bits.valueuintValeur d’octet exprimée comme un entier non signé. Ecrit un entier non signé de 32 bits. endian Ordre d’octet des données, à savoir la constante BIG_ENDIAN ou LITTLE_ENDIAN de la classe Endian.String Ordre d’octet des données, à savoir la constante BIG_ENDIAN ou LITTLE_ENDIAN de la classe Endian. Classe EndianobjectEncoding Permet de déterminer si le format AMF3 ou AMF0 est utilisé lors de l’écriture ou la lecture des données binaires à l’aide de la méthode writeObject().uint Permet de déterminer si le format AMF3 ou AMF0 est utilisé lors de l’écriture ou la lecture des données binaires à l’aide de la méthode writeObject(). La valeur est une constante extraite de la classe ObjectEncoding. IDataInput.readObject()writeObject()Classe ObjectEncoding
Endian La classe Endian contient des valeurs qui dénotent l’ordre des octets qui est utilisé pour représenter les nombres à plusieurs octets.Object La classe Endian contient des valeurs qui dénotent l’ordre des octets qui est utilisé pour représenter les nombres à plusieurs octets. L’ordre d’octet correspond soit à bigEndian (octet le plus significatif en première position), soit à littleEndian (octet le moins significatif en première position).

Le contenu de Flash Player ou d’Adobe® AIR™ peut interagir avec un serveur en utilisant directement le protocole binaire de ce dernier. Certains serveurs utilisent l’ordre d’octet bigEndian, tandis que d’autres font appel à littleEndian. Sur Internet, la plupart des serveurs utilisent l’ordre d’octet bigEndian, car « ordre d’octet du réseau » correspond à bigEndian. L’ordre d’octet littleEndian est le plus populaire car il est utilisé par l’architecture Intel x86. Utilisez l’ordre d’octet correspondant au protocole du serveur qui envoie ou reçoit les données.

flash.utils.ByteArray.endianflash.filesystem.FileStream.endianflash.utils.IDataInput.endianflash.utils.IDataOutput.endianflash.net.Socket.endianflash.net.URLStream.endianBIG_ENDIAN Indique que l’octet le plus significatif du nombre à plusieurs octets apparaît en première position dans la séquence d’octets.bigEndianString Indique que l’octet le plus significatif du nombre à plusieurs octets apparaît en première position dans la séquence d’octets.

Le nombre hexadécimal 0x12345678 contient 4 octets (2 chiffres hexadécimaux par octet). L’octet le plus significatif correspond à 0x12. L’octet le moins significatif correspond à 0x78. (Pour le nombre décimal équivalent, 305419896, le chiffre le plus significatif est 3, tandis que le moins significatif est 6).

Un flux qui utilise l’ordre bigEndian (octet le plus significatif en première position) écrit :

	 12 34 56 78
	 
LITTLE_ENDIAN Indique que l’octet le moins significatif du nombre à plusieurs octets apparaît en première position dans la séquence d’octets.littleEndianString Indique que l’octet le moins significatif du nombre à plusieurs octets apparaît en première position dans la séquence d’octets.

Le nombre hexadécimal 0x12345678 contient 4 octets (2 chiffres hexadécimaux par octet). L’octet le plus significatif correspond à 0x12. L’octet le moins significatif correspond à 0x78. (Pour le nombre décimal équivalent, 305419896, le chiffre le plus significatif est 3, tandis que le moins significatif est 6).

Un flux qui utilise l’ordre littleEndian (octet le moins significatif en première position) écrit :

	 78 56 34 12
	 
IExternalizable L’interface IExternalizable permet de contrôler la sérialisation d’une classe lorsqu’elle est codée dans un flux de données. L’interface IExternalizable permet de contrôler la sérialisation d’une classe lorsqu’elle est codée dans un flux de données. Les méthodes writeExternal() et readExternal() de l’interface IExternalizable sont implémentées par une classe pour permettre la personnalisation du contenu et du format du flux de données (mais non le nom de classe ou le type) pour un objet et ses super-types. Chaque classe individuelle doit sérialiser et reconstruire l’état de ses occurrences. Ces méthodes doivent être symétriques au super-type pour enregistrer son état. Elles remplacent le comportement de sérialisation AMF (Action Message Format) natif.

Si une classe n’implémente pas l’interface IExternalizable et qu’elle n’hérite pas d’une classe qui implémente elle-même l’interface, une occurrence de la classe est sérialisée par le biais du mécanisme par défaut réservé aux membres publics. De ce fait, les membres privés, internes et protégés d’une classe ne seront pas disponibles.

Pour sérialiser les membres privés, une classe doit utiliser l’interface IExternalizable. Par exemple, la classe suivante ne sérialisera aucun de ses membres, parce qu’ils sont privés :

class Example { private var one:int; private var two:int; }

Cependant, si vous implémentez l’interface IExternalizable, vous pouvez lire et écrire dans le flux de données les membres privés de la classe, comme suit :

class Example implement IExternalizable { private var one:int; private var two:int; public function writeExternal(output:IDataOutput) { output.writeInt(one); output.writeInt(two); } public function readExternal(input:IDataInput) { one = input.readInt(); two = input.readInt(); } }

Remarque : si une classe implémente Externalizable, la sérialisation par défaut ne s’applique plus à ses occurrences. Si cette classe hérite des membres publics d’une super-classe, vous devez également les gérer avec soin.

Lorsqu’une sous-classe de la classe qui implémente IExternalizable possède des membres privés qui lui sont propres, elle doit remplacer les méthodes de IExternalizable, comme suit :

public class Base implements IExternalizable { private var one:Boolean; public function writeExternal(output:IDataOutput):void { output.writeBoolean(one); } public function readExternal(input:IDataInput):void { one = input.readBoolean(); } } public class Example extends Base { private var one:String; public override function writeExternal(output:IDataOutput):void { super.writeExternal(output); output.writeUTF(one); } public override function readExternal(input:IDataInput):void { super.readExternal(input); one = input.readUTF(); } }

L’interface IExternalizable permet également de compresser les données avant de les écrire dans un flux de données. Par exemple :

class Example implements IExternalizable { public var one:Boolean; public var two:Boolean; public var three:Boolean; public var four:Boolean; public var five:Boolean; public var six:Boolean; public var seven:Boolean; public var eight:Boolean; public function writeExternal(output:IDataOutput) { var flag:int = 0; if (one) flag |= 1; if (two) flag |= 2; if (three) flag |= 4; if (four) flag |= 8; if (five) flag |= 16; if (six) flag |= 32; if (seven) flag |= 64; if (eight) flag |= 128; output.writeByte(flag); } public function readExternal(input:IDataInput) { var flag:int = input.readByte(); one = (flag & 1) != 0; two = (flag & 2) != 0; three = (flag & 4) != 0; four = (flag & 8) != 0; five = (flag & 16) != 0; six = (flag & 32) != 0; seven = (flag & 64) != 0; eight = (flag & 128) != 0; } }
flash.net.ObjectEncodingreadExternal Une classe implémente cette méthode pour s’auto-décoder depuis un flux de données en appelant les méthodes de l’interface IDataInput.inputflash.utils:IDataInputNom de la classe qui implémente l’interface IDataInput. Une classe implémente cette méthode pour s’auto-décoder depuis un flux de données en appelant les méthodes de l’interface IDataInput. Cette méthode doit lire les valeurs dans le même ordre et avec les mêmes types que ceux qui ont servi à l’écriture par la méthode writeExternal() pour l’écriture. writeExternal Une classe implémente cette méthode pour s’auto-coder dans un flux de données en appelant les méthodes de l’interface IDataOutput.outputflash.utils:IDataOutputNom de la classe qui implémente l’interface IDataOutput. Une classe implémente cette méthode pour s’auto-coder dans un flux de données en appelant les méthodes de l’interface IDataOutput.
describeType Produit un objet XML qui décrit l’objet ActionScript identifié en tant que paramètre de la méthode.Objet XML contenant des renseignements sur l’objet transmis sous forme de paramètre, à savoir :
  • la classe de l’objet ;
  • les attributs de la classe ;
  • l’arborescence de l’héritage transmis par la classe à ses classes de base ;
  • les interfaces implémentées par la classe ;
  • les propriétés d’occurrence déclarées de la classe ;
  • les propriétés statiques déclarées de la classe ;
  • les méthodes d’occurrence de la classe ;
  • les méthodes statiques de la classe ;
  • pour chaque méthode de la classe, son nom, le nombre de paramètres, le type de renvoi et les types de paramètres.

Remarque : describeType() n’indique que les propriétés et les méthodes publiques, et exclut les propriétés et les méthodes privées, internes au package ou figurant dans des espaces de nom personnalisés.

XML
valueObjet pour lequel une description de type est requise. Toute valeur ActionScript peut être transmise à cette méthode, y compris tous les types, occurrences d’objet, types de primitives (tels que uint) et objets de classe ActionScript disponibles.
Produit un objet XML qui décrit l’objet ActionScript identifié en tant que paramètre de la méthode. Cette méthode implémente le concept de programmation par réflexion pour le langage ActionScript.

Si le paramètre value est l’occurrence d’un type, l’objet XML renvoyé comprend toutes les propriétés d’occurrence de ce type, mais n’inclut aucune propriété statique. Pour vérifier cette condition lors de l’analyse de l’objet XML, examinez la valeur de l’attribut isStatic de la balise <type>, qui est réglée sur false lorsque le paramètre value est l’occurrence d’un type.

Pour obtenir les propriétés statiques d’un type, transmettez le type en tant que tel pour le paramètre value. L’objet XML renvoyé comprend non seulement les propriétés statiques du type, mais aussi toutes les propriétés de son occurrence. Pour les distinguer des propriétés statiques, les propriétés de l’occurrence sont imbriquées dans la balise <factory>. Dans ce cas, l’attribut isStatic de la balise <type> a la valeur true.

Remarque : s’il vous suffit de parcourir la hiérarchie d’héritage d’un objet sans avoir besoin d’accéder aux autres informations fournies par describeType(), utilisez plutôt les fonctions getQualifiedClassName() et getQualifiedSuperclassName().

Le tableau ci-dessous décrit certains attributs et certaines balises de l’objet XML généré par describeType() (tous les noms de classe et d’interface renvoyés sont au format complet) :

BaliseAttributDescription<type> Balise racine de l’objet XML. nameNom du type de données de l’objet ActionScript. baseSuper-classe immédiate de la classe de définition de l’objet ActionScript. Si l’objet ActionScript est un objet de classe, la valeur est Class. isDynamictrue si la classe de définition de l’objet ActionScript est dynamique ; false dans le cas contraire. Si l’objet ActionScript est un objet de classe, la valeur est true, car la classe Class est dynamique. isFinaltrue si la classe de définition de l’objet ActionScript est spécifiée en dernière position ; false dans le cas contraire. isStatictrue si l’objet ActionScript est un objet de classe ou une fonction constructeur ; false dans le cas contraire. Cet attribut s’appelle isStatic car, s’il est réglé sur true, toute balise non imbriquée dans la balise factory est statique.<extendsClass> Balise extendsClass distincte, associée à chaque super-classe de la classe de définition de l’objet ActionScript. typeNom d’une super-classe développée par la classe de définition de l’objet ActionScript.<implementsInterface> A chaque interface implémentée par la classe de définition ou toute super-classe de l’objet ActionScript correspond une balise implementsInterface distincte. typeNom d’une interface implémentée par la classe de définition de l’objet ActionScript.<accessor> Un accesseur est une propriété définie par les fonctions getter et setter. nameNom de l’accesseur. accessDroits d’accès de la propriété. Parmi les valeurs supportées figurent readonly, writeonly et readwrite. typeType de données de la propriété. declaredByClasse qui contient les fonctions getter ou setter connexes.<constant> Une constante est une propriété définie par l’instruction const. nameNom de la constante. typeType de données de la constante.<méthode> Une méthode est une fonction déclarée dans le cadre d’une définition de classe. nameNom de la méthode. declaredByClasse qui contient la définition de la méthode. returnTypeType de données de la valeur renvoyée par la méthode.<parameter> A chaque paramètre défini par une méthode correspond une balise parameter distincte. Cette balise est systématiquement imbriquée dans une balise <method>. indexNombre correspondant à l’ordre d’apparition du paramètre dans la liste des paramètres de la méthode. Le premier paramètre a la valeur 1. typeType de données du paramètre. optionaltrue si le paramètre est facultatif ; false dans le cas contraire.<variable> Une variable est une propriété définie par l’instruction var. nameNom de la variable. typeType de données de la variable.<factory> Si l’objet ActionScript est un objet de classe ou une fonction constructeur, toutes les propriétés et méthodes de ses occurrences sont imbriquées dans cette balise. Si l’attribut isStatic de la balise <type> est réglé sur true, toutes les propriétés et méthodes qui ne sont pas imbriquées dans la balise <factory> sont statiques. Cette balise n’apparaît que si l’objet ActionScript est un objet de classe ou une fonction constructeur.
package { import flash.display.Sprite; import flash.utils.describeType; public class DescribeTypeExample extends Sprite { public function DescribeTypeExample() { var child:Sprite = new Sprite(); var description:XML = describeType(child); trace(description..accessor.@name.toXMLString()); } } }
getQualifiedClassName()getQualifiedSuperclassName()
escapeMultiByte Renvoie une copie contenant une séquence d’échappement de la chaîne entrée, codée au format UTF-8 ou page de codes système, selon la valeur de System.useCodePage.Copie contenant une séquence d’échappement de la chaîne entrée. Si System.useCodePage est réglé sur true, la chaîne contenant une séquence d’échappement est codée au format page de codes système. Si System.useCodePage est réglé sur false, la chaîne contenant une séquence d’échappement est codée au format UTF-8. Par exemple, la chaîne saisie « Crüe » est convertie en « Cr%C3%BCe » dans tous les systèmes si System.useCodePage est réglé sur false.. Si system.useCodePage est réglé sur true et que le système utilise une page de codes latine, la chaîne « Crüe » sera convertie en « Cr%FCe ». Si le système utilise une page de codes non latine qui ne contient pas la lettre « ü », le résultat correspondra probablement à « Cr?e ». Si la chaîne « Cr%C3%BCe » est soumise au processus de conversion unescape et que System.useCodePage est réglé sur true, les résultats sont incorrects, mais varient selon les systèmes, par exemple « Crüe » dans un système latin. De même, si la chaîne « Cr%FCe » est soumise au processus de conversion unescape et que System.useCodePage est réglé sur false, les résultats pourraient correspondre à « Cre », à « Cr?e » ou autres variantes, selon la page de codes du système. StringvalueStringChaîne qui doit subir le processus de conversion escape. Renvoie une copie contenant une séquence d’échappement de la chaîne entrée, codée au format UTF-8 ou page de codes système, selon la valeur de System.useCodePage. L’utilisation de System.useCodePage permet au moteur d’exécution d’accéder au contenu hérité codé dans les pages de codes locales, mais uniquement sur les systèmes qui utilisent la page de codes héritée. Par exemple, des données en japonais codées au format Shift-JIS ne subiront le processus de conversion escape/unescape que dans un système d’exploitation qui utilise une page de codes japonais par défaut. getDefinitionByName Renvoie une référence à l’objet de la classe spécifiée par le paramètre name.Aucune définition publique n’existe sous le nom spécifié. ReferenceErrorReferenceErrorRenvoie une référence à l’objet de la classe spécifiée par le paramètre name. ObjectnameStringNom d’une classe. Renvoie une référence à l’objet de la classe spécifiée par le paramètre name. L’exemple suivant utilise la classe GetDefinitionByNameExample pour créer un carré orange sur la scène. Pour ce faire, exécutez la procédure suivante :
  1. Des variables sont déclarées pour une couleur d’arrière-plan orange et une taille de 80 pixels, et seront ensuite utilisées pour tracer le carré.
  2. A l’intérieur du constructeur, une variable ClassReference de type Class est affectée au Sprite.
  3. Une occurrence de ClassReference appelée occurrence est instanciée.
  4. occurrence étant, par référence, un objet Sprite, il est possible de dessiner un carré et de l’ajouter à la liste d’affichage à l’aide des méthodes disponibles pour Sprite.
package { import flash.display.DisplayObject; import flash.display.Sprite; import flash.utils.getDefinitionByName; public class GetDefinitionByNameExample extends Sprite { private var bgColor:uint = 0xFFCC00; private var size:uint = 80; public function GetDefinitionByNameExample() { var ClassReference:Class = getDefinitionByName("flash.display.Sprite") as Class; var instance:Object = new ClassReference(); instance.graphics.beginFill(bgColor); instance.graphics.drawRect(0, 0, size, size); instance.graphics.endFill(); addChild(DisplayObject(instance)); } } }
getQualifiedClassName Renvoie le nom de classe complet d’un objet.Chaîne contenant le nom de classe complet. StringvalueObjet pour lequel un nom de classe complet est requis. Toute valeur ActionScript peut être transmise à cette méthode, y compris tous les types, occurrences d’objet, types de primitives (tels que uint) et objets de classe ActionScript disponibles. Renvoie le nom de classe complet d’un objet. describeType()getQualifiedSuperclassName()getQualifiedSuperclassName Renvoie le nom complet de la classe de base de l’objet spécifié par le paramètre value.Nom complet de classe de base ou null si aucune classe n’est définie. StringvalueN’importe quelle valeur. Renvoie le nom complet de la classe de base de l’objet spécifié par le paramètre value. Cette fonction permet d’extraire plus rapidement le nom de la classe de base que describeType(), mais ne fournit pas autant d’informations que describeType().

Après avoir récupéré le nom d’une classe avec cette fonction, vous pouvez le convertir en référence de classe à l’aide de la fonction getDefinitionByName().

Remarque : cette fonction se limite elle-même aux hiérarchies d’occurrences, alors que la fonction describeType() utilise les hiérarchies d’objets de classe si le paramètre value est un type de données. L’appel de describeType() sur un type de données renvoie la super-classe basée sur la hiérarchie d’objets de classe, dans laquelle tous les objets de classe héritent de Class. Cependant, la fonction getQualifiedSuperclassName() ne tient pas compte de la hiérarchie d’objets de classe et renvoie la super-classe en fonction de la hiérarchie d’occurrences, plus familière. Ainsi, un appel de getQualifiedSuperclassName(String) renvoie Object bien que, théoriquement, l’objet de classe String hérite de Class. En d’autres termes, les résultats sont identiques, que vous utilisiez l’occurrence d’un type ou le type lui-même.

describeType()getDefinitionByName()getQualifiedClassName()
getTimer Permet de calculer le temps relatif.Nombre de millisecondes écoulées depuis l’initialisation du moteur d’exécution (exécution d’ActionScript 2.0), ou depuis le démarrage de la machine virtuelle (exécution d’ActionScript 3.0). Si le moteur d’exécution commence la lecture d’un fichier SWF et qu’un autre fichier SWF est chargé ultérieurement, la valeur renvoyée désigne le moment du chargement du premier fichier SWF. int Permet de calculer le temps relatif. Pour un moteur d’exécution de Flash qui exécute ActionScript 3.0, cette méthode renvoie le nombre de millisecondes qui se sont écoulées depuis le démarrage de la machine virtuelle du moteur d’exécution de Flash pour ActionScript 3.0. Pour un moteur d’exécution de Flash qui exécute ActionScript 2.0, cette méthode renvoie le nombre de millisecondes qui se sont écoulées depuis le début de l’initialisation du moteur d’exécution de Flash. Le moteur d’exécution de Flash utilise deux machines virtuelles pour exécuter ActionScript. AVM1 désigne la machine virtuelle ActionScript qui exécute ActionScript 1.0 et 2.0. AVM2 désigne la machine virtuelle ActionScript qui exécute ActionScript 3.0. Le comportement de la méthode getTimer(), pour AVM1 est différent du comportement pour AVM2.

Pour obtenir une date de calendrier (horodatage), voir l’objet Date.

L’exemple suivant utilise la classe GetTimerExample pour obtenir et imprimer le nombre de millisecondes écoulées depuis l’initialisation du moteur d’exécution. package { import flash.utils.getTimer; import flash.display.Sprite; public class GetTimerExample extends Sprite { public function GetTimerExample() { var duration:uint = getTimer(); trace("duration: " + duration); } } }
flash.display.AVM1MovieClasse Date
unescapeMultiByte Renvoie une copie de la chaîne entrée soumise au processus de conversion unescape, décodée du format UTF-8 ou page de codes système, selon la valeur de System.useCodePage.Copie de la chaîne entrée qui a subi le processus de conversion unescape. Si System.useCodePage est réglé sur true, la chaîne contenant une séquence d’échappement est décodée du format page de codes système. Si System.useCodePage est réglé sur false, la chaîne contenant une séquence d’échappement est décodée du format UTF-8. Par exemple, si la chaîne saisie correspond à "Crüe" et que System.useCodePage est définie sur false, elle s’affichera sous la forme "Crüe" dans tous les systèmes. Si System.useCodePage est réglé sur true, que la chaîne saisie correspond à « Cr%FCe » et que le système utilise une page de codes latine, le résultat est également « Crüe ». Si la chaîne « Cr%C3%BCe » est soumise au processus de conversion unescape et que System.useCodePage est réglé sur true, les résultats sont incorrects, mais varient selon les systèmes, par exemple « Crüe » dans un système latin. De même, si la chaîne « Cr%FCe » est soumise au processus de conversion unescape et que System.useCodePage est réglé sur false, les résultats pourraient correspondre à « Cre », à « Cr?e » ou autres variantes, selon la page de codes du système. StringvalueStringChaîne contenant une séquence d’échappement à convertir. Renvoie une copie de la chaîne entrée soumise au processus de conversion unescape, décodée du format UTF-8 ou page de codes système, selon la valeur de System.useCodePage. L’utilisation de System.useCodePage permet au moteur d’exécution d’accéder au contenu hérité codé dans les pages de codes locales, mais uniquement sur les systèmes qui utilisent la page de codes héritée. Par exemple, des données en japonais codées au format Shift-JIS ne subiront le processus de conversion escape/unescape que dans un système d’exploitation qui utilise une page de codes japonais par défaut. clearInterval Annule un appel setInterval() spécifié.iduintID de l’appel de setInterval(), que vous réglez sur une variable, comme dans l’exemple suivant : Annule un appel de setInterval() spécifié. L’exemple suivant utilise la méthode setInterval() pour créer un intervalle de temps, en appelant la méthode myRepeatingFunction() à intervalle régulier d’une seconde.

Chaque appel de la méthode myRepeatingFunction incrémente la propriété counter et, lorsqu’elle correspond à la propriété stopCount, la méthode clearInterval() est appelée avec la propriété intervalId, identifiant faisant référence à l’intervalle créé précédemment.

package { import flash.display.Sprite; import flash.utils.*; public class ClearIntervalExample extends Sprite { private var intervalDuration:Number = 1000; // duration between intervals, in milliseconds private var intervalId:uint; private var counter:uint = 0; private var stopCount:uint = 3; public function ClearIntervalExample() { intervalId = setInterval(myRepeatingFunction, intervalDuration, "Hello", "World"); } public function myRepeatingFunction():void { trace(arguments[0] + " " + arguments[1]); counter++; if(counter == stopCount) { trace("Clearing Interval"); clearInterval(intervalId); } } } }
setInterval()
clearTimeout Annule un appel setTimeout() spécifié.iduintID de l’appel setTimeout(), que vous réglez sur une variable, comme dans l’exemple suivant : Annule un appel de setTimeout() spécifié. L’exemple suivant utilise la méthode setTimeout() pour appeler une autre méthode après un délai défini.

Une boucle est créée pour compter jusqu’à un million. Si le système peut traiter cette requête en moins d’une seconde, clearTimeout() supprime la requête de setTimeout() et la méthode myDelayedFunction() n’est pas appelée.

package { import flash.display.Sprite; import flash.utils.*; public class ClearTimeoutExample extends Sprite { private var delay:Number = 1000; // delay before calling myDelayedFunction private var intervalId:uint; private var count:uint = 1000000; public function ClearTimeoutExample() { intervalId = setTimeout(myDelayedFunction, delay); startCounting(); } public function startCounting():void { var i:uint = 0; do { if(i == count-1) { clearTimeout(intervalId); trace("Your computer can count to " + count + " in less than " + delay/1000 + " seconds."); } i++; } while(i < count) } public function myDelayedFunction():void { trace("Time expired."); } } }
setTimeout()
setInterval Exécute une fonction à fréquence définie (intervalle exprimé en millisecondes).Identificateur numérique unique utilisé pour le processus chronométré. Utilisez cet identificateur pour annuler le processus, en appelant la méthode clearInterval(). uintclosureFunctionNom de la fonction à exécuter. N’incluez ni guillemets, ni parenthèses et ne spécifiez pas les paramètres de la fonction à appeler. Par exemple, utilisez functionName, et non functionName() ou functionName(param). delayNumberIntervalle, exprimé en millisecondes. argumentsListe facultative d’arguments transmis à la fonction de fermeture. Exécute une fonction à fréquence définie (intervalle exprimé en millisecondes).

Au lieu d’utiliser la méthode setInterval(), envisagez de créer un objet Timer associé à l’intervalle spécifié, en utilisant 0 pour le paramètre repeatCount (qui règle l’horloge sur une répétition perpétuelle).

Si vous souhaitez utiliser la méthode clearInterval() pour annuler l’appel de setInterval(), veillez à affecter l’appel de setInterval() à une variable (à laquelle la méthode clearInterval() fera ultérieurement référence). Si vous n’appelez pas la fonction clearInterval() pour annuler l’appel de setInterval(), l’objet contenant la fonction de fermeture setTimeout spécifiée ne sera pas nettoyé.

L’exemple suivant utilise la méthode setInterval() pour créer un intervalle de temps, en appelant la méthode myRepeatingFunction() à intervalle régulier d’une seconde. package { import flash.display.Sprite; import flash.utils.*; public class SetIntervalExample extends Sprite { private var intervalDuration:Number = 1000; // duration between intervals, in milliseconds public function SetIntervalExample() { var intervalId:uint = setInterval(myRepeatingFunction, intervalDuration, "Hello", "World"); } public function myRepeatingFunction():void { trace(arguments[0] + " " + arguments[1]); } } }
clearInterval()
setTimeout Exécute une fonction spécifiée après un délai défini (exprimé en millisecondes).Identificateur numérique unique utilisé pour le processus chronométré. Utilisez cet identificateur pour annuler le processus, en appelant la méthode clearTimeout(). uintclosureFunctionNom de la fonction à exécuter. N’incluez ni guillemets, ni parenthèses et ne spécifiez pas les paramètres de la fonction à appeler. Par exemple, utilisez functionName, et non functionName() ou functionName(param). delayNumberDélai, exprimé en millisecondes, qui précède l’exécution de la fonction. argumentsListe facultative d’arguments transmis à la fonction de fermeture. Exécute une fonction spécifiée après un délai défini (exprimé en millisecondes).

Au lieu d’utiliser cette méthode, envisagez de créer un objet Timer associé à l’intervalle spécifié, en utilisant 1 en tant que paramètre repeatCount (qui règle l’horloge pour qu’elle ne s’exécute qu’une seule fois).

Si vous souhaitez utiliser la méthode clearTimeout() pour annuler l’appel de setTimeout(), veillez à affecter l’appel de setTimeout() à une variable (à laquelle la fonction clearTimeout() fera ultérieurement référence). Si vous n’appelez pas la fonction clearTimeout() pour annuler l’appel de setTimeout(), l’objet contenant la fonction de fermeture setTimeout spécifiée ne sera pas nettoyé.

L’exemple suivant utilise la méthode setTimeout() pour appeler une autre méthode après un délai défini. package { import flash.display.Sprite; import flash.utils.*; public class SetTimeoutExample extends Sprite { private var delay:Number = 1000; // delay before calling myDelayedFunction public function SetTimeoutExample() { var intervalId:uint = setTimeout(myDelayedFunction, delay, "Hello", "World"); } public function myDelayedFunction():void { trace(arguments[0] + " " + arguments[1]); } } }
clearTimeout()
Timer La classe Timer, qui correspond à l’interface des horloges, vous permet d’exécuter le code sur une chronologie spécifiée.flash.events:EventDispatcher La classe Timer, qui correspond à l’interface des horloges, vous permet d’exécuter le code sur une chronologie spécifiée. Utilisez la méthode start() pour démarrer une horloge. Ajoutez un écouteur à l’événement timer pour définir le code à exécuter à intervalles définis.

Vous pouvez créer des objets Timer pour les exécuter une seule fois ou à intervalles spécifiés, afin d’exécuter du code conformément au planning défini. Selon la cadence du fichier SWF ou l’environnement d’exécution (mémoire disponible et autres facteurs), le moteur d’exécution risque de distribuer les événements à intervalles légèrement décalés. Par exemple, si la cadence d’un fichier SWF est de 10 images/seconde (i/s), soit une fréquence de 100 millisecondes, mais que votre horloge est réglée de sorte à déclencher un événement à 80 millisecondes, l’événement sera déclenché à une fréquence proche de 100 millisecondes. Les scripts qui consomment beaucoup de mémoire risquent également de décaler les événements.

L’exemple suivant utilise la classe TimerExample pour montrer comment configurer une méthode d’écouteurs timerHandler() pour écouter un nouvel événement TimerEvent à diffuser. L’horloge démarre à l’appel de start() et les événements timer sont distribués à partir de ce moment. package { import flash.utils.Timer; import flash.events.TimerEvent; import flash.display.Sprite; public class TimerExample extends Sprite { public function TimerExample() { var myTimer:Timer = new Timer(1000, 2); myTimer.addEventListener("timer", timerHandler); myTimer.start(); } public function timerHandler(event:TimerEvent):void { trace("timerHandler: " + event); } } }
timerComplete Distribué lorsque le traitement du nombre de requêtes défini par Timer.repeatCount est terminé.flash.events.TimerEvent.TIMER_COMPLETEflash.events.TimerEvent Distribué lorsque le traitement du nombre de requêtes défini par Timer.repeatCount est terminé. timer Distribué lorsqu’un objet Timer atteint un intervalle spécifié conformément à la propriété Timer.delay.flash.events.TimerEvent.TIMERflash.events.TimerEvent Distribué lorsqu’un objet Timer atteint un intervalle spécifié conformément à la propriété Timer.delay. Timer Construit un nouvel objet Timer en tenant compte du délai et du nombre de répétitions spécifié.Si le délai spécifié est négatif ou qu’il ne correspond pas à un nombre fini ErrorErrordelayNumberDélai entre les événements Timer, en millisecondes. Un délai inférieur à 20 millisecondes n’est pas recommandé. La fréquence de l’horloge est limitée à 60 images par seconde, ce qui signifie qu’un délai inférieur à 16,6 millisecondes entraîne des problèmes à l’exécution. repeatCountint0Spécifie le nombre de répétitions. S’il correspond à zéro, l’horloge se répète perpétuellement. S’il correspond à une valeur autre que zéro, l’horloge s’exécute le nombre spécifié de fois, puis s’arrête. Construit un nouvel objet Timer en tenant compte des états delay et repeatCount spécifiés.

L’horloge ne démarre pas automatiquement. Pour ce faire, vous devez appeler la méthode start().

Dans l’exemple suivant, l’utilisateur dispose de 90 secondes pour indiquer une réponse dans le champ de texte de saisie. En outre, un message d’état indique toutes les trente secondes le nombre de secondes restantes à l’utilisateur.

Un objet Timer est créé, démarre dans 30 secondes (délai défini sur 30000 millisecondes) et se répète trois fois pour un total de 90 secondes (l’objet Timer s’interrompt après la troisième fois).

Deux écouteurs d’événement sont ajoutés au minuteur myTimer. Le premier est déclenché par l’événement TimerEvent.TIMER, qui se produit à chaque démarrage du minuteur. La méthode timerHandler() modifie le texte du champ de texte statusTextField pour afficher les secondes restantes.

Remarque : la classe Timer garde la trace du nombre de démarrage qu’elle effectue (repeats) en augmentant le nombre de la propriété currentCount.

Après que l’horloge est appelée pour la dernière fois, l’événement TimerEvent.TIMER_COMPLETE est distribué et la méthode completeHandler() est appelée. La méthode completeHandler() modifie le type du champ de texte inputTextField de INPUT à DYNAMIC, ce qui signifie que la saisie et la modification de texte ne sont plus autorisées.

package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldType; import flash.text.TextFieldAutoSize; import flash.utils.Timer; import flash.events.TimerEvent; import flash.events.Event; public class Timer_constructorExample extends Sprite { private var statusTextField:TextField = new TextField(); private var inputTextField:TextField = new TextField(); private var delay:uint = 30000; private var repeat:uint = 3; private var myTimer:Timer = new Timer(delay, repeat); public function Timer_constructorExample() { inputTextField.x = 10; inputTextField.y = 10; inputTextField.border = true; inputTextField.background = true; inputTextField.height = 200; inputTextField.width = 200; inputTextField.multiline = true; inputTextField.wordWrap = true; inputTextField.type = TextFieldType.INPUT; statusTextField.x = 10; statusTextField.y = 220; statusTextField.background = true; statusTextField.autoSize = TextFieldAutoSize.LEFT; myTimer.start(); statusTextField.text = "You have " + ((delay * repeat) / 1000) + " seconds to enter your response."; myTimer.addEventListener(TimerEvent.TIMER, timerHandler); myTimer.addEventListener(TimerEvent.TIMER_COMPLETE, completeHandler); addChild(inputTextField); addChild(statusTextField); } private function timerHandler(e:TimerEvent):void{ repeat--; statusTextField.text = ((delay * repeat) / 1000) + " seconds left."; } private function completeHandler(e:TimerEvent):void { statusTextField.text = "Times Up."; inputTextField.type = TextFieldType.DYNAMIC; } } }
reset Arrête l’horloge, le cas échéant, et redéfinit la propriété currentCount sur 0, tout comme le bouton de remise à zéro d’un chronomètre. Arrête l’horloge, le cas échéant, et redéfinit la propriété currentCount sur 0, tout comme le bouton de remise à zéro d’un chronomètre. Lorsque start() est appelée, l’occurrence de l’horloge s’exécute le nombre de fois indiqué par la valeur repeatCount. Timer.stop()start Démarre l’horloge, le cas échéant. Démarre l’horloge, le cas échéant. stop Arrête l’horloge. Arrête l’horloge. Lorsque start() est appelée après stop(), l’occurrence de l’horloge s’exécute en fonction du nombre de répétitions (remaining) défini par la propriété repeatCount. Timer.reset()currentCount Nombre total de déclenchements de l’horloge depuis son démarrage.int Nombre total de déclenchements de l’horloge depuis son démarrage. Si l’horloge a été réinitialisée, seuls les déclenchements qui suivent la réinitialisation sont comptabilisés. delay Délai, en millisecondes, entre les événements d’horloge.NumberCette opération renvoie une exception si le délai spécifié est négatif ou ne correspond pas à un nombre fini. ErrorError Délai, en millisecondes, entre les événements d’horloge. Si vous réglez l’intervalle lorsque l’horloge est en cours d’exécution, celle-ci redémarre à la même itération de repeatCount.

Remarque : un délai inférieur à 20 millisecondes n’est pas recommandé. La fréquence de l’horloge est limitée à 60 images par seconde, ce qui signifie qu’un délai inférieur à 16,6 millisecondes entraîne des problèmes à l’exécution.

repeatCount Nombre total de répétitions définies de l’horloge.int Nombre total de répétitions définies de l’horloge. Si le nombre de répétitions est réglé sur 0, l’horloge s’exécute indéfiniment ou jusqu’à ce que la méthode stop() soit appelée ou que le programme s’arrête. Si le nombre de répétitions n’est pas réglé sur zéro, l’horloge s’exécute le nombre de fois spécifié. Si repeatCount est défini sur un total inférieur ou égal à currentCount, l’horloge s’arrête et ne se déclenche plus. running Etat actuel de l’horloge : true si l’horloge est en cours d’exécution, false dans le cas contraire.Boolean Etat actuel de l’horloge : true si l’horloge est en cours d’exécution, false dans le cas contraire.
CompressionAlgorithm La classe CompressionAlgorithm définit les constantes de type chaîne pour les noms des options de compression et de décompression.Object La classe CompressionAlgorithm définit les constantes de type chaîne pour les noms des options de compression et de décompression. Ces constantes sont utilisées en tant que valeurs du paramètre algorithm des méthodes ByteArray.compress() et ByteArray.uncompress(). flash.utils.ByteArray.compress()flash.utils.ByteArray.uncompress()DEFLATE Définit la chaîne à utiliser pour l’algorithme de compression deflate.deflateString Définit la chaîne à utiliser pour l’algorithme de compression deflate. ZLIB Définit la chaîne à utiliser pour l’algorithme de compression zlib.zlibString Définit la chaîne à utiliser pour l’algorithme de compression zlib. IDataInput L’interface IDataInput propose plusieurs méthodes de lecture des données binaires. L’interface IDataInput propose plusieurs méthodes de lecture des données binaires. Elle est l’équivalent en E/S de l’interface IDataOutput, qui écrit des données binaires.

Toutes les opérations IDataInput et IDataOutput utilisent l’ordre d’octet « bigEndian » par défaut (où l’octet le plus significatif de la séquence est mémorisé dans l’adresse de stockage de plus bas niveau ou dans la première adresse de stockage) et ne sont pas bloquantes. Si les données disponibles sont insuffisantes, une exception EOFError est renvoyée. Utilisez la propriété IDataInput.bytesAvailable pour déterminer le volume de données disponible pour la lecture.

L’extension de signe ne joue un rôle que lors de la lecture des données et non lors de leur écriture. Il est donc inutile d’utiliser des méthodes d’écriture distinctes pour faire appel à IDataInput.readUnsignedByte() et IDataInput.readUnsignedShort(). En d’autres termes :

  • Utilisez IDataOutput.writeByte() avec IDataInput.readUnsignedByte() et IDataInput.readByte().
  • Utilisez IDataOutput.writeShort() avec IDataInput.readUnsignedShort() et IDataInput.readShort().
L’exemple suivant utilise la classe DataInputExample 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 :
  1. Déclarez une nouvelle occurrence de l’objet byteArr.
  2. Ecrivez l’équivalant en octets de la valeur booléenne false et l’équivalent de la valeur mathématique de pi avec deux décimales.
  3. Relisez la valeur booléenne et le nombre à virgule flottante à deux décimales.

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 DataInputExample extends Sprite { public function DataInputExample() { var byteArr:ByteArray = new ByteArray(); byteArr.writeBoolean(false); byteArr.writeDouble(Math.PI); byteArr.position = 0; try { trace(byteArr.readBoolean()); // false } 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. } } } }
Interface IDataOutputendianClasse FileStreamClasse SocketClasse URLStreamClasse ByteArrayClasse EOFErrorreadBoolean Lit une valeur booléenne dans le flux de fichiers, le flux d’octets ou le tableau d’octets.Les données à lire ne sont pas suffisantes. EOFErrorflash.errors:EOFErrorValeur booléenne, true si l’octet correspond à une valeur non nulle, false dans le cas contraire. Boolean Lit une valeur booléenne dans le flux de fichiers, le flux d’octets ou le tableau 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. readByte Lit un octet signé dans le flux de fichiers, le flux d’octets ou le tableau d’octets.Les données à lire ne sont pas suffisantes. EOFErrorflash.errors:EOFErrorLa valeur renvoyée est comprise entre -128 et 127. int Lit un octet signé dans le flux de fichiers, le flux d’octets ou le tableau d’octets. readBytes Lit le nombre d’octets de données spécifié par le paramètre length dans le flux de fichiers, le flux d’octets ou le tableau d’octets.Les données à lire ne sont pas suffisantes. EOFErrorflash.errors:EOFErrorbytesflash.utils:ByteArrayObjet ByteArray contenant les données à lire. offsetuint0Décalage dans le paramètre bytes où la lecture des données doit commencer. lengthuint0Nombre d’octets à lire. La valeur 0 (par défaut) provoque la lecture de toutes les données disponibles. Lit le nombre d’octets de données spécifié par le paramètre length dans le flux de fichiers, le flux d’octets ou le tableau d’octets. Les octets sont lus dans l’objet ByteArray spécifié par le paramètre bytes, à partir de la position indiquée par offset. readDouble Lit un nombre à virgule flottante à deux décimales, conforme à IEEE 754, extrait du flux de fichiers, du flux d’octets ou du tableau d’octets.Les données à lire ne sont pas suffisantes. EOFErrorflash.errors:EOFErrorNombre à virgule flottante à deux décimales et conforme au standard IEEE 754. Number Lit un nombre à virgule flottante à deux décimales, conforme à IEEE 754, extrait du flux de fichiers, du flux d’octets ou du tableau d’octets. readFloat Lit un nombre à virgule flottante à une décimale, conforme à IEEE 754, extrait du flux de fichiers, du flux d’octets ou du tableau d’octets.Les données à lire ne sont pas suffisantes. EOFErrorflash.errors:EOFErrorNombre à virgule flottante à une décimale et conforme au standard IEEE 754. Number Lit un nombre à virgule flottante à une décimale, conforme à IEEE 754, extrait du flux de fichiers, du flux d’octets ou du tableau d’octets. readInt Lit un entier signé de 32 bits extrait du flux de fichiers, du flux d’octets ou du tableau d’octets.Les données à lire ne sont pas suffisantes. EOFErrorflash.errors:EOFErrorLa valeur renvoyée est comprise entre -2147483648 et 2147483647. int Lit un entier signé de 32 bits extrait du flux de fichiers, du flux d’octets ou du tableau d’octets. readMultiByte Lit une chaîne multi-octets de longueur spécifiée dans le flux de fichiers, le flux d’octets ou le tableau d’octets en utilisant le jeu de caractères spécifié.Les données à lire ne sont pas suffisantes. EOFErrorflash.errors:EOFErrorChaîne au format UTF-8. StringlengthuintNombre d’octets à lire dans le flux d’octets. charSetStringChaî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 charSet n’est pas reconnue par le système actuel, Adobe® Flash® Player ou Adobe® AIR® utilise la page de code par défaut du système comme jeu de caractères. Par exemple, une valeur pour le paramètre charSet, comme dans myTest.readMultiByte(22, "iso-8859-01"), qui utilise 01 au lieu de 1 pourra éventuellement fonctionner sur votre système de développement, mais pas sur un autre système. Sur l’autre système, Flash Player ou le moteur d’exécution d’AIR utilise la page de code par défaut du système.

Lit une chaîne multi-octets de longueur spécifiée dans le flux de fichiers, le flux d’octets ou le tableau d’octets en utilisant le jeu de caractères spécifié.
readObject Lit un objet codé au format AMF sérialisé dans le flux de fichiers, le flux d’octets ou le tableau d’octets.Les données à lire ne sont pas suffisantes. EOFErrorflash.errors:EOFErrorObjet désérialisé Lit un objet codé au format AMF sérialisé dans le flux de fichiers, le flux d’octets ou le tableau d’octets. objectEncodingflash.net.registerClassAlias()readShort Lit un entier signé de 16 bits extrait du flux de fichiers, du flux d’octets ou du tableau d’octets.Les données à lire ne sont pas suffisantes. EOFErrorflash.errors:EOFErrorLa valeur renvoyée est comprise entre -32768 et 32767. int Lit un entier signé de 16 bits extrait du flux de fichiers, du flux d’octets ou du tableau d’octets. readUTFBytes Lit une séquence d’octets UTF-8 dans le flux ou le tableau d’octets et renvoie une chaîne.Les données à lire ne sont pas suffisantes. EOFErrorflash.errors:EOFErrorChaîne UTF-8 de longueur spécifiée, générée par la représentation des caractères sous forme d’octets. StringlengthuintNombre d’octets à lire. Lit une séquence d’octets UTF-8 dans le flux ou le tableau d’octets et renvoie une chaîne. readUTF Lit une chaîne UTF-8 dans le flux de fichiers, le flux d’octets ou le tableau d’octets.Les données à lire ne sont pas suffisantes. EOFErrorflash.errors:EOFErrorChaîne UTF-8 générée par la représentation des caractères sous forme d’octets. String Lit une chaîne UTF-8 dans le flux de fichiers, le flux d’octets ou le tableau d’octets. La chaîne doit être précédée d’un caractère non signé indiquant la longueur en octets.

Cette méthode est similaire à la méthode readUTF() de l’interface IDataInput Java®.

readUnsignedByte Lit un octet non signé dans le flux de fichiers, le flux d’octets ou le tableau d’octets.Les données à lire ne sont pas suffisantes. EOFErrorflash.errors:EOFErrorLa valeur renvoyée est comprise entre 0 et 255. uint Lit un octet non signé dans le flux de fichiers, le flux d’octets ou le tableau d’octets. readUnsignedInt Lit un entier non signé de 32 bits extrait du flux de fichiers, du flux d’octets ou du tableau d’octets.Les données à lire ne sont pas suffisantes. EOFErrorflash.errors:EOFErrorLa valeur renvoyée est comprise entre 0 et 4294967295. uint Lit un entier non signé de 32 bits extrait du flux de fichiers, du flux d’octets ou du tableau d’octets. readUnsignedShort Lit un entier non signé de 16 bits extrait du flux de fichiers, du flux d’octets ou du tableau d’octets.Les données à lire ne sont pas suffisantes. EOFErrorflash.errors:EOFErrorLa valeur renvoyée est comprise entre 0 et 65535. uint Lit un entier non signé de 16 bits extrait du flux de fichiers, du flux d’octets ou du tableau d’octets. bytesAvailable Renvoie le nombre d’octets de données disponibles pour la lecture dans le tampon de saisie.uint Renvoie le nombre d’octets de données disponibles pour la lecture dans le tampon de saisie. Le code utilisateur doit appeler bytesAvailable pour garantir que les données disponibles sont suffisantes avant leur lecture à l’aide de l’une des méthodes read. endian Ordre d’octet des données, à savoir la constante BIG_ENDIAN ou LITTLE_ENDIAN de la classe Endian.String Ordre d’octet des données, à savoir la constante BIG_ENDIAN ou LITTLE_ENDIAN de la classe Endian. Classe EndianobjectEncoding Permet de déterminer si le format AMF3 ou AMF0 est utilisé lors de l’écriture ou la lecture des données binaires à l’aide de la méthode readObject().uint Permet de déterminer si le format AMF3 ou AMF0 est utilisé lors de l’écriture ou la lecture des données binaires à l’aide de la méthode readObject(). La valeur est une constante extraite de la classe ObjectEncoding. readObject()IDataOutput.writeObject()Classe ObjectEncoding
Dictionary La classe Dictionary vous permet de créer un ensemble dynamique de propriétés, qui utilise l’opérateur d’égalité stricte (===) pour comparer les clés.Object La classe Dictionary vous permet de créer un ensemble dynamique de propriétés, qui utilise l’opérateur d’égalité stricte === pour comparer les clés. Lorsqu’un objet sert de clé, son identité est utilisée pour le rechercher, plutôt que la valeur renvoyée par l’appel de toString() sur son entrée.

Les instructions suivantes indiquent les relations qui existent entre un objet Dictionary et un objet clé :

 var dict = new Dictionary();
 var obj = new Object();
 var key:Object = new Object();
 key.toString = function() { return "key" }
 
 dict[key] = "Letters";
 obj["key"] = "Letters";
 
 dict[key] == "Letters"; // true
 obj["key"] == "Letters"; // true
 obj[key] == "Letters"; // true because key == "key" is true b/c key.toString == "key"
 dict["key"] == "Letters"; // false because "key" === key is false
 delete dict[key]; //removes the key
 
=== (égalité stricte)Dictionary Crée un nouvel objet Dictionary.weakKeysBooleanfalseDemande à l’objet Dictionary d’utiliser des références « faibles » aux clés d’objets. Si la seule référence à un objet réside dans l’objet Dictionary spécifié, la clé peut être nettoyée et est supprimée de la table lors de la collecte de l’objet. Crée un nouvel objet Dictionary. Pour supprimer une clé dans un objet Dictionary, utilisez l’opérateur delete.