| Pakiet | flash.utils |
| Klasa | public class ByteArray |
| Dziedziczenie | ByteArray Object |
| Implementuje | IDataInput, IDataOutput |
| Podklasy | ByteArrayAsset |
| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Uwaga: Klasa ByteArray jest przeznaczona dla zaawansowanych programistów, którzy wymagają dostępu do danych na poziomie bajtów.
Dane w pamięci są zapisane w postaci spakowanej tablicy (najbardziej spakowana reprezentacja dla typu danych) bajtów, ale instancją klasy ByteArray można manipulować za pomocą standardowych operatorów [] (dostęp do tablicy). Tablica może być również odczytywana i zapisywana, jak plik w pamięci — przy użyciu metod podobnych do stosowanych w klasach URLStream i Socket.
Ponadto obsługiwane są algorytmy kompresji i dekompresji zlib, deflate oraz LZMA, a także mechanizm serializacji obiektów do formatu AMF (Action Message Format).
Obiekt ByteArray może współużytkować pamięć dodatkową z wieloma wystąpieniami klasy Worker. Wystarczy w tym celu ustawić dla właściwości shareable wartość true.
Do możliwych zastosowań klasy ByteArray należą:
- Tworzenie niestandardowego protokołu w celu połączenia z serwerem.
- Zapisywanie własnego modułu URLEncoder/URLDecoder.
- Zapisywanie własnego pakietu AMF/Remoting.
- Optymalizowanie ilości danych poprzez stosowanie typów danych.
- Praca z danymi binarnymi wczytanymi z pliku.
Powiązane elementy interfejsu API
| Właściwość | Zdefiniowane przez | ||
|---|---|---|---|
| bytesAvailable : uint [tylko do odczytu]
Liczba bajtów, które można odczytać z tablicy bajtów, począwszy od bieżącej pozycji do końca tablicy. | ByteArray | ||
![]() | constructor : Object
Odwołanie do obiektu klasy lub funkcji konstruktora, dotyczące danej instancji obiektu. | Object | |
| defaultObjectEncoding : uint [statyczny]
Oznacza domyślne kodowanie obiektów dotyczące klasy ByteArray, które będzie używane w przypadku nowej instancji klasy ByteArray. | ByteArray | ||
| endian : String
Powoduje zmianę lub odczytuje kolejność bajtów dla danych; Endian.BIG_ENDIAN lub Endian.LITTLE_ENDIAN. | ByteArray | ||
| length : uint
Długość obiektu ByteArray w bajtach. | ByteArray | ||
| objectEncoding : uint
Pozwala określić, czy podczas zapisywania w instancji klasy ByteArray lub czytania z niej, ma być używany format ActionScript 3.0, ActionScript 2.0 czy ActionScript 1.0. | ByteArray | ||
| position : uint
Przenosi lub zwraca bieżące położenie wskaźnika plików do obiektu ByteArray. | ByteArray | ||
| shareable : Boolean
Określa, czy podstawowa pamięć tablicy bajtów może być współużytkowana. | ByteArray | ||
| Metoda | Zdefiniowane przez | ||
|---|---|---|---|
Tworzy instancję klasy ByteArray, która reprezentuję upakowaną tablicę bajtów. Dzięki niej metody i właściwości tej klasy mogą być stosowane do optymalizowania zapisu danych i przetwarzania strumieniowego. | ByteArray | ||
Metoda ta w ramach pojedynczej operacji atomowej porównuje wartość całkowitą w tej tabeli bajtów z inną wartością całkowitą, a jeśli wartości są zgodne, zamienia bajty na tę inną wartość. | ByteArray | ||
W ramach pojedynczej operacji atomowej porównuje długość tej tablicy bajtów z podaną wartością, a w przypadku zgodnych wartości zmienia długość tablicy bajtów. | ByteArray | ||
Aplikacja usunie zawartość tablicy bajtów i ustawi dla właściwości length i position wartość 0. | ByteArray | ||
Kompresuje tablicę bajtów. | ByteArray | ||
Kompresuje tablicę bajtów przy użyciu algorytmu kompresji deflate. | ByteArray | ||
![]() |
Wskazuje, czy dla obiektu zdefiniowano określoną właściwość. | Object | |
Dekompresuje tablicę bajtów przy użyciu algorytmu kompresji deflate. | ByteArray | ||
![]() |
Wskazuje, czy instancja klasy Object należy do łańcucha prototypów obiektu określonego jako parametr. | Object | |
![]() |
Wskazuje, czy określona właściwość istnieje i jest przeliczalna. | Object | |
Czyta ze strumienia bajtów wartość typu Boolean. | ByteArray | ||
Czyta ze strumienia bajtów bajt ze znakiem. | ByteArray | ||
Pozwala odczytać ze strumienia bajtów liczbę bajtów określoną przez parametr długość. | ByteArray | ||
Czyta ze strumienia bajtów liczbę zmiennoprzecinkową o podwójnej precyzji (64 bity, IEEE 754). | ByteArray | ||
Czyta ze strumienia bajtów liczbę zmiennoprzecinkową o pojedynczej precyzji (32 bity, IEEE 754). | ByteArray | ||
Czyta ze strumienia bajtów 32-bitową liczbę całkowitą ze znakiem. | ByteArray | ||
Czyta ze strumienia bajtów wielobajtowy ciąg o określonej długości, korzysając z określonego zestawu znaków. | ByteArray | ||
readObject():*
Czyta z tablicy bajtów obiekt zakodowany w formacie serializowanym AMF. | ByteArray | ||
Czyta ze strumienia bajtów 16-bitową liczbę całkowitą ze znakiem. | ByteArray | ||
Czyta ze strumienia bajtów bajt bez znaku. | ByteArray | ||
Czyta ze strumienia bajtów 32-bitową liczbę całkowitą bez znaku. | ByteArray | ||
Czyta ze strumienia bajtów 16-bitową liczbę całkowitą bez znaku. | ByteArray | ||
Czyta ze strumienia bajtów ciąg znaków UTF-8. | ByteArray | ||
Czyta ze strumienia bajtów sekwencję bajtów UTF-8 określoną przez parametr długość, a zwraca ciąg znaków. | ByteArray | ||
![]() |
Ustawia dostępność właściwości dynamicznej używanej w pętlach. | Object | |
Dostarcza możliwą do przesłonięcia metodę, która pozwala na dostosowywanie kodowania JSON wartości w obiekcie ByteArray. | ByteArray | ||
![]() |
Zwraca ciąg reprezentujący obiekt — sformatowany zgodnie z konwencjami właściwymi dla ustawień regionalnych. | Object | |
Konwertuje tablicę bajtów na ciąg znaków. | ByteArray | ||
Dekompresuje tablicę bajtów. | ByteArray | ||
![]() |
Zwraca pierwotną wartość dla określonego obiektu. | Object | |
Zapisuje wartość typu Boolean. | ByteArray | ||
Zapisuje bajt w strumieniu bajtów. | ByteArray | ||
Zapisuje w strumieniu bajtów sekwencję bajtów o podanej długości (zmienna length) z podanej tablicy bajtów (zmienna bytes), zaczynając od podanej pozycji początkowej (zmienna offset, przy indeksie liczonym od zera). | ByteArray | ||
Zapisuje w strumieniu bajtów liczbę zmiennoprzecinkową o podwójnej precyzji (64 bity, IEEE 754). | ByteArray | ||
Zapisuje w strumieniu bajtów liczbę zmiennoprzecinkową o pojedynczej precyzji (32 bity, IEEE 754). | ByteArray | ||
Zapisuje w strumieniu bajtów 32-bitową liczbę całkowitą ze znakiem. | ByteArray | ||
Zapisuje w strumieniu bajtów wielobajtowy ciąg przy użyciu określonego zestawu znaków. | ByteArray | ||
Zapisuje obiekt w tablicy bajtów w formacie serializowanym AMF. | ByteArray | ||
Zapisuje w strumieniu bajtów 16-bitową liczbę całkowitą. | ByteArray | ||
Zapisuje w strumieniu bajtów 32-bitową liczbę całkowitą bez znaku. | ByteArray | ||
Zapisuje w strumieniu bajtów ciąg znaków UTF-8. | ByteArray | ||
Zapisuje w strumieniu bajtów ciąg UTF-8. | ByteArray | ||
bytesAvailable | właściwość |
bytesAvailable:uint [tylko do odczytu] | Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Liczba bajtów, które można odczytać z tablicy bajtów, począwszy od bieżącej pozycji do końca tablicy.
Przy każdej operacji uzyskiwania dostępu do obiektu ByteArray razem z metodami odczytu należy korzystać z właściwości bytesAvailable, aby upewnić się, że odczytywane są odpowiednie dane.
Implementacja
public function get bytesAvailable():uintdefaultObjectEncoding | właściwość |
defaultObjectEncoding:uint| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Oznacza domyślne kodowanie obiektów dotyczące klasy ByteArray, które będzie używane w przypadku nowej instancji klasy ByteArray. Po utworzeniu nowej instancji ByteArray kodowanie tej instancji rozpoczyna się od wartości defaultObjectEncoding. Właściwość defaultObjectEncoding zostaje zainicjowana wartością ObjectEncoding.AMF3.
Podczas zapisywania lub odczytywania obiektu z danych binarnych używana jest wartość objectEncoding w celu określenia formatu, który powinien być używany: ActionScript 3.0, ActionScript2.0 lub ActionScript 1.0. Wartość jest stałą z klasy ObjectEncoding.
Implementacja
public static function get defaultObjectEncoding():uint public static function set defaultObjectEncoding(value:uint):voidPowiązane elementy interfejsu API
endian | właściwość |
endian:String| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Powoduje zmianę lub odczytuje kolejność bajtów dla danych: Endian.BIG_ENDIAN lub Endian.LITTLE_ENDIAN. Wartość domyślna to BIG_ENDIAN.
Implementacja
public function get endian():String public function set endian(value:String):voidPowiązane elementy interfejsu API
length | właściwość |
length:uint| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Długość obiektu ByteArray w bajtach.
Jeśli dla długości ustawiona jest wartość większa niż długość aktualna, prawa strona tablicy bajtów zostanie zapełniona zerami.
Jeśli dla długości ustawiona jest wartość mniejsza niż długość aktualna, tablica bajtów zostanie przycięta.
Implementacja
public function get length():uint public function set length(value:uint):voidobjectEncoding | właściwość |
objectEncoding:uint| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Pozwala określić, czy podczas zapisywania w instancji klasy ByteArray lub czytania z niej, ma być używany format ActionScript 3.0, ActionScript 2.0 czy ActionScript 1.0. Wartość jest stałą z klasy ObjectEncoding.
Implementacja
public function get objectEncoding():uint public function set objectEncoding(value:uint):voidPowiązane elementy interfejsu API
position | właściwość |
position:uint| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Przenosi lub zwraca bieżące położenie wskaźnika plików do obiektu ByteArray. Jest to miejsce, w którym kolejne wywołanie metody odczytu powoduje odczytywanie, a wywołanie metody zapisu powoduje zapisywanie.
Implementacja
public function get position():uint public function set position(value:uint):voidshareable | właściwość |
shareable:Boolean| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | Flash Player 11.5, AIR 3.5 |
Określa, czy podstawowa pamięć tablicy bajtów ma właściwość shareable (jest współużytkowana). W przypadku współużytkowanej tablicy bajtów wszystkie wystąpienia klasy ByteArray we wszystkich procesach roboczych odnoszących się do tablicy bajtów korzystają z tej samej podstawowej pamięci systemowej. Wartością domyślną jest false, co oznacza, że pamięć podstawowa nie jest współużytkowana przez procesy robocze.
Ta właściwość ma także wpływ na działania środowiska wykonawczego w odniesieniu do tej tablicy bajtów, jeśli została ona przekazana do procesu roboczego przy użyciu metody Worker.setSharedProperty() lub MessageChannel.send().
- Niewspółużytkowana: Jeżeli ta właściwość ma wartość
false, po przekazaniu tablicy bajtów do procesu roboczego środowisko wykonawcze tworzy pełną kopię tablicy bajtów, przydzielając nowy segment pamięci, w którym ma być przechowywana zawartość zduplikowanej tablicy bajtów. - Współużytkowana: Jeżeli ta właściwość ma wartość
true, po przekazaniu tablicy bajtów do procesu roboczego środowisko wykonawcze używa tej samej pamięci podstawowej jako bufora do przechowywania zawartości zarówno oryginalnego wystąpienia klasy ByteArray, jak i nowego wystąpienia utworzonego dla drugiego procesu roboczego. Oba wystąpienia klasy ByteArray zawierają odniesienia do tej samej podstawowej tablicy bajtów.
Możliwość jednoczesnego uzyskania dostępu do współużytkowanej tablicy bajtów przez wiele procesów roboczych może spowodować niepożądaną sytuację, w której oba procesy robocze równocześnie modyfikują zawartość pamięci podstawowej tablicy bajtów. Dostępem do pamięci współużytkowanej można sterować za pomocą kilku mechanizmów:
- Mechanizmy porównywania i zamiany są udostępniane przez metody
atomicCompareAndSwapIntAt()iatomicCompareAndSwapLength()klasy ByteArray. - Specjalistyczne mechanizmy są dostarczane przez klasy Mutex i Condition (w pakiecie flash.concurrent).
Ustawienie tej właściwości na wartość true wpływa wyłącznie na dalszy kod przekazujący tę tablicę bajtów do procesu roboczego. Wszystkie kopie tej tablicy bajtów, które zostały już przekazane do procesu roboczego, istnieją jako oddzielne kopie.
Jeśli wartość true właściwości zostanie zmieniona na wartość false, podstawowa pamięć tablicy bajtów zostanie natychmiast skopiowana do nowego segmentu pamięci systemowej. Od tego momentu wystąpienie klasy ByteArray będzie używać nowej pamięci podstawowej. W związku z tym podstawowa pamięć tej tablicy bajtów nie będzie już współużytkowana z innymi procesami roboczymi. Jeżeli tablica bajtów zostanie następnie przekazana do procesu roboczego, jej pamięć podstawowa zostanie skopiowana, tak jak w przypadku każdego obiektu ByteArray, którego właściwość shareable ma wartość false.
Wartością domyślną jest false.
Implementacja
public function get shareable():Boolean public function set shareable(value:Boolean):voidPowiązane elementy interfejsu API
ByteArray | () | Konstruktor |
public function ByteArray()| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Tworzy wystąpienie klasy ByteArray, która reprezentuję upakowaną tablicę bajtów. Dzięki niej metody i właściwości tej klasy mogą być stosowane do optymalizowania zapisu danych i przetwarzania strumieniowego.
atomicCompareAndSwapIntAt | () | metoda |
public function atomicCompareAndSwapIntAt(byteIndex:int, expectedValue:int, newValue:int):int| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | Flash Player 11.5, AIR 3.5 |
Metoda ta w ramach pojedynczej operacji atomowej porównuje wartość całkowitą w tej tabeli bajtów z inną wartością całkowitą, a jeśli wartości są zgodne, zamienia bajty na inną wartość.
Ta metoda powinna być stosowana z tablicą bajtów, której pamięć jest współużytkowana przez wiele procesów roboczych (gdy właściwość shareable wystąpienia klasy ByteArray ma wartość true). Metoda wykonuje następującą sekwencję kroków:
- Odczytuje wartość całkowitą z tej tablicy bajtów, rozpoczynając od indeksu określonego (w bajtach) w argumencie
byteIndex. - Porównuje faktyczną wartość z tej tablicy bajtów oraz wartość przekazaną w argumencie
expectedValue. - Jeśli obie wartości są równe, zapisuje wartość argumentu
newValuew tablicy bajtów w lokalizacji określonej przez parametrbyteIndexoraz zwraca wartość, która była wcześniej zapisana w tych bajtach (wartość odczytaną w kroku 1). - W przeciwnym wypadku zawartość tablicy bajtów nie ulega zmianie, a metoda zwraca faktyczną wartość odczytaną z tablicy bajtów.
Wszystkie te kroki są wykonywane w ramach pojedynczej atomowej transakcji sprzętowej. Gwarantuje to, że podczas operacji porównywania i zamiany żadne operacje z innych procesów roboczych nie zmodyfikują zawartości tablicy bajtów.
Parametry
byteIndex:int — Pozycja indeksu (w bajtach), z której odczytywana jest wartość całkowita do porównania, oraz do której zapisywana jest wartość newValue, jeśli porównanie daje zgodny wynik. Ta wartość musi być wielokrotnością liczby 4.
| |
expectedValue:int — Wartość, która powinna być zgodna z zawartością tablicy bajtów w określonym indeksie.
| |
newValue:int — Nowa wartość, która zastępuje zawartość tablicy bajtów w określonym indeksie, jeśli porównanie daje zgodny wynik.
|
int — Poprzednia wartość w określonej lokalizacji, jeśli porównywane wyniki są zgodne, lub faktyczna wartość z tablicy bajtów, jeżeli wartości faktyczna i oczekiwana są niezgodne.
|
Zgłasza
ArgumentError — Jeśli wartość byteIndex nie jest wielokrotnością liczby 4 lub jest ujemna.
|
Powiązane elementy interfejsu API
atomicCompareAndSwapLength | () | metoda |
public function atomicCompareAndSwapLength(expectedLength:int, newLength:int):int| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | Flash Player 11.5, AIR 3.5 |
W ramach pojedynczej operacji atomowej porównuje długość tej tablicy bajtów z podaną wartością, a w przypadku zgodnych wartości zmienia długość tablicy bajtów.
Ta metoda powinna być stosowana z tablicą bajtów, której pamięć jest współużytkowana przez wiele procesów roboczych (gdy właściwość shareable wystąpienia klasy ByteArray ma wartość true). Metoda wykonuje następujące kroki:
- Odczytuje wartość całkowitą właściwości
lengthwystąpienia klasy ByteArray. - Porównuje długość z wartością przekazaną w argumencie
expectedLength. - Jeśli dwie wartości są zgodne, zmienia długość tablicy bajtów na wartość przekazaną w parametrze
newLength, zwiększając lub zmniejszając rozmiar tablicy bajtów. - W przeciwnym wypadku tablica bajtów nie ulega zmianie.
Wszystkie te kroki są wykonywane w ramach pojedynczej atomowej transakcji sprzętowej. Gwarantuje to, że podczas operacji porównywania i zmiany rozmiaru żadne operacje z innych procesów roboczych nie zmodyfikują zawartości tablicy bajtów.
Parametry
expectedLength:int — Oczekiwana wartość właściwości length klasy ByteArray. Jeśli określona wartość i faktyczna wartość są zgodne, długość tablicy bajtów jest modyfikowana.
| |
newLength:int — Nowa wartość długości dla tablicy bajtów w przypadku pomyślnego wyniku porównania.
|
int — Poprzednia wartość właściwości length klasy ByteArray niezależnie od tego, czy uległa zmianie.
|
Powiązane elementy interfejsu API
clear | () | metoda |
public function clear():void| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Aplikacja usunie zawartość tablicy bajtów i ustawi dla właściwości length i position wartość 0. Jawne wywołanie tej metody powoduje zwolnienie pamięci używanej przez instancję ByteArray.
compress | () | metoda |
public function compress(algorithm:String):void| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Kompresuje tablicę bajtów. Cała tablica bajtów jest skompresowana. Po wywołaniu właściwość length obiektu ByteArray zostanie ustawiona na nową długość. Właściwość position została ustawiona na końcu tablicy bajtów.
Aby określić algorytm kompresji, należy przekazać wartość (zdefiniowaną w klasie CompressionAlgorithm) jako parametr algorithm. Są obsługiwane następujące algorytmy:
Format danych skompresowanych zlib został opisany na stronie: http://www.ietf.org/rfc/rfc1950.txt.
Algorytm kompresji deflate został opisany na stronie: http://www.ietf.org/rfc/rfc1951.txt.
Opis algorytmu kompresji LZMA można znaleźć na stronie http://www.7-zip.org/7z.html.
Algorytm kompresji deflate jest używany w kilku formatach kompresji, takich jak zlib, gzip, niektóre implementacje zip oraz inne. Gdy dane są kompresowane przy użyciu jednego z tych formatów kompresji, wówczas — oprócz zapisywania skompresowanej wersji oryginalnych danych — dane formatu kompresji (np. plik .zip) zawierają również metadane. Niektóre przykłady typów metadanych zawartych w różnych formatach plików obejmują: nazwy plików, daty/godziny modyfikacji pliku, oryginalne rozmiary plików, opcjonalne komentarze, sumy kontrolne i wiele więcej.
Na przykład: gdy obiekt ByteArray zostanie skompresowany za pomocą algorytmu zlib, wynikowy obiekt ByteArray otrzyma określoną strukturę i format. Niektóre bajty będą zawierały metadane dotyczące danych skompresowanych, inne bajty będą zawierały rzeczywistą skompresowaną wersję oryginalnych danych ByteArray. Zgodnie z definicją specyfikacji formatu skompresowanych danych zlib (tj. cześć, która zawiera skompresowaną postać danych oryginalnych) — dane są kompresowane przy użyciu algorytmu deflate. Dlatego te bajty są identyczne z wynikiem wywołania compress(air.CompressionAlgorithm.DEFLATE) dla pierwotnego obiektu ByteArray. Jednak wynik wywołania compress(air. CompressionAlgorithm.ZLIB) zawiera dodatkowe metadane, podczas gdy wynik wywołania compress(CompressionAlgorithm.DEFLATE) zawiera jedynie skompresowaną wersję oryginalnych danych obiektu ByteArray i nic poza tym.
Aby użyć formatu deflate do kompresji danych instancji ByteArray do określonego formatu, takiego jak gzip lub zip, nie wystarczy wywołać metody compress(CompressionAlgorithm.DEFLATE). Należy utworzyć strukturę obiektu ByteArray zgodnie ze specyfikacją formatu kompresji, łącznie z odpowiednimi metadanymi, a także danymi skompresowanymi uzyskanymi za pomocą formatu deflate. I podobnie — w celu dekodowania danych skompresowanych w formacie, takim jak gzip lub zip, nie wystarczy wywołać metody uncompress(CompressionAlgorithm.DEFLATE) dla danych. Najpierw należy oddzielić metadane od danych skompresowanych, a następnie można użyć formatu deflate w celu dokonania dekompresji skompresowanych danych.
Parametry
algorithm:String (default = NaN) — Używany algorytm kompresowania. Poprawne wartości są definiowane jako stałe w klasie CompressionAlgorithm. Domyślnie używany jest format zlib. Wywołanie compress(CompressionAlgorithm.DEFLATE) daje w wyniku takie samo działanie jak wywołanie metody deflate(). W programie Flash Player 11.3 i środowisku AIR 3.3 dodano obsługę algorytmu LZMA. Do korzystania z kompresji LZMA jest wymagana podana lub wyższa wersja odtwarzacza.
|
Powiązane elementy interfejsu API
deflate | () | metoda |
public function deflate():void| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Kompresuje tablicę bajtów przy użyciu algorytmu kompresji deflate. Cała tablica bajtów do skompresowania.
Po wywołaniu właściwość length obiektu ByteArray zostanie ustawiona na nową długość. Właściwość position została ustawiona na końcu tablicy bajtów.
Algorytm kompresji deflate został opisany na stronie: http://www.ietf.org/rfc/rfc1951.txt.
Aby użyć formatu deflate do kompresji danych instancji ByteArray do określonego formatu, takiego jak gzip lub zip, nie wystarczy wywołać metody deflate(). Należy utworzyć strukturę obiektu ByteArray zgodnie ze specyfikacją formatu kompresji, łącznie z odpowiednimi metadanymi, a także danymi skompresowanymi uzyskanymi za pomocą formatu deflate. I podobnie — w celu dekodowania danych skompresowanych w formacie, takim jak gzip lub zip, nie wystarczy wywołać metody inflate() dla danych. Najpierw należy oddzielić metadane od danych skompresowanych, a następnie można użyć formatu deflate w celu dokonania dekompresji skompresowanych danych.
Powiązane elementy interfejsu API
inflate | () | metoda |
public function inflate():void| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 10 |
Dekompresuje tablicę bajtów przy użyciu algorytmu kompresji deflate. Należy zastosować ten sam algorytm, który był stosowany podczas kompresowania tablicy bajtów.
Po wywołaniu właściwość length obiektu ByteArray zostanie ustawiona na nową długość. Dla właściwości position ustawiono wartość 0.
Algorytm kompresji deflate został opisany na stronie: http://www.ietf.org/rfc/rfc1951.txt.
W celu zdekodowania danych skompresowanych w formacie, który korzysta z algorytmu kompresji deflate (np. format gzip lub zip), wywołanie jedynie metody inflate() dla obiektu ByteArray zawierającego dane formatu kompresji nie będzie wystarczające. Najpierw należy oddzielić metadane, które stanowią część formatu skompresowanych danych, od rzeczywistych skompresowanych danych. Więcej informacji zawiera opis metody compress().
Zgłasza
IOError — Dane nie są poprawnymi danymi skompresowanymi; nie zostały skompresowane przy użyciu tego samego algorytmu kompresowania.
|
Powiązane elementy interfejsu API
readBoolean | () | metoda |
public function readBoolean():Boolean| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Czyta ze strumienia bajtów wartość typu Boolean. Po odczytaniu jednego bajtu metoda zwraca true, jeśli bajt jest wartością niezerową; w przeciwnym wypadku false.
Boolean — Zwraca wartość true, jeśli wartość jest niezerowa — w przeciwnym wypadku false.
|
Zgłasza
EOFError — Brak wystarczającej ilości danych do odczytania.
|
readByte | () | metoda |
public function readByte():int| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Czyta ze strumienia bajtów bajt ze znakiem.
Zwrócona wartość należy do zakresu od –128 do 127.
Zwracaint — Liczba całkowita z zakresu od -128 do 127.
|
Zgłasza
EOFError — Brak wystarczającej ilości danych do odczytania.
|
readBytes | () | metoda |
public function readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Pozwala odczytać ze strumienia bajtów liczbę bajtów określoną przez parametr lenght. Bajty są odczytywane do obiektu ByteArray określonego przez parametr bytes, a następnie bajty są zapisywane do docelowej tablicy ByteArray począwszy od pozycji określonej przez parametr offset.
Parametry
bytes:ByteArray — Obiekt ByteArray, do którego nastąpi odczyt danych.
| |
offset:uint (default = 0) — Przesunięcie (pozycja) (bytes), od którego powinny być zapisywane odczytane dane.
| |
length:uint (default = 0) — Liczba bajtów do odczytania. Domyślna wartość 0 powoduje odczyt wszystkich dostępnych danych.
|
Zgłasza
EOFError — Brak wystarczającej ilości danych do odczytania.
| |
RangeError — Suma podanego przesunięcia i długości jest większa niż wartość maksymalna dla typu uint.
|
readDouble | () | metoda |
public function readDouble():Number| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Czyta ze strumienia bajtów liczbę zmiennoprzecinkową o podwójnej precyzji (64 bity, IEEE 754).
ZwracaNumber — Liczba zmiennoprzecinkowa o podwójnej precyzji (64-bitowa).
|
Zgłasza
EOFError — Brak wystarczającej ilości danych do odczytania.
|
readFloat | () | metoda |
public function readFloat():Number| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Czyta ze strumienia bajtów liczbę zmiennoprzecinkową o pojedynczej precyzji (32 bity, IEEE 754).
ZwracaNumber — Liczba zmiennoprzecinkowa o pojedynczej precyzji (32-bitowa).
|
Zgłasza
EOFError — Brak wystarczającej ilości danych do odczytania.
|
readInt | () | metoda |
public function readInt():int| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Czyta ze strumienia bajtów 32-bitową liczbę całkowitą ze znakiem.
Zwrócona wartość należy do zakresu od –2147483648 do 2147483647.
Zwracaint — 32-bitowa liczba całkowita ze znakiem z zakresu od -2147483648 do 2147483647.
|
Zgłasza
EOFError — Brak wystarczającej ilości danych do odczytania.
|
readMultiByte | () | metoda |
public function readMultiByte(length:uint, charSet:String):String| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Czyta ze strumienia bajtów wielobajtowy ciąg o określonej długości, korzysając z określonego zestawu znaków.
Parametry
length:uint — Ilość bajtów do odczytu ze strumienia bajtów.
| |
charSet:String — Ciąg znaków oznaczający zestaw znaków, który ma być używany do interpretacji bajtów. Dozwolone zestawy znaków to: „shift-jis”, „cn-gb”, „iso-8859-1” i inne. Pełną listę zawiera sekcja Obsługiwane zestawy znaków.
Uwaga: Jeżeli wartość parametru |
String — Ciąg znaków kodowany systemem UTF-8.
|
Zgłasza
EOFError — Brak wystarczającej ilości danych do odczytania.
|
readObject | () | metoda |
public function readObject():*| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Czyta z tablicy bajtów obiekt zakodowany w formacie serializowanym AMF.
Zwraca* — Obiekt w postaci innej niż serializowana.
|
Zgłasza
EOFError — Brak wystarczającej ilości danych do odczytania.
|
Powiązane elementy interfejsu API
readShort | () | metoda |
public function readShort():int| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Czyta ze strumienia bajtów 16-bitową liczbę całkowitą ze znakiem.
Zwrócona wartość należy do zakresu od -32768 do 32767.
Zwracaint — 16-bitowa liczba całkowita ze znakiem z zakresu od -32768 do 32767.
|
Zgłasza
EOFError — Brak wystarczającej ilości danych do odczytania.
|
readUnsignedByte | () | metoda |
public function readUnsignedByte():uint| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Czyta ze strumienia bajtów bajt bez znaku.
Zwrócona wartość należy do zakresu od 0 do 255.
Zwracauint — 32-bitowa liczba całkowita bez znaku z zakresu od 0 do 255.
|
Zgłasza
EOFError — Brak wystarczającej ilości danych do odczytania.
|
readUnsignedInt | () | metoda |
public function readUnsignedInt():uint| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Czyta ze strumienia bajtów 32-bitową liczbę całkowitą bez znaku.
Zwrócona wartość należy do zakresu od 0 do 4294967295.
Zwracauint — 32-bitowa liczba całkowita bez znaku z zakresu od 0 do 4294967295.
|
Zgłasza
EOFError — Brak wystarczającej ilości danych do odczytania.
|
readUnsignedShort | () | metoda |
public function readUnsignedShort():uint| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Czyta ze strumienia bajtów 16-bitową liczbę całkowitą bez znaku.
Zwrócona wartość należy do zakresu od 0 do 65535.
Zwracauint — 16-bitowa liczba całkowita bez znaku z zakresu od 0 do 65535.
|
Zgłasza
EOFError — Brak wystarczającej ilości danych do odczytania.
|
readUTF | () | metoda |
public function readUTF():String| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Czyta ze strumienia bajtów ciąg znaków UTF-8. Zakłada się, że ciąg jest poprzedzony prefiksem w postaci liczby typu short bez znaku, która określa długość ciągu w bajtach.
ZwracaString — Ciąg znaków zakodowany w systemie UTF-8.
|
Zgłasza
EOFError — Brak wystarczającej ilości danych do odczytania.
|
Powiązane elementy interfejsu API
readUTFBytes | () | metoda |
public function readUTFBytes(length:uint):String| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Czyta ze strumienia bajtów sekwencję bajtów UTF-8 określoną przez parametr length, a zwraca ciąg znaków.
Parametry
length:uint — Wartość short bez znaku określająca długość bajtów UTF-8.
|
String — Ciąg znaków złożony z bajtów UTF-8, o określonej długości.
|
Zgłasza
EOFError — Brak wystarczającej ilości danych do odczytania.
|
toJSON | () | metoda |
public function toJSON(k:String):*| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | Flash Player 11, AIR 3, Flash Lite 4 |
Dostarcza możliwą do przesłonięcia metodę, która pozwala na dostosowywanie kodowania JSON wartości w obiekcie ByteArray.
Metoda JSON.stringify() szuka metody toJSON() w każdym obiekcie, który przegląda. Jeżeli metoda toJSON() zostanie odnaleziona, metoda JSON.stringify() wywołuję ją dla każdej wartości, którą napotka, przekazując klucz będący w parze z tą wartością.
Obiekt ByteArray dostarcza domyślną implementację metody toJSON() zwracającą po prostu nazwę klasy. Zawartość każdego obiektu ByteArray wymaga interpretacji, dlatego klienci, którzy chcą eksportować obiekty ByteArray do klasy JSON, muszą dostarczyć swoje własne implementacje. Można to zrobić, ponownie definiując metodę toJSON() prototypu klasy.
Metoda toJSON() może zwracać wartość dowolnego typu. W przypadku zwrócenia obiektu metoda stringify() przeszukuje rekurencyjnie ten obiekt. Jeżeli metoda toJSON() zwraca ciąg, to metoda stringify() nie działania rekurencyjnie i kontynuuje przeglądanie.
Parametry
k:String — Klucz z pary klucz-wartość napotkany przez metodę JSON.stringify() podczas przeglądania tego obiektu.
|
* — Ciąg nazwy klasy.
|
Powiązane elementy interfejsu API
toString | () | metoda |
public function toString():String| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Konwertuje tablicę bajtów na ciąg znaków. Jeśli dane w tablicy rozpoczynają się znacznikiem kolejności bajtów Unicode, aplikacja będzie uwzględniała ten znacznik podczas konwertowania ciągu znaków. Jeśli dla właściwości System.useCodePage ustawiona jest wartość true, podczas konwersji aplikacja będzie traktować dane w tablicy jako podlegające bieżącej stronie kodowej systemu.
String — Ciąg znaków reprezentujący tablicę znaków.
|
uncompress | () | metoda |
public function uncompress(algorithm:String):void| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Dekompresuje tablicę bajtów. Po wywołaniu właściwość length obiektu ByteArray zostanie ustawiona na nową długość. Dla właściwości position ustawiono wartość 0.
Podczas dekompresji należy zastosować ten sam algorytm, który był używany podczas kompresowania tablicy bajtów. Aby określić algorytm dekompresji, należy przekazać wartość (zdefiniowaną w klasie CompressionAlgorithm) jako parametr algorithm. Są obsługiwane następujące algorytmy:
Format danych skompresowanych zlib został opisany na stronie: http://www.ietf.org/rfc/rfc1950.txt.
Algorytm kompresji deflate został opisany na stronie: http://www.ietf.org/rfc/rfc1951.txt.
Opis algorytmu kompresji LZMA można znaleźć na stronie http://www.7-zip.org/7z.html.
W celu zdekodowania danych skompresowanych w formacie, który korzysta z algorytmu kompresji deflate (np. format gzip lub zip), wywołanie metody uncompress(CompressionAlgorithm.DEFLATE) dla obiektu ByteArray zawierającego dane formatu kompresji nie będzie wystarczające. Najpierw należy oddzielić metadane, które stanowią część formatu skompresowanych danych, od rzeczywistych skompresowanych danych. Więcej informacji zawiera opis metody compress().
Parametry
algorithm:String (default = NaN) — Algorytm kompresowania używany do dekompresowania. Musi to być ten sam algorytm kompresowania, który był używany do kompresowania danych. Poprawne wartości są definiowane jako stałe w klasie CompressionAlgorithm. Domyślnie używany jest format zlib. W programie Flash Player 11.3 i środowisku AIR 3.3 dodano obsługę algorytmu LZMA. Do korzystania z kompresji LZMA jest wymagana podana lub wyższa wersja odtwarzacza.
|
Zgłasza
IOError — Dane nie są poprawnymi danymi skompresowanymi; nie zostały skompresowane przy użyciu tego samego algorytmu kompresowania.
|
Powiązane elementy interfejsu API
writeBoolean | () | metoda |
public function writeBoolean(value:Boolean):void| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Zapisuje wartość typu Boolean. Zapisany zostanie pojedynczy bajt zgodnie z parametrem value — 1 dla true lub 0 dla false.
Parametry
value:Boolean — Wartość typu Boolean, która określa zapisywany bajt. Jeśli parametr ma wartość true, metoda zapisuje 1; w przypadku false metoda zapisuje 0.
|
writeByte | () | metoda |
public function writeByte(value:int):void| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Zapisuje bajt w strumieniu bajtów.
Używanych jest 8 najmłodszych bitów parametru. 24 starsze bity są ignorowane.
Parametry
value:int — 32-bitowa liczba całkowita. Do strumienia bajtów zostaje zapisanych 8 najmłodszych bitów.
|
writeBytes | () | metoda |
public function writeBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Zapisuje do strumienia bajtów sekwencję o długości length bajtów z określonej tablicy bajtów (zmienna bytes), zaczynając od podanego bajtu początkowego (zmienna offset, przy indeksie liczonym od zera).
Jeśli parametr length został pominięty, używana jest domyślna długość 0; metoda zapisuje cały bufor począwszy od miejsca offset. Jeśli parametr offset również został pominięty, zapisany zostanie cały bufor.
Jeśli wartość parametru offset lub length jest poza zakresem, parametry zostaną ograniczone do początku i końca tablicy bytes.
Parametry
bytes:ByteArray — Obiekt ByteArray.
| |
offset:uint (default = 0) — Indeks zliczany od zera, który wskazuje pozycję w tablicy, od której rozpocznie się zapisywanie.
| |
length:uint (default = 0) — Wartość integer bez znaku, która wskazuje odległość, do jakiej zostanie zapisany bufor.
|
writeDouble | () | metoda |
public function writeDouble(value:Number):void| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Zapisuje w strumieniu bajtów liczbę zmiennoprzecinkową o podwójnej precyzji (64 bity, IEEE 754).
Parametry
value:Number — Liczba zmiennoprzecinkowa o podwójnej precyzji (64-bitowa).
|
writeFloat | () | metoda |
public function writeFloat(value:Number):void| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Zapisuje w strumieniu bajtów liczbę zmiennoprzecinkową o pojedynczej precyzji (32 bity, IEEE 754).
Parametry
value:Number — Liczba zmiennoprzecinkowa o pojedynczej precyzji (32-bitowa).
|
writeInt | () | metoda |
writeMultiByte | () | metoda |
public function writeMultiByte(value:String, charSet:String):void| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Zapisuje w strumieniu bajtów wielobajtowy ciąg znaków, przy użyciu określonego zestawu znaków.
Parametry
value:String — Wartość ciągu znaków przeznaczona do zapisu.
| |
charSet:String — Ciąg znaków oznaczający zestaw znaków, który ma być używany. Dozwolone zestawy znaków to: „shift-jis”, „cn-gb”, „iso-8859-1” i inne. Pełną listę zawiera sekcja Obsługiwane zestawy znaków.
|
writeObject | () | metoda |
writeShort | () | metoda |
public function writeShort(value:int):void| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Zapisuje w strumieniu bajtów 16-bitową liczbę całkowitą. Używanych jest 16 najmłodszych bitów parametru. 16 bitów starszych zostaje zignorowane.
Parametry
value:int — 32-bitowa liczba całkowita, której 16 młodszych bajtów zostaje zapisanych do strumieni bajtów.
|
writeUnsignedInt | () | metoda |
public function writeUnsignedInt(value:uint):void| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Zapisuje w strumieniu bajtów 32-bitową liczbę całkowitą bez znaku.
Parametry
value:uint — Liczba całkowita bez znaku przeznaczona do zapisania w strumieniu bajtów.
|
writeUTF | () | metoda |
public function writeUTF(value:String):void| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Zapisuje w strumieniu bajtów ciąg znaków UTF-8. Długość ciągu znaków UTF-8 w bajtach jest zapisywana na początku jako 16-bitowa wartość integer, a po niej następują bajty reprezentujące znaki ciągu znaków.
Parametry
value:String — Wartość ciągu znaków przeznaczona do zapisu.
|
Zgłasza
RangeError — Jeśli długość jest większa niż 65535.
|
writeUTFBytes | () | metoda |
public function writeUTFBytes(value:String):void| Wersja języka: | ActionScript 3.0 |
| Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Zapisuje w strumieniu bajtów ciąg znaków UTF-8. Podobnie, jak metoda writeUTF(), ale metoda writeUTFBytes() nie umieszcza przed ciągiem znaków słowa o długości 16 bitów.
Parametry
value:String — Wartość ciągu znaków przeznaczona do zapisu.
|
ByteArrayExample w celu zapisania wartości typu Boolean oraz zmiennoprzecinkowej (o podwójnej precyzji) reprezentacji liczby pi w tablicy bajtów. W tym celu należy wykonać następujące czynności:
- Zadeklaruj nową instancję obiektu ByteArray:
byteArr. - Zapisz wartość (typu Boolean)
falsew postaci równoważnika bajtowego i sprawdź jego długość, a następnie odczytaj. - Zapisz zmiennoprzecinkowy równoważnik (o podwójnej precyzji) matematycznej wartości liczby pi.
- Odczytaj każdy z dziewięciu bajtów zapisanych do tablicy bajtów.
Uwaga: wywołanie metody trace() dla bajtu powoduje wyświetlenie dziesiętnego równoważnika bajtów zapisanych w tablicy bajtów.
Na końcu został dodany segment kodu — sprawdź zakończenie błędów pliku, aby upewnić się, że strumień bajtów nie został odczytany poza koniec.
package {
import flash.display.Sprite;
import flash.utils.ByteArray;
import flash.errors.EOFError;
public class ByteArrayExample extends Sprite {
public function ByteArrayExample() {
var byteArr:ByteArray = new ByteArray();
byteArr.writeBoolean(false);
trace(byteArr.length); // 1
trace(byteArr[0]); // 0
byteArr.writeDouble(Math.PI);
trace(byteArr.length); // 9
trace(byteArr[0]); // 0
trace(byteArr[1]); // 64
trace(byteArr[2]); // 9
trace(byteArr[3]); // 33
trace(byteArr[4]); // 251
trace(byteArr[5]); // 84
trace(byteArr[6]); // 68
trace(byteArr[7]); // 45
trace(byteArr[8]); // 24
byteArr.position = 0;
try {
trace(byteArr.readBoolean() == false); // true
}
catch(e:EOFError) {
trace(e); // EOFError: Error #2030: End of file was encountered.
}
try {
trace(byteArr.readDouble()); // 3.141592653589793
}
catch(e:EOFError) {
trace(e); // EOFError: Error #2030: End of file was encountered.
}
try {
trace(byteArr.readDouble());
}
catch(e:EOFError) {
trace(e); // EOFError: Error #2030: End of file was encountered.
}
}
}
}
Tue Jun 12 2018, 12:06 PM Z
Ukryj dziedziczone właściwości publiczne
Pokaż dziedziczone właściwości publiczne