Pakket | flash.utils |
Klasse | public class ByteArray |
Overerving | ByteArray Object |
Implementatie | IDataInput, IDataOutput |
Subklassen | ByteArrayAsset |
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Opmerking: de klasse ByteArray is bedoeld voor gevorderde ontwikkelaars die op byteniveau toegang tot gegevens nodig hebben.
Gegevens in het geheugen vormen een gecomprimeerde array (de meest compacte representatie van het gegevenstype) van bytes, maar een instantie van de klasse ByteArray kan worden gemanipuleerd met de standaardoperatoren []
(arraytoegang). Deze kan ook worden gelezen en geschreven als een bestand in het geheugen, hiervoor gebruikt u methoden die vergelijkbaar zijn met de methoden van de klassen URLStream en Socket.
Hiernaast wordt zlib-, deflate- en Izma-compressie en -decompressie ondersteund en AMF-objectserienummering (Action Message Format).
Een ByteArray-object kan zijn back-upgeheugen delen met meerdere workerinstanties door zijn eigenschap shareable
in te stellen op true
.
U kunt de klasse ByteArray onder meer als volgt gebruiken:
- Het maken van een aangepast protocol om verbinding met de server te maken.
- Het schrijven van uw eigen URLEncoder/URLDecoder.
- Het schrijven van uw eigen AMF/Remoting-pakket.
- Het optimaliseren van de grootte van de gegevens door gegevenstypen te gebruiken.
- Werken met binaire gegevens die zijn geladen uit een bestand.
Verwante API-elementen
Eigenschap | Gedefinieerd door | ||
---|---|---|---|
bytesAvailable : uint [alleen-lezen]
Het aantal gegevensbytes dat beschikbaar is om te worden gelezen vanaf de huidige positie in de bytearray tot het einde van de array. | ByteArray | ||
constructor : Object
Verwijzing naar het klasseobject of de constructorfunctie van een bepaalde objectinstantie. | Object | ||
defaultObjectEncoding : uint [statisch]
Hiermee wordt de standaardobjectcodering voor de klasse ByteArray aangegeven die moet worden gebruikt voor een nieuwe instantie ByteArray. | ByteArray | ||
endian : String
Wijzigt of leest de bytevolgorde voor de gegevens: Endian.BIG_ENDIAN of Endian.LITTLE_ENDIAN. | ByteArray | ||
length : uint
De lengte van het object ByteArray, in bytes. | ByteArray | ||
objectEncoding : uint
Wordt gebruikt om te bepalen of de indeling voor ActionScript 3.0, ActionScript 2.0 of ActionScript 1.0 moet worden gebruikt wanneer wordt geschreven naar of gelezen uit een instantie ByteArray. | ByteArray | ||
position : uint
Hiermee wordt de huidige positie, in bytes, van de bestandsaanwijzer verplaatst, of geretourneerd, naar het object ByteArray. | ByteArray | ||
shareable : Boolean
Geeft aan of het onderliggende geheugen van de bytearray kan worden gedeeld via de eigenschap shareable. | ByteArray |
Methode | Gedefinieerd door | ||
---|---|---|---|
Hiermee wordt een instantie ByteArray gemaakt die een gecomprimeerde array van bytes vertegenwoordigt, zodat u de methoden en eigenschappen van deze klasse kunt gebruiken voor het optimaliseren van gegevensopslag en -stroom. | ByteArray | ||
In een enkele atomische bewerking wordt de waarde van een integer in deze bytearray vergeleken met een andere integerwaarde. Als de waarden overeenkomen, worden de bytes omgewisseld met een andere waarde. | ByteArray | ||
In een enkele atomische bewerking wordt de lengte van deze bytearray vergeleken met een opgegeven waarde. Als de waarden overeenkomen, wordt de lengte van deze bytearray gewijzigd. | ByteArray | ||
Hiermee wist u de inhoud van de bytearray en stelt u eigenschappen length en position weer in op 0. | ByteArray | ||
Hiermee wordt de bytearray gecomprimeerd. | ByteArray | ||
Hiermee wordt de bytearray gecomprimeerd met het compressiealgoritme deflate. | ByteArray | ||
Geeft aan of voor een object een opgegeven eigenschap is gedefinieerd. | Object | ||
Hiermee wordt de bytearray gedecomprimeerd met het compressiealgoritme deflate. | ByteArray | ||
Geeft aan of een instantie van de klasse Object zich in de prototypeketen van het object bevindt dat als parameter is opgegeven. | Object | ||
Geeft aan of de opgegeven eigenschap bestaat en kan worden opgesomd. | Object | ||
Leest een booleaanse waarde uit de bytestream. | ByteArray | ||
Leest een byte met teken uit de bytestream. | ByteArray | ||
Leest het aantal gegevensbytes dat met de parameter length is opgegeven, uit de bytestream. | ByteArray | ||
Leest een IEEE 754 drijvende-kommagetal (64-bits) met dubbele precisie uit de bytestream. | ByteArray | ||
Leest een IEEE 754 drijvende-kommagetal (32-bits) met enkele precisie uit de bytestream. | ByteArray | ||
Leest een 32-bits geheel getal met teken uit de bytestream. | ByteArray | ||
Leest een multibyte-tekenreeks van de opgegeven lengte met de opgegeven tekenset uit de bytestream. | ByteArray | ||
readObject():*
Leest een object dat in AMF-indeling met serienummering is gecodeerd, uit de bytearray. | ByteArray | ||
Leest een 16-bits geheel getal met teken uit de bytestream. | ByteArray | ||
Leest een byte zonder teken uit de bytestream. | ByteArray | ||
Leest een 32-bits geheel getal zonder teken uit de bytestream. | ByteArray | ||
Leest een 16-bits geheel getal zonder teken uit de bytestream. | ByteArray | ||
Leest een UTF-8-tekenreeks uit de bytestream. | ByteArray | ||
Leest een reeks UTF-8-bytes die met de parameter length is opgegeven, uit de bytestream en retourneert een tekenreeks. | ByteArray | ||
Stelt de beschikbaarheid van een dynamische eigenschap voor lusbewerkingen in. | Object | ||
Geeft een overschrijfbare methode op voor het aanpassen van de JSON-codering van waarden in een ByteArray-object. | ByteArray | ||
Geeft de tekenreeksweergave van dit object weer, geformatteerd volgens de locatiespecifieke conventies. | Object | ||
Hiermee wordt bytearray in een tekenreeks omgezet. | ByteArray | ||
Hiermee wordt de bytearray gedecomprimeerd. | ByteArray | ||
Retourneert de primitieve waarde van het opgegeven object. | Object | ||
Schrijft een booleaanse waarde. | ByteArray | ||
Schrijft een byte naar de bytestream. | ByteArray | ||
Schrijft een reeks van length-bytes vanuit de opgegeven bytearray naar de bytestream, beginnend bij offset-bytes (index is op nul gebaseerd). | ByteArray | ||
Hiermee wordt een IEEE 754 drijvende-kommagetal (64-bits) met dubbele precisie naar de bytestream geschreven. | ByteArray | ||
Hiermee wordt een IEEE 754 drijvende-kommagetal (32-bits) met enkele precisie naar de bytestream geschreven. | ByteArray | ||
Schrijft een 32-bits geheel getal met teken naar de bytestream. | ByteArray | ||
Schrijft een multibyte-tekenreeks naar de bytestream met de opgegeven tekenset. | ByteArray | ||
Schrijft een object in de bytearray in AMF-indeling met serienummering. | ByteArray | ||
Schrijft een 16-bits geheel getal naar de bytestream. | ByteArray | ||
Schrijft een 32-bits geheel getal zonder teken naar de bytestream. | ByteArray | ||
Schrijft een UTF-8-tekenreeks naar de bytestream. | ByteArray | ||
Schrijft een UTF-8-tekenreeks naar de bytestream. | ByteArray |
bytesAvailable | eigenschap |
bytesAvailable:uint
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Het aantal gegevensbytes dat beschikbaar is om te worden gelezen vanaf de huidige positie in de bytearray tot het einde van de array.
Gebruik de eigenschap bytesAvailable
samen met de methoden read wanneer u het object ByteArray gebruikt om te zorgen dat u geldige gegevens leest.
Implementatie
public function get bytesAvailable():uint
defaultObjectEncoding | eigenschap |
defaultObjectEncoding:uint
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Hiermee wordt de standaardobjectcodering voor de klasse ByteArray aangegeven die moet worden gebruikt voor een nieuwe instantie ByteArray. Wanneer u een nieuwe instantie ByteArray maakt, begint de codering van die instantie met de waarde van defaultObjectEncoding
. De eigenschap defaultObjectEncoding
wordt geïnitialiseerd naar ObjectEncoding.AMF3
.
Wanneer een object wordt geschreven naar of gelezen van binaire gegevens, wordt de waarde objectEncoding
gebruikt om te bepalen of de indeling van ActionScript 3.0, ActionScript2.0 of ActionScript 1.0 moet worden gebruikt. De waarde is een constante van de klasse ObjectEncoding.
Implementatie
public static function get defaultObjectEncoding():uint
public static function set defaultObjectEncoding(value:uint):void
Verwante API-elementen
endian | eigenschap |
endian:String
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wijzigt of leest de bytevolgorde voor de gegevens: Endian.BIG_ENDIAN
of Endian.LITTLE_ENDIAN
. De standaardwaarde is BIG_ENDIAN
.
Implementatie
public function get endian():String
public function set endian(value:String):void
Verwante API-elementen
length | eigenschap |
length:uint
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
De lengte van het object ByteArray, in bytes.
Wanneer de lengte is ingesteld op een waarde die groter is dan de huidige lengte, wordt de rechterzijde van de bytearray met nullen gevuld.
Wanneer de lengte is ingesteld op een waarde die kleiner is dan de huidige lengte, wordt de bytearray ingekort.
Implementatie
public function get length():uint
public function set length(value:uint):void
objectEncoding | eigenschap |
objectEncoding:uint
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wordt gebruikt om te bepalen of de indeling voor ActionScript 3.0, ActionScript 2.0 of ActionScript 1.0 moet worden gebruikt wanneer wordt geschreven naar of gelezen uit een instantie ByteArray. De waarde is een constante van de klasse ObjectEncoding.
Implementatie
public function get objectEncoding():uint
public function set objectEncoding(value:uint):void
Verwante API-elementen
position | eigenschap |
position:uint
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Hiermee wordt de huidige positie, in bytes, van de bestandsaanwijzer verplaatst, of geretourneerd, naar het object ByteArray. Dit is het punt waarop de volgende aanroep van een methode read begint met lezen of van een methode write begint met schrijven.
Implementatie
public function get position():uint
public function set position(value:uint):void
shareable | eigenschap |
shareable:Boolean
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 11.5, AIR 3.5 |
Geeft aan of het onderliggende geheugen van de bytearray kan worden gedeeld via de eigenschap shareable. Voor een deelbarre bytearray maken alle ByteArray-instanties in alle workers die verwijzen naar de bytearray, gebruik van hetzelfde onderliggende systeemgeheugen. De standaardwaarde is false
. Dit betekent dat het onderliggende geheugen niet wordt gedeeld door de workers.
Deze eigenschap heeft ook invloed op wat de runtime doet met deze bytearray als de array wordt doorgegeven aan een worker via de methode Worker.setSharedProperty()
of de methode MessageChannel.send()
:
- Not shareable: als deze eigenschap is ingesteld op
false
, maakt de runtime een volledige kopie van de bytearray wanneer de bytearray wordt doorgegeven aan een worker. Hierbij wordt ook een nieuw geheugensegment toegewezen waarin de inhoud van de duplicaatbytearray wordt opgeslagen - Shareable: wanneer een bytearray wordt doorgegeven aan een worker en deze eigenschap is ingesteld op
true
, gebruikt de runtime hetzelfde onderliggende geheugen als de opslagbuffer voor de inhoud van zowel de oorspronkelijke ByteArray-instantie en de nieuwe ByteArray-instantie die voor de tweede worker wordt gemaakt. In essentie bevatten beide ByteArray-instanties een referentie naar dezelfde onderliggende bytearray.
Wanneer een gedeelde bytearray gelijktijdig toegankelijk is voor meerdere workers, kan er een ongewenste situatie ontstaan waarbij het onderliggende geheugen van de bytearray gelijktijdig wordt bewerkt door twee workers. U kunt de toegang tot het gedeelde geheugen op een aantal verschillende manieren beheren:
- via het vergelijk-en-omwisselmechanisme van de methoden
atomicCompareAndSwapIntAt()
enatomicCompareAndSwapLength()
van de ByteArray-klasse - via de gespecialiseerde mechanismen van de Mutex- en Condition-klassen (in het flash.concurrent-pakket)
Als u de waarde van deze eigenschap instelt op true
, is dat alleen van invloed op de volgende code die via deze bytearray wordt doorgegeven aan een worker. Elke kopie van deze bytearray die al is doorgegeven aan een worker, blijft bestaan als afzonderlijke kopie.
Als u de waarde van deze eigenschap instelt op false
wanneer deze eerder was ingesteld op true
, wordt het onderliggende geheugen van de bytearray direct gekopieerd naar een nieuw segment in het systeemgeheugen. Vervolgens wordt dan het nieuwe onderliggende geheugen gebruikt door deze ByteArray-instantie. Als gevolg hiervan wordt het onderliggende geheugen van deze bytearray niet meer gedeeld met andere workers, ook als dit voorheen wel het geval was. Als u deze bytearray nu doorgeeft aan een worker, wordt het onderliggende geheugen gekopieerd, net als bij elk ander ByteArray-object waarvan de eigenschap shareable
is ingesteld op false
.
De standaardwaarde is false.
Implementatie
public function get shareable():Boolean
public function set shareable(value:Boolean):void
Verwante API-elementen
ByteArray | () | Constructor |
public function ByteArray()
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Hiermee wordt een instantie ByteArray gemaakt die een gecomprimeerde array van bytes vertegenwoordigt, zodat u de methoden en eigenschappen van deze klasse kunt gebruiken voor het optimaliseren van gegevensopslag en -stroom.
atomicCompareAndSwapIntAt | () | methode |
public function atomicCompareAndSwapIntAt(byteIndex:int, expectedValue:int, newValue:int):int
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 11.5, AIR 3.5 |
In een enkele atomische bewerking wordt de waarde van een integer in deze bytearray vergeleken met een andere integerwaarde. Als de waarden overeenkomen, worden de bytes omgewisseld met een andere waarde.
Deze methode is bedoeld voor gebruik met een bytearray waarvan het onderliggende geheugen wordt gedeeld tussen meerdere workers (de shareable
-eigenschap van de ByteArray-instantie heeft de waarde true
). De methode voert de volgende reeks stappen uit:
- De waarde van een integer in deze bytearray wordt gelezen, te beginnen bij de index (gemeten in bytes) die is opgegeven in het argument
byteIndex
- De werkelijke waarde van deze bytearray wordt vergeleken met de waarde die is doorgegeven aan het argument
expectedValue
- Als beide waarden gelijk zijn, wordt deze naar het argument
newValue
in de bytearray geschreven en wel op de locatie die is opgegeven door de parameterbyteIndex
. Vervolgens wordt de waarde geretourneerd die zich voorheen in de desbetreffende bytes bevond (de waarde die in stap 1 werd gelezen) - Als de waarden niet gelijk zijn, verandert de inhoud van de bytearray niet en retourneert de methode de werkelijke gelezen waarde van de bytearray.
Alle bovenstaande stappen worden uitgevoerd in één atomische hardwaretransactie. Dit garandeert dat de inhoud van de bytearray tijdens de vergelijk-en-omwisselbewerking niet wordt gewijzigd door bewerkingen van andere workers.
Parameters
byteIndex:int — de indexpositie (in bytes) waar de te lezen integer zich bevindt, en waarnaar de waarde van newValue wordt geschreven als de vergeleken waarden overeenkomen. Deze waarde moet een meervoud van 4 zijn.
| |
expectedValue:int — de waarde waarvan wordt verwacht dat deze overeenkomt met de inhoud van de bytearray bij de opgegeven index.
| |
newValue:int — de nieuwe waarde die de inhoud van de bytearray bij de opgegeven index vervangt indien de vergeleken waarden overeenkomen
|
int — de voorgaande waarde bij de opgegeven locatie als de vergelijking resulteert in overeenkomende waarden, of de werkelijke waarde van de bytearray als de werkelijke waarde niet overeenkomt met de verwachte waarde
|
Gegenereerde uitzondering
ArgumentError — indien de waarde van byteIndex geen meervoud van 4 of de overeenkomstige negatieve waarde is
|
Verwante API-elementen
atomicCompareAndSwapLength | () | methode |
public function atomicCompareAndSwapLength(expectedLength:int, newLength:int):int
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 11.5, AIR 3.5 |
In een enkele atomische bewerking wordt de lengte van deze bytearray vergeleken met een opgegeven waarde. Als de waarden overeenkomen, wordt de lengte van deze bytearray gewijzigd.
Deze methode is bedoeld voor gebruik met een bytearray waarvan het onderliggende geheugen wordt gedeeld tussen meerdere workers (de shareable
-eigenschap van de ByteArray-instantie heeft de waarde true
). Deze methode doet het volgende:
- De eigenschap
length
van de integer van de ByteArray-instantie wordt gelezen - Deze lengte wordt vergeleken met de waarde die is doorgegeven aan het argument
expectedLength
- Als beide waarden gelijk zijn, wordt de lengte van de bytearray gewijzigd in de waarde die is doorgegeven als de parameter
newLength
, waardoor de bytearray groter of kleiner wordt - Als de waarden niet overeenkomen, blijft de bytearray ongewijzigd
Alle bovenstaande stappen worden uitgevoerd in één atomische hardwaretransactie. Dit garandeert dat de inhoud van de bytearray tijdens de vergelijk-en-lengtewijzigingbewerking niet wordt gewijzigd door bewerkingen van andere workers.
Parameters
expectedLength:int — de verwachte waarde van de length -eigenschap van de ByteArray. Als de opgegeven waarde gelijk is aan de werkelijke waarde, wordt de lengte van de bytearray gewijzigd.
| |
newLength:int — de nieuwe lengte van de bytearray, indien de waarden gelijk zijn
|
int — de voorgaande length -waarde van de ByteArray, onafhankelijk of deze al dan niet is gewijzigd
|
Verwante API-elementen
clear | () | methode |
public function clear():void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Hiermee wist u de inhoud van de bytearray en stelt u eigenschappen length
en position
weer in op 0. Door deze methode aan te roepen, maakt u het geheugen vrij dat door de ByteArray-instantie werd gebruikt.
compress | () | methode |
public function compress(algorithm:String):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Hiermee wordt de bytearray gecomprimeerd. De gehele bytearray wordt gecomprimeerd. Na de aanroep wordt de eigenschap length
van ByteArray ingesteld op de nieuwe lengte. De eigenschap position
wordt ingesteld op het einde van de bytearray.
U kunt een compressiealgoritme opgeven door een waarde (gedefinieerd in de klasse CompressionAlgorithm) in te voeren als algorithm
-parameter. De volgende algoritmen worden ondersteund:
De zlib-gecomprimeerde gegevensindeling wordt beschreven in http://www.ietf.org/rfc/rfc1950.txt.
Het compressiealgoritme deflate wordt beschreven op http://www.ietf.org/rfc/rfc1951.txt.
Het lzma-compressiealgoritme wordt beschreven op http://www.7-zip.org/7z.html.
Het compressiealgoritme deflate wordt in verschillende compressie-indelingen gebruikt, zoals zlib, gzip, een aantal zip-implementaties, en andere. Wanneer gegevens met een van die compressie-indelingen worden gecomprimeerd, bevatten deze (bijvoorbeeld in het zip-bestand), naast de gecomprimeerde versie van de oorspronkelijke gegevens, metagegevens-informatie. Enkele soorten metagegevens in verschillende bestandsindelingen zijn bijvoorbeeld bestandsnaam, datum/tijdstip van wijziging van het bestand, oorspronkelijke grootte van het bestand, optioneel commentaar, checksumgegevens, enzovoort.
Wanneer bijvoorbeeld een ByteArray wordt gecomprimeerd met het algoritme zlib, is de resulterende ByteArray volgens een bepaalde indeling gestructureerd. Bepaalde bytes bevatten metagegevens over de gecomprimeerde gegevens, terwijl andere bytes de werkelijke gecomprimeerde versie van de oorspronkelijke ByteArray-gegevens bevatten. Die bytes (dat wil zeggen, het deel met de gecomprimeerde versie van de oorspronkelijke gegevens) worden gecomprimeerd met het algoritme deflate, zoals gedefinieerd in de specificatie zlib voor de indeling van gecomprimeerde gegevens. Die bytes zijn daarom identiek aan het resultaat van het aanroepen van compress(air. CompressionAlgorithm.DEFLATE)
voor de oorspronkelijke ByteArray. Het resultaat van compress(air. CompressionAlgorithm.ZLIB)
bevat de extra metagegevens, terwijl het resultaat van compress(CompressionAlgorithm.DEFLATE)
alleen de gecomprimeerde versie bevat van de oorspronkelijke ByteArray-gegevens, en niets meer.
Als u de deflate-indeling wilt gebruiken om de gegevens van een ByteArray-instantie in een specifieke indeling te comprimeren, bijvoorbeeld gzip of zip, kunt u niet gewoon de methode compress(CompressionAlgorithm.DEFLATE)
aanroepen. U moet een ByteArray maken die is gestructureerd volgens de specificatie van de compressie-indeling en er derhalve voor zorgen dat de ByteArray onder meer beschikt over de juiste metagegevens en over de gecomprimeerde gegevens die met de deflate-indeling zijn verkregen. Als u gegevens wilt decoderen die zijn gecomprimeerd in een indeling als gzip of zip kunt u dus ook niet gewoon uncompress(CompressionAlgorithm.DEFLATE)
op die gegevens aanroepen. U moet eerst de metagegevens scheiden van de gecomprimeerde gegevens, waarna u de indeling deflate kunt gebruiken om de gecomprimeerde gegevens te decomprimeren.
Parameters
algorithm:String (default = NaN ) — Het bij compressie te gebruiken compressiealgoritme. Geldige waarden worden gedefinieerd als constanten in de klasse CompressionAlgorithm. Standaard wordt de indeling zlib gebruikt. Het aanroepen van de methode compress(CompressionAlgorithm.DEFLATE) heeft hetzelfde effect als het aanroepen van de methode deflate() . Ondersteuning voor het lzma-algoritme is toegevoegd voor Flash Player 11.3 en AIR 3.3. Als u het lzma-compressiealgoritme wilt gebruiken, moet u over deze of latere versies beschikken.
|
Verwante API-elementen
deflate | () | methode |
public function deflate():void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Hiermee wordt de bytearray gecomprimeerd met het compressiealgoritme deflate. De gehele bytearray wordt gecomprimeerd.
Na de aanroep wordt de eigenschap length
van ByteArray ingesteld op de nieuwe lengte. De eigenschap position
wordt ingesteld op het einde van de bytearray.
Het compressiealgoritme deflate wordt beschreven op http://www.ietf.org/rfc/rfc1951.txt.
Als u de indeling deflate wilt gebruiken om de gegevens van een ByteArray-instantie in een specifieke indeling te comprimeren, zoals gzip of zip, kunt u niet gewoon deflate()
aanroepen. U moet een ByteArray maken die is gestructureerd volgens de specificatie van de compressie-indeling en er derhalve voor zorgen dat de ByteArray onder meer beschikt over de juiste metagegevens en over de gecomprimeerde gegevens die met de deflate-indeling zijn verkregen. Als u gegevens wilt decoderen die zijn gecomprimeerd in een indeling als gzip of zip, kunt u dus ook niet gewoon inflate()
voor die gegevens aanroepen. U moet eerst de metagegevens scheiden van de gecomprimeerde gegevens, waarna u de indeling deflate kunt gebruiken om de gecomprimeerde gegevens te decomprimeren.
Verwante API-elementen
inflate | () | methode |
public function inflate():void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 10 |
Hiermee wordt de bytearray gedecomprimeerd met het compressiealgoritme deflate. De bytearray moet met hetzelfde algoritme zijn gecomprimeerd.
Na de aanroep wordt de eigenschap length
van ByteArray ingesteld op de nieuwe lengte. De eigenschap position
wordt ingesteld op 0.
Het compressiealgoritme deflate wordt beschreven op http://www.ietf.org/rfc/rfc1951.txt.
Als u gegevens wilt decoderen die zijn gecomprimeerd in een indeling die het compressiealgoritme deflate gebruikt, zoals gegevens in de indeling gzip of zip, kunt u niet gewoon inflate()
aanroepen voor een ByteArray met de compressie-indelingsgegevens. Eerst moet u de metagegevens die onderdeel zijn van de gecomprimeerde gegevensindeling scheiden van de werkelijk gecomprimeerde gegevens. Zie de beschrijving van de methode compress()
voor meer informatie.
Gegenereerde uitzondering
IOError — De gegevens zijn geen geldige gecomprimeerde gegevens omdat ze niet zijn gecomprimeerd met hetzelfde compressiealgoritme als waarmee ze zijn gecomprimeerd.
|
Verwante API-elementen
readBoolean | () | methode |
public function readBoolean():Boolean
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Leest een booleaanse waarde uit de bytestream. Er wordt één byte gelezen en true
wordt geretourneerd wanneer de byte niet gelijk is aan 0. Anders wordt false
geretourneerd.
Boolean — Hiermee wordt true geretourneerd als de byte niet-nul is, anders false .
|
Gegenereerde uitzondering
EOFError — Er zijn onvoldoende gegevens beschikbaar om te lezen.
|
readByte | () | methode |
public function readByte():int
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Leest een byte met teken uit de bytestream.
De geretourneerde waarde ligt in het bereik -128 t/m 127.
Geretourneerde waardeint — Een geheel getal van -128 tot en met 127.
|
Gegenereerde uitzondering
EOFError — Er zijn onvoldoende gegevens beschikbaar om te lezen.
|
readBytes | () | methode |
public function readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Leest het aantal gegevensbytes dat door de parameter length
is opgegeven, uit de bytestream. De bytes worden ingelezen in het object ByteArray dat is opgegeven door de parameter bytes
en de bytes worden geschreven naar de doel-ByteArray, beginnend bij de positie die is opgegeven door offset
.
Parameters
bytes:ByteArray — Het object ByteArray waarin gegevens worden ingelezen.
| |
offset:uint (default = 0 ) — De offset (positie) in bytes waar de gelezen gegevens moeten worden geschreven.
| |
length:uint (default = 0 ) — Het aantal bytes dat moet worden gelezen. De standaardwaarde 0 zorgt ervoor dat alle beschikbare gegevens worden gelezen.
|
Gegenereerde uitzondering
EOFError — Er zijn onvoldoende gegevens beschikbaar om te lezen.
| |
RangeError — De gecombineerde waarde van de opgegeven verschuiving en lengte is groter dan het maximum voor een uint.
|
readDouble | () | methode |
public function readDouble():Number
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Leest een IEEE 754 drijvende-kommagetal (64-bits) met dubbele precisie uit de bytestream.
Geretourneerde waardeNumber — Een drijvende-kommagetal (64 bits) met dubbele precisie.
|
Gegenereerde uitzondering
EOFError — Er zijn onvoldoende gegevens beschikbaar om te lezen.
|
readFloat | () | methode |
public function readFloat():Number
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Leest een IEEE 754 drijvende-kommagetal (32-bits) met enkele precisie uit de bytestream.
Geretourneerde waardeNumber — Een drijvende-kommagetal (32 bits) met enkele precisie.
|
Gegenereerde uitzondering
EOFError — Er zijn onvoldoende gegevens beschikbaar om te lezen.
|
readInt | () | methode |
public function readInt():int
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Leest een 32-bits geheel getal met teken uit de bytestream.
De geretourneerde waarde ligt in het bereik -2147483648 t/m 2147483647.
Geretourneerde waardeint — Een 32-bits geheel getal met teken tussen -2147483648 en 2147483647.
|
Gegenereerde uitzondering
EOFError — Er zijn onvoldoende gegevens beschikbaar om te lezen.
|
readMultiByte | () | methode |
public function readMultiByte(length:uint, charSet:String):String
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Leest een multibyte-tekenreeks van de opgegeven lengte met de opgegeven tekenset uit de bytestream.
Parameters
length:uint — Het aantal bytes van de bytestream dat moet worden gelezen.
| |
charSet:String — De tekenreeks die de tekenset aangeeft die moet worden gebruikt om de bytes te interpreteren. Mogelijke tekensetreeksen zijn onder andere shift-jis , cn-gb , iso-8859-1 en andere. Zie Ondersteunde tekensets voor een complete lijst.
Opmerking: wanneer de waarde voor de parameter |
String — Een UTF-8-gecodeerde tekenreeks.
|
Gegenereerde uitzondering
EOFError — Er zijn onvoldoende gegevens beschikbaar om te lezen.
|
readObject | () | methode |
public function readObject():*
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Leest een object dat in AMF-indeling met serienummering is gecodeerd, uit de bytearray.
Geretourneerde waarde* — Het gedeserialiseerde object.
|
Gegenereerde uitzondering
EOFError — Er zijn onvoldoende gegevens beschikbaar om te lezen.
|
Verwante API-elementen
readShort | () | methode |
public function readShort():int
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Leest een 16-bits geheel getal met teken uit de bytestream.
De geretourneerde waarde ligt in het bereik -32768 t/m 32767.
Geretourneerde waardeint — Een 16-bits geheel getal met teken tussen -32768 en 32767.
|
Gegenereerde uitzondering
EOFError — Er zijn onvoldoende gegevens beschikbaar om te lezen.
|
readUnsignedByte | () | methode |
public function readUnsignedByte():uint
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Leest een byte zonder teken uit de bytestream.
De geretourneerde waarde ligt in het bereik 0 t/m 255.
Geretourneerde waardeuint — Een 32-bits geheel getal zonder teken tussen 0 en 255.
|
Gegenereerde uitzondering
EOFError — Er zijn onvoldoende gegevens beschikbaar om te lezen.
|
readUnsignedInt | () | methode |
public function readUnsignedInt():uint
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Leest een 32-bits geheel getal zonder teken uit de bytestream.
De geretourneerde waarde ligt in het bereik 0 t/m 4294967295.
Geretourneerde waardeuint — Een 32-bits geheel getal zonder teken tussen 0 en 4294967295.
|
Gegenereerde uitzondering
EOFError — Er zijn onvoldoende gegevens beschikbaar om te lezen.
|
readUnsignedShort | () | methode |
public function readUnsignedShort():uint
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Leest een 16-bits geheel getal zonder teken uit de bytestream.
De geretourneerde waarde ligt in het bereik 0 t/m 65535.
Geretourneerde waardeuint — Een 16-bits geheel getal zonder teken tussen 0 en 65535.
|
Gegenereerde uitzondering
EOFError — Er zijn onvoldoende gegevens beschikbaar om te lezen.
|
readUTF | () | methode |
public function readUTF():String
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Leest een UTF-8-tekenreeks uit de bytestream. Er wordt aangenomen dat de tekenreeks begint met een kort geheel getal zonder teken dat de lengte in bytes aangeeft.
Geretourneerde waardeString — Een UTF-8-gecodeerde tekenreeks.
|
Gegenereerde uitzondering
EOFError — Er zijn onvoldoende gegevens beschikbaar om te lezen.
|
Verwante API-elementen
readUTFBytes | () | methode |
public function readUTFBytes(length:uint):String
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Leest een reeks UTF-8-bytes die met de parameter length
is opgegeven, uit de bytestream en retourneert een tekenreeks.
Parameters
length:uint — Een kort geheel getal zonder teken dat de lengte van de UTF-8-bytes aangeeft.
|
String — Een tekenreeks die bestaat uit de UTF-8-bytes van de opgegeven lengte.
|
Gegenereerde uitzondering
EOFError — Er zijn onvoldoende gegevens beschikbaar om te lezen.
|
toJSON | () | methode |
public function toJSON(k:String):*
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 11, AIR 3, Flash Lite 4 |
Geeft een overschrijfbare methode op voor het aanpassen van de JSON-codering van waarden in een ByteArray-object.
De JSON.stringify()
-methode zoekt naar een toJSON()
-methode op elk object dat deze doorloopt. Als de toJSON()
-methode gevonden wordt, roept JSON.stringify()
deze aan voor elke waarde die wordt gevonden en wordt deze doorgegeven in de sleutel die een paar vormt met de waarde.
ByteArray biedt een standaardimplementatie van toJSON()
dat gewoon de naam van de klasse retourneert. Omdat de inhoud van een ByteArray interpretatie vereist, moeten clients die ByteArray-objecten willen exporteren naar JSON, hun eigen implementatie opgeven. U kunt dit doen door de toJSON()
-methode op het klasseprototype opnieuw te definiëren.
De toJSON()
-methode kan een waarde van elk type retourneren. Als een object wordt geretourneerd, loopt stringify()
recursief door dat object. Als toJSON()
een tekenreeks retourneert, loopt stringify()
niet recursief door de tekenreeks en gaat de methode verder met doorlopen van de tekenreeks.
Parameters
k:String — De sleutel van een sleutel-waardepaar dat JSON.stringify() heeft gevonden tijdens het doorlopen van dit object
|
* — De tekenreeks van de klassenaam.
|
Verwante API-elementen
toString | () | methode |
public function toString():String
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Hiermee wordt bytearray in een tekenreeks omgezet. Wanneer de gegevens in de array met een Unicode-bytevolgordeteken beginnen, neemt de toepassing dit in beschouwing wanneer de gegevens in een tekenreeks worden omgezet. Wanneer System.useCodePage
op true
is ingesteld, behandelt de toepassing de gegevens in de array tijdens het omzetten alsof ze zich op de systeemcodepagina bevinden.
String — De tekenreeksrepresentatie van de bytearray.
|
uncompress | () | methode |
public function uncompress(algorithm:String):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Hiermee wordt de bytearray gedecomprimeerd. Na de aanroep wordt de eigenschap length
van ByteArray ingesteld op de nieuwe lengte. De eigenschap position
wordt ingesteld op 0.
De bytearray moet met hetzelfde algoritme zijn gecomprimeerd als waarmee de array wordt gedecomprimeerd. U kunt een decompressiealgoritme opgeven door een waarde (gedefinieerd in de klasse CompressionAlgorithm) in te voeren als algorithm
-parameter. De volgende algoritmen worden ondersteund:
De zlib-gecomprimeerde gegevensindeling wordt beschreven in http://www.ietf.org/rfc/rfc1950.txt.
Het compressiealgoritme deflate wordt beschreven op http://www.ietf.org/rfc/rfc1951.txt.
Het lzma-compressiealgoritme wordt beschreven op http://www.7-zip.org/7z.html.
Als u gegevens wilt decoderen die zijn gecomprimeerd in een indeling die het compressiealgoritme deflate gebruikt, zoals gegevens in de indeling gzip of zip, werkt het aanroepen van uncompress(CompressionAlgorithm.DEFLATE)
op een ByteArray met de compressie-indelingsgegevens niet. Eerst moet u de metagegevens die onderdeel zijn van de gecomprimeerde gegevensindeling scheiden van de werkelijk gecomprimeerde gegevens. Zie de beschrijving van de methode compress()
voor meer informatie.
Parameters
algorithm:String (default = NaN ) — Het bij decompressie te gebruiken compressiealgoritme. Dit moet hetzelfde compressiealgoritme zijn dat is gebruikt voor compressie van de gegevens. Geldige waarden worden gedefinieerd als constanten in de klasse CompressionAlgorithm. Standaard wordt de indeling zlib gebruikt. Ondersteuning voor het lzma-algoritme is toegevoegd voor Flash Player 11.3 en AIR 3.3. Als u het lzma-compressiealgoritme wilt gebruiken, moet u over deze of latere versies beschikken.
|
Gegenereerde uitzondering
IOError — De gegevens zijn geen geldige gecomprimeerde gegevens omdat ze niet zijn gecomprimeerd met hetzelfde compressiealgoritme als waarmee ze zijn gecomprimeerd.
|
Verwante API-elementen
writeBoolean | () | methode |
public function writeBoolean(value:Boolean):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Schrijft een booleaanse waarde. Er wordt volgens de parameter value
één byte geschreven, 1 indien true
of 0 indien false
.
Parameters
value:Boolean — Een booleaanse waarde die bepaalt welke byte wordt geschreven. Wanneer de parameter true is, schrijft de methode een 1; als de parameter false is, schrijft de methode een 0.
|
writeByte | () | methode |
public function writeByte(value:int):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Schrijft een byte naar de bytestream.
De lage 8 bits van de parameter worden gebruikt. De hoge 24 bits worden genegeerd.
Parameters
value:int — Een 32-bits geheel getal. De lage 8 bits worden naar de bytestream geschreven.
|
writeBytes | () | methode |
public function writeBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Schrijft een reeks van length
bytes vanuit de opgegeven byte array
naar de bytestream, beginnend bij offset
bytes (index is op nul gebaseerd).
Wanneer de parameter length
wordt weggelaten, wordt de standaardlengte 0 gebruikt. De methode schrijft de gehele buffer, beginnend bij offset
. Wanneer de parameter offset
ook wordt weggelaten, wordt de gehele buffer geschreven.
Wanneer offset
of length
zich buiten het bereik bevindt, worden ze vastgeklemd aan het begin en einde van de array bytes
.
Parameters
bytes:ByteArray — Het object ByteArray.
| |
offset:uint (default = 0 ) — Een op nul gebaseerde index die de positie in de array opgeeft waar met schrijven moet worden begonnen.
| |
length:uint (default = 0 ) — Een geheel getal zonder teken dat aangeeft tot hoever in de buffer moet worden geschreven.
|
writeDouble | () | methode |
public function writeDouble(value:Number):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Hiermee wordt een IEEE 754 drijvende-kommagetal (64-bits) met dubbele precisie naar de bytestream geschreven.
Parameters
value:Number — Een drijvende-kommagetal (64 bits) met dubbele precisie.
|
writeFloat | () | methode |
public function writeFloat(value:Number):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Hiermee wordt een IEEE 754 drijvende-kommagetal (32-bits) met enkele precisie naar de bytestream geschreven.
Parameters
value:Number — Een drijvende-kommagetal (32 bits) met enkele precisie.
|
writeInt | () | methode |
writeMultiByte | () | methode |
public function writeMultiByte(value:String, charSet:String):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Schrijft een multibyte-tekenreeks naar de bytestream met de opgegeven tekenset.
Parameters
value:String — De tekenreekswaarde die moet worden geschreven.
| |
charSet:String — De tekenreeks die de tekenset aangeeft die moet worden gebruikt. Mogelijke tekensetreeksen zijn onder andere shift-jis , cn-gb , iso-8859-1 en andere. Zie Ondersteunde tekensets voor een complete lijst.
|
writeObject | () | methode |
writeShort | () | methode |
public function writeShort(value:int):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Schrijft een 16-bits geheel getal naar de bytestream. De lage 16 bits van de parameter worden gebruikt. De hoge 16 bits worden genegeerd.
Parameters
value:int — Een 32-bits geheel getal, waarvan de lage 16 bits naar de bytestream worden geschreven.
|
writeUnsignedInt | () | methode |
writeUTF | () | methode |
public function writeUTF(value:String):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Schrijft een UTF-8-tekenreeks naar de bytestream. De lengte van de UTF-8-tekenreeks in bytes wordt eerst als een 16-bits geheel getal geschreven en wordt gevolgd door de bytes die de tekens van de tekenreeks vertegenwoordigen.
Parameters
value:String — De tekenreekswaarde die moet worden geschreven.
|
Gegenereerde uitzondering
RangeError — Wanneer de lengte groter is dan 65535.
|
writeUTFBytes | () | methode |
public function writeUTFBytes(value:String):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Schrijft een UTF-8-tekenreeks naar de bytestream. Vergelijkbaar met de methode writeUTF()
, maar writeUTFBytes()
voegt geen 16-bits woord als voorvoegsel toe aan de tekenreeks.
Parameters
value:String — De tekenreekswaarde die moet worden geschreven.
|
ByteArrayExample
gebruikt om een booleaanse waarde en een representatie van pi als drijvende-kommagetal met dubbele precisie naar een byte-array te schrijven. Hierbij moeten de volgende stappen worden uitgevoerd:
- Declareer een nieuwe ByteArray-objectinstantie
byteArr
. - Schrijf de waarde van de booleaanse waarde
false
in bytes, controleer de lengte en lees het opnieuw. - Schrijf de wiskundige waarde van pi met een drijvende-kommagetal met dubbele precisie.
- Lees de negen bytes die in de bytearray zijn geschreven opnieuw.
Opmerking: wanneer trace()
wordt aangeroepen voor een byte, wordt de decimale equivalent van de bytes die zijn opgeslagen in de bytearray afgedrukt.
Aan het eind is een codesegment toegevoegd om op bestandseindefouten te controleren en te zorgen dat de bytestream niet voorbij het einde wordt gelezen.
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. } } } }
Wed Jun 13 2018, 11:42 AM Z