| Пакет | flash.utils |
| Класс | public class ByteArray |
| Наследование | ByteArray Object |
| Реализует | IDataInput, IDataOutput |
| Подклассы | ByteArrayAsset |
| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Примечание. Класс ByteArray предназначен для опытных разработчиков, которым требуется доступ к данным на уровне байтов.
Данные в памяти представляют собой упакованный массив байтов (наиболее компактное представление типа данных), но с экземпляром класса ByteArray можно работать с использованием стандартных операторов [] (доступа к массивам). Чтение из него и запись в него можно осуществлять как в файл в памяти, с использованием методов, похожих на методы классов URLStream и Socket.
Кроме того, поддерживается сжатие и распаковка zlib, а также сериализация объекта Action Message Format (AMF).
Среди возможных вариантов использования класса ByteArray следующие:
- создание собственного протокола для подключения к серверу;
- написание собственных средств кодирования и раскодирования URL-адресов;
- написание собственного пакета AMF/Remoting;
- оптимизация размера данных с использованием типов данных;
- работа с двоичными данными, загруженными из файла в Adobe® AIR®.
Дополнительные примеры
Чтение и запись объектов ByteArray
Пример объекта ByteArray: чтение zip-файла
Связанные элементы API
| Свойство | Определено | ||
|---|---|---|---|
| bytesAvailable : uint [только для чтения]
Число байтов данных, доступных для чтения от текущей позиции в массиве байтов до конца массива. | ByteArray | ||
![]() | constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | |
| defaultObjectEncoding : uint [статические]
Обозначает кодировку объекта по умолчанию класса ByteArray для использования в новом экземпляре ByteArray. | ByteArray | ||
| endian : String
Изменяет или считывает порядок байтов данных: Endian.BIG_ENDIAN или Endian.LITTLE_ENDIAN. | ByteArray | ||
| length : uint
Длина объекта ByteArray в байтах. | ByteArray | ||
| objectEncoding : uint
Позволяет определить, какой формат — ActionScript 3.0, ActionScript 2.0 или ActionScript 1.0, — должен применяться при записи или чтении из экземпляра ByteArray. | ByteArray | ||
| position : uint
Перемещает или возвращает текущую позицию указателя файла в объекте ByteArray (в байтах). | ByteArray | ||
![]() | prototype : Object [статические]
Ссылка на модель объекта класса или функции. | Object | |
| Метод | Определено | ||
|---|---|---|---|
Создает экземпляр ByteArray, представляющий упакованный массив байтов. С помощью методов и свойств данного класса можно оптимизировать хранилище и поток данных. | ByteArray | ||
Удаляет содержимое массива байтов и сбрасывает значения length и position в значение 0. | ByteArray | ||
Упаковывает массив байтов. | ByteArray | ||
Сжимает массив байтов с использованием алгоритма сжатия DEFLATE. | ByteArray | ||
![]() |
Показывает, определено ли заданное свойство для объекта. | Object | |
Распаковывает массив байтов с использованием алгоритма сжатия DEFLATE. | ByteArray | ||
![]() |
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | |
![]() |
Показывает наличие заданного свойства и его перечисляемость. | Object | |
Считывает из потока байтов логическое значение. | ByteArray | ||
Считывает из потока байтов байт со знаком. | ByteArray | ||
Считывает из потока байтов число байтов данных, заданное параметром length. | ByteArray | ||
Считывает из потока байтов число IEEE 754 с двойной точностью (64-разрядное) и плавающей запятой. | ByteArray | ||
Считывает из потока байтов число IEEE 754 с одинарной точностью (32-разрядное) и плавающей запятой. | ByteArray | ||
Считывает из потока байтов 32-разрядное целое число со знаком. | ByteArray | ||
Считывает из потока байтов многобайтовую строку заданной длины с использованием заданного набора знаков. | ByteArray | ||
readObject():*
Считывает объект из массива байтов, зашифрованного в сериализованный формат AMF. | ByteArray | ||
Считывает из потока байтов 16-разрядное целое число со знаком. | ByteArray | ||
Считывает из потока байтов байт без знака. | ByteArray | ||
Считывает из потока байтов 32-разрядное целое число без знака. | ByteArray | ||
Считывает из потока байтов 16-разрядное целое число без знака. | ByteArray | ||
Считывает из потока байтов строку UTF-8. | ByteArray | ||
Считывает последовательность байтов UTF-8, заданную параметром length, из потока байтов и возвращает строку. | ByteArray | ||
![]() |
Задает доступность динамического свойства для операций цикла. | Object | |
Предоставляет переопределяемый метод, позволяющий настраивать кодировку JSON значений в объекте ByteArray. | ByteArray | ||
![]() |
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали. | Object | |
Преобразует массив байтов в строку. | ByteArray | ||
Распаковывает массив байтов. | ByteArray | ||
![]() |
Возвращает элементарное значение заданного объекта. | Object | |
Записывает логическое значение. | ByteArray | ||
Записывает байт в поток байтов. | ByteArray | ||
Записывает в поток байт последовательность байт длиной length из заданного массива байт (bytes), начиная со смещения offset (индекс отсчитывается от нуля). | ByteArray | ||
Записывает в поток байтов число IEEE 754 с двойной точностью (64-разрядное) и плавающей запятой. | ByteArray | ||
Записывает в поток байтов число IEEE 754 с одинарной точностью (32-разрядное) и плавающей запятой. | ByteArray | ||
Записывает в поток байтов 32-разрядное целое число со знаком. | ByteArray | ||
Записывает многобайтовую строку в поток байтов с использованием заданного набора знаков. | ByteArray | ||
Записывает объект в массив байтов в сериализованном формате AMF. | ByteArray | ||
Записывает в поток байтов 16-разрядное целое число. | ByteArray | ||
Записывает в поток байтов 32-разрядное целое число без знака. | ByteArray | ||
Записывает строку UTF-8 в поток байтов. | ByteArray | ||
Записывает строку UTF-8 в поток байтов. | ByteArray | ||
bytesAvailable | свойство |
bytesAvailable:uint [только для чтения] | Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Число байтов данных, доступных для чтения от текущей позиции в массиве байтов до конца массива.
Каждый раз, когда выполняется доступ к объекту ByteArray, в сочетании с методами чтения следует использовать свойство bytesAvailable. Это позволит обеспечить чтение действительных данных.
Реализация
public function get bytesAvailable():uintdefaultObjectEncoding | свойство |
defaultObjectEncoding:uint| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Обозначает кодировку объекта по умолчанию класса ByteArray для использования в новом экземпляре ByteArray. При создании экземпляра ByteArray используется значение кодировки defaultObjectEncoding. Свойство defaultObjectEncoding инициализируется в ObjectEncoding.AMF3.
Когда объект записывается или считывается из двоичных данных, свойство objectEncoding указывает используемую версию формата: формат ActionScript 3.0, ActionScript 2.0 или ActionScript 1.0. Значение представлено константой из класса ObjectEncoding.
Реализация
public static function get defaultObjectEncoding():uint public static function set defaultObjectEncoding(value:uint):voidСвязанные элементы API
flash.utils.ByteArray.objectEncoding
endian | свойство |
endian:String| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Изменяет или считывает порядок байтов данных: Endian.BIG_ENDIAN или Endian.LITTLE_ENDIAN.
Реализация
public function get endian():String public function set endian(value:String):voidСвязанные элементы API
length | свойство |
length:uint| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Длина объекта ByteArray в байтах.
Если длина установлена в значение, превышающее текущую длину, правая часть массива байтов заполняется нулями.
Если длина установлена в значение, меньшее текущей длины, выполняется усечение массива байтов.
Реализация
public function get length():uint public function set length(value:uint):voidobjectEncoding | свойство |
objectEncoding:uint| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Позволяет определить, какой формат — ActionScript 3.0, ActionScript 2.0 или ActionScript 1.0, — должен применяться при записи или чтении из экземпляра ByteArray. Значение представлено константой из класса ObjectEncoding.
Реализация
public function get objectEncoding():uint public function set objectEncoding(value:uint):voidСвязанные элементы API
flash.utils.ByteArray.defaultObjectEncoding
position | свойство |
position:uint| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Перемещает или возвращает текущую позицию указателя файла в объекте ByteArray (в байтах). При следующем вызове метода чтения с этого положения начинается чтение, а при вызове метода записи начинается запись.
Реализация
public function get position():uint public function set position(value:uint):voidByteArray | () | Конструктор |
public function ByteArray()| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Создает экземпляр ByteArray, представляющий упакованный массив байтов. С помощью методов и свойств данного класса можно оптимизировать хранилище и поток данных.
clear | () | метод |
public function clear():void| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Удаляет содержимое массива байтов и сбрасывает значения length и position в значение 0. При явном вызове этого метода высвобождается память, используемая экземпляром ByteArray.
compress | () | метод |
public function compress(algorithm:String):void| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Упаковывает массив байтов. Упаковывается весь массив байтов. Для содержимого, выполняемого в Adobe AIR, в качестве параметра algorithm можно указать алгоритм упаковки посредством передачи значения (определенного в классе CompressionAlgorithm). Flash Player поддерживает только алгоритм по умолчанию, zlib.
После вызова свойству length объекта ByteArray присваивается новая длина. Свойство position устанавливается в конец массива байтов.
Формат упакованных данных zlib описан в документе http://www.ietf.org/rfc/rfc1950.txt.
Алгоритм упаковки данных deflate описан в документе http://www.ietf.org/rfc/rfc1951.txt.
Алгоритм упаковки deflate используется в различных форматах упаковки (например, zlib, gzip, некоторых реализациях zip и в других). Когда данные упаковываются с использованием одного из этих форматов упаковки, помимо хранения упакованной версии исходных данных данные формата упаковки (например, ZIP-файл) также содержат метаданные. Далее приводится несколько примеров типов метаданных, включаемых в различные форматы файлов: имя файла, дата и время изменения файла, исходный размер файла, необязательные комментарии, контрольная сумма и другие данные.
Например, когда объект ByteArray сжимается с помощью алгоритма zlib, результирующий объект ByteArray получает структуру определенного формата. Определенные байты содержат метаданные об упакованных данных, а другие байты содержат сжатую версию исходных данных объекта ByteArray. Как определено спецификацией формата упакованных данных zlib, эти байты (то есть та часть, которая содержит упакованную версию исходных данных) сжимаются с использованием алгоритма deflate. Следовательно, в результате получаются байты, идентичные результату вызова compress( air. CompressionAlgorithm.DEFLATE) в отношении исходного ByteArray. Однако результат вызова compress(airCompressionAlgorithm.ZLIB) содержит дополнительные метаданные, тогда как результат вызова compress(CompressionAlgorithm.DEFLATE) содержит только сжатую версию исходных данных ByteArray и ничего больше.
Чтобы формат deflate можно было использовать для сжатия данных экземпляра ByteArray в определенный формат (например, gzip или zip), нельзя просто вызвать compress(CompressionAlgorithm.DEFLATE). Необходимо создать объект ByteArray со структурой, соответствующей спецификации формата упаковки, включающий соответствующие метаданные, а также упакованные данные, полученные с использованием формата deflate. Аналогично, чтобы раскодировать данные, упакованные в такой формат, как gzip или zip, по отношению к этим данным нельзя просто вызвать метод uncompress(CompressionAlgorithm.DEFLATE). Сначала необходимо отделить метаданные от упакованных данных, а затем использовать формат deflate для распаковки упакованных данных.
Параметры
algorithm:String — Алгоритм сжатия, используемый при упаковке. Доступные значения определены в виде констант в классе CompressionAlgorithm. Формат по умолчанию — zlib. Этот параметр распознается только для содержимого, выполняемого в Adobe AIR. Flash Player поддерживает только алгоритм по умолчанию zlib, и при попытке передать значение для этого параметра выдает исключение. Вызов compress(CompressionAlgorithm.DEFLATE) имеет тот же результат, что и вызов метода deflate().
|
Связанные элементы API
deflate | () | метод |
public function deflate():void| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Сжимает массив байтов с использованием алгоритма сжатия DEFLATE. Сжимается весь массив байтов.
После вызова свойству length объекта ByteArray присваивается новая длина. Свойство position устанавливается в конец массива байтов.
Алгоритм упаковки данных deflate описан в документе http://www.ietf.org/rfc/rfc1951.txt.
Чтобы формат deflate можно было использовать для сжатия данных экземпляра ByteArray в определенный формат (например, gzip или zip), недостаточно просто вызвать deflate(). Необходимо создать объект ByteArray со структурой, соответствующей спецификации формата упаковки, включающий соответствующие метаданные, а также упакованные данные, полученные с использованием формата deflate. Чтобы раскодировать данные, сжатые в такой формат, как gzip или zip, также нельзя просто вызвать метод inflate() по отношению к этим данным. Сначала необходимо отделить метаданные от упакованных данных, а затем использовать формат deflate для распаковки упакованных данных.
Связанные элементы API
inflate | () | метод |
public function inflate():void| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 10 |
Распаковывает массив байтов с использованием алгоритма сжатия DEFLATE. Массив байтов должен быть сжат с использованием этого же алгоритма.
После вызова свойству length объекта ByteArray присваивается новая длина. Свойству position присваивается значение 0.
Алгоритм упаковки данных deflate описан в документе http://www.ietf.org/rfc/rfc1951.txt.
При раскодировании данных, сжатых в формат, использующий алгоритм сжатия DEFLATE (например, формат gzip или zip), вызов метода inflate() не сработает для объекта ByteArray, содержащего данные о сжатии. Сначала необходимо отделить метаданные, которые входят в состав упакованного формата данных, от самих сжатых данных. Дополнительную информацию см. в описании метода compress().
Выдает
IOError — Данные не являются допустимыми упакованными данными, они не были сжаты с использованием указанного алгоритма упаковки.
|
Связанные элементы API
readBoolean | () | метод |
public function readBoolean():Boolean| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает из потока байтов логическое значение. Считывается один байт. Если этот байт ненулевой, то возвращается значение true. В противном случае возвращается значение false.
Boolean — Возвращает значение true, если считывается ненулевой байт, в противном случае используется значение false.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
|
readByte | () | метод |
public function readByte():int| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает из потока байтов байт со знаком.
Возвращенное значение находится в диапазоне от -128 до 127.
Возвращаетint — Целое число между -128 и 127.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
|
readBytes | () | метод |
public function readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает из потока байтов число байтов данных, заданное параметром length. Байты считываются в объект ByteArray, определяемый параметром bytes, при этом байты записываются в целевой массив ByteArray, начиная с позиции, определяемой параметром offset.
Параметры
bytes:ByteArray — Объект ByteArray, в который считываются данные.
| |
offset:uint (default = 0) — Смещение (положение) в массиве bytes, начиная с которого должны быть прочитаны данные.
| |
length:uint (default = 0) — Число байтов для считывания. Если значение по умолчанию равно 0, считываются все доступные данные.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
| |
RangeError — Значение указанных смещения и длины вместе взятых больше максимального значения uint.
|
Дополнительные примеры
readDouble | () | метод |
public function readDouble():Number| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает из потока байтов число IEEE 754 с двойной точностью (64-разрядное) и плавающей запятой.
ВозвращаетNumber — Число с двойной точностью (64-разрядное) и плавающей запятой.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
|
readFloat | () | метод |
public function readFloat():Number| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает из потока байтов число IEEE 754 с одинарной точностью (32-разрядное) и плавающей запятой.
ВозвращаетNumber — Число с одинарной точностью (32-разрядное) и плавающей запятой.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
|
readInt | () | метод |
public function readInt():int| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает из потока байтов 32-разрядное целое число со знаком.
Возвращаемое значение находится в диапазоне от -2147483648 до 2147483647.
Возвращаетint — 32-разрядное целое число со знаком между -2147483648 и 2147483647.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
|
readMultiByte | () | метод |
public function readMultiByte(length:uint, charSet:String):String| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает из потока байтов многобайтовую строку заданной длины с использованием заданного набора знаков.
Параметры
length:uint — Число считываемых из потока байтов.
| |
charSet:String — Строка, обозначающая набор символов, которые используются для интерпретации байтов. Возможные строки наборов символов: "shift_jis", "cn-gb", "iso-8859-1" и другие. Полный список см. в разделе Поддерживаемые наборы символов.
Примечание. Если текущая система не распознает значение параметра |
String — Строка в кодировке UTF-8.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
|
readObject | () | метод |
public function readObject():*| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает объект из массива байтов, зашифрованного в сериализованный формат AMF.
Возвращает* — Десериализованный объект.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
|
Связанные элементы API
readShort | () | метод |
public function readShort():int| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает из потока байтов 16-разрядное целое число со знаком.
Возвращаемое значение находится в диапазоне от -32768 до 32767.
Возвращаетint — 16-разрядное целое число со знаком между -32768 и 32767.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
|
readUnsignedByte | () | метод |
public function readUnsignedByte():uint| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает из потока байтов байт без знака.
Возвращенное значение находится в диапазоне от 0 до 255.
Возвращаетuint — 32-разрядное беззнаковое целое число между 0 и 255.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
|
readUnsignedInt | () | метод |
public function readUnsignedInt():uint| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает из потока байтов 32-разрядное целое число без знака.
Возвращенное значение находится в диапазоне от 0 до 4294967295.
Возвращаетuint — 32-разрядное беззнаковое целое число между 0 и 4294967295.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
|
readUnsignedShort | () | метод |
public function readUnsignedShort():uint| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает из потока байтов 16-разрядное целое число без знака.
Возвращенное значение находится в диапазоне от 0 до 65535.
Возвращаетuint — 16-разрядное беззнаковое целое число между 0 и 65535.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
|
readUTF | () | метод |
public function readUTF():String| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает из потока байтов строку UTF-8. Предполагается, что в строку вставляется префикс с неподписанным значением, указывающим длину в байтах.
ВозвращаетString — Строка в кодировке UTF-8.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
|
Связанные элементы API
readUTFBytes | () | метод |
public function readUTFBytes(length:uint):String| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает последовательность байтов UTF-8, заданную параметром length, из потока байтов и возвращает строку.
Параметры
length:uint — Беззнаковое короткое целое число, указывающее длину в байтах UTF-8.
|
String — Строка заданной длины, состоящая из байтов UTF-8.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
|
toJSON | () | метод |
public function toJSON(k:String):*| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | Flash Player 11, AIR 3, Flash Lite 4 |
Предоставляет переопределяемый метод, позволяющий настраивать кодировку JSON значений в объекте ByteArray.
Метод JSON.stringify() ищет метод toJSON() в каждом объекте, который он проходит. В случае обнаружения toJSON() метод JSON.stringify() вызывает его для каждого обнаруженного значения, передавая ключ, составляющий пару с этим значением.
ByteArray обеспечивает реализацию по умолчанию для метода toJSON(), при которой просто возвращается имя класса. Поскольку содержимое любого объекта ByteArray требует интерпретации, если требуется экспортировать объекты ByteArray в JSON, необходимо настроить собственную реализацию. Для этого можно переопределить метод toJSON() в прототипе класса.
Метод toJSON() может возвращать значение любого типа. Если он возвращает объект, stringify() возвращается к этому объекту. Если toJSON() возвращает строку, stringify() не возвращается и продолжает прохождение.
Параметры
k:String — Ключ из пары «ключ/значение», обнаруженный методом JSON.stringify() при прохождении этого объекта
|
* — Строка имени класса.
|
Дополнительно
Связанные элементы API
Object.prototype
toString | () | метод |
public function toString():String| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Преобразует массив байтов в строку. Если данные массива начинаются маркером порядка байтов Unicode, во время преобразования данных в строку приложение учтет этот маркер. Если параметр System.useCodePage установлен в значение true, приложение будет обрабатывать данные массива во время преобразования как данные в текущей системной кодировке.
String — Строковое представление массива байтов.
|
uncompress | () | метод |
public function uncompress(algorithm:String):void| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Распаковывает массив байтов. Для содержимого, выполняемого в Adobe AIR, в качестве параметра algorithm можно указать алгоритм упаковки посредством передачи значения (определенного в классе CompressionAlgorithm). Массив байтов должен быть сжат с использованием этого же алгоритма. Flash Player поддерживает только алгоритм по умолчанию, zlib.
После вызова свойству length объекта ByteArray присваивается новая длина. Свойству position присваивается значение 0.
Формат упакованных данных zlib описан в документе http://www.ietf.org/rfc/rfc1950.txt.
Алгоритм упаковки данных deflate описан в документе http://www.ietf.org/rfc/rfc1951.txt.
При раскодировании данных, упакованных в формат, использующий алгоритм сжатия deflate (например, формат gzip или zip), вызов метода uncompress(CompressionAlgorithm.DEFLATE) не сработает для объекта ByteArray, содержащего метаданные. Сначала необходимо отделить метаданные, которые входят в состав упакованного формата данных, от самих сжатых данных. Дополнительную информацию см. в описании метода compress().
Параметры
algorithm:String — Алгоритм сжатия, используемый при распаковке. Это должен быть тот же алгоритм сжатия, который использовался для упаковки данных. Доступные значения определены в виде констант в классе CompressionAlgorithm. Формат по умолчанию — zlib. Этот параметр распознается только для содержимого, выполняемого в Adobe AIR. Flash Player поддерживает только алгоритм по умолчанию, zlib, и выдает исключение при попытке передать значение для этого параметра.
|
Выдает
IOError — Данные не являются допустимыми упакованными данными, они не были сжаты с использованием указанного алгоритма упаковки.
|
Связанные элементы API
writeBoolean | () | метод |
public function writeBoolean(value:Boolean):void| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Записывает логическое значение. Записывается один байт, соответствующий параметру value, 1 в случае значения true и 0 в случае значения false.
Параметры
value:Boolean — Логическое значение, показывающее, какой байт записывается. Если параметр содержит значение true, метод записывает 1. В случае значения false записывается 0.
|
writeByte | () | метод |
public function writeByte(value:int):void| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Записывает байт в поток байтов.
Используется 8 младших битов параметра. 24 старших битов игнорируются.
Параметры
value:int — 32-разрядное целое число. В поток байтов записываются младшие 8 бит.
|
writeBytes | () | метод |
public function writeBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Записывает в поток байт последовательность байт длиной length из заданного массива байт (bytes), начиная со смещения offset (индекс отсчитывается от нуля).
Если параметр length опущен, применение длины по умолчанию, равной 0, приведет к тому, что метод будет записывать весь буфер, начиная со смещения offset. Если также опустить параметр offset, будет записываться весь буфер.
Если параметры offset или length находятся за пределами диапазона, то они корректируются так, чтобы совпасть с началом и концом массива bytes.
Параметры
bytes:ByteArray — Объект ByteArray.
| |
offset:uint (default = 0) — Отсчитываемое от нуля значение индекса, определяющее положение начала записи в массив.
| |
length:uint (default = 0) — Целое число без знака, определяющее глубину буфера для записи.
|
Дополнительные примеры
writeDouble | () | метод |
public function writeDouble(value:Number):void| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Записывает в поток байтов число IEEE 754 с двойной точностью (64-разрядное) и плавающей запятой.
Параметры
value:Number — Число с двойной точностью (64-разрядное) и плавающей запятой.
|
writeFloat | () | метод |
public function writeFloat(value:Number):void| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Записывает в поток байтов число IEEE 754 с одинарной точностью (32-разрядное) и плавающей запятой.
Параметры
value:Number — Число с одинарной точностью (32-разрядное) и плавающей запятой.
|
writeInt | () | метод |
writeMultiByte | () | метод |
public function writeMultiByte(value:String, charSet:String):void| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Записывает многобайтовую строку в поток байтов с использованием заданного набора знаков.
Параметры
value:String — Записываемое значение строки.
| |
charSet:String — Строка, определяющая используемый набор символов. Возможные строки наборов символов: "shift_jis", "cn-gb", "iso-8859-1" и другие. Полный список см. в разделе Поддерживаемые наборы символов.
|
writeObject | () | метод |
writeShort | () | метод |
public function writeShort(value:int):void| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Записывает в поток байтов 16-разрядное целое число. Используется 16 младших битов параметра. 16 старших битов игнорируются.
Параметры
value:int — 32-разрядное целое число, из которого в поток байтов записывается 16 младших бит.
|
writeUnsignedInt | () | метод |
writeUTF | () | метод |
public function writeUTF(value:String):void| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Записывает строку UTF-8 в поток байтов. Сначала записывается длина строки UTF-8 в байтах (в виде 16-разрядного целого числа), за которой следуют байты символов строки.
Параметры
value:String — Записываемое значение строки.
|
Выдает
RangeError — Если длина превышает 65535.
|
writeUTFBytes | () | метод |
public function writeUTFBytes(value:String):void| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Записывает строку UTF-8 в поток байтов. Аналогично writeUTF(), с тем различием, что writeUTFBytes() не вставляет перед строкой 16-разрядное слово, указывающее длину.
Параметры
value:String — Записываемое значение строки.
|
ByteArrayExample используется для записи в массив байтов логического значения и представления числа «пи» с двойной точностью и плавающей запятой. Это можно сделать, выполнив следующие действия:
- Объявляется новый экземпляр объекта ByteArray
byteArr. - Записывается эквивалент байтового логического значения
false, затем проверяется его длина, и оно считывается. - Записывается эквивалент числа «пи» с двойной точностью и плавающей запятой.
- Все эти девять байтов, записанных в массив байтов, считываются.
Примечание. Когда trace() вызывается для байта, то выводится десятичный эквивалент байтов, хранящихся в байтовом массиве.
Обратите внимание на то, что в конце добавляется сегмент кода для проверки ошибок конца файла. Это позволяет прекратить считывание потока байтов по достижении его окончания.
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 Apr 11 2012, 05:48 AM -07:00
Скрыть унаследованные общедоступные свойства
Показать унаследованные общедоступные свойства