Пакет | 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, deflate и lzma, а также сериализация объектов в формате Action Message Format (AMF).
Можно разрешить общий доступ к поддерживающей памяти объекта ByteArray для нескольких экземпляров worker одновременно, задав его свойство shareable
как true
.
Среди возможных вариантов использования класса ByteArray следующие:
- создание собственного протокола для подключения к серверу;
- написание собственных средств кодирования и раскодирования URL-адресов;
- написание собственного пакета AMF/Remoting;
- оптимизация размера данных с использованием типов данных;
- работа с двоичными данными, загружаемыми из файла.
Связанные элементы 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 | ||
shareable : Boolean
Определяет, будет ли память байтового массива находиться в общем доступе. | ByteArray |
Метод | Определено | ||
---|---|---|---|
Создает экземпляр ByteArray, представляющий упакованный массив байтов. С помощью методов и свойств данного класса можно оптимизировать хранилище и поток данных. | ByteArray | ||
В одной атомарной операции сравнивает целое значение в этом байтовом массиве со вторым целым числом. Если числа совпадают, обменивает значения этих байтов с третьим числом. | 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():uint
defaultObjectEncoding | свойство |
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
endian | свойство |
endian:String
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Изменяет или считывает порядок байтов данных: Endian.BIG_ENDIAN
или Endian.LITTLE_ENDIAN
. Значение по умолчанию: BIG_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):void
objectEncoding | свойство |
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
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):void
shareable | свойство |
shareable:Boolean
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 11.5, AIR 3.5 |
Определяет, будет ли память байтового массива находиться в общем доступе. В случае общего байтового массива все экземпляры такого объекта ByteArray во всех объектах worker имеют ссылки на одну и ту же системную память. Значение этого свойства по умолчанию — false
, что указывает на то, что общая память не используется.
Это свойство также влияет на то, что происходит с байтовым массивом при передаче его объекту worker с помощью методов Worker.setSharedProperty()
или MessageChannel.send()
:
- Нет общего доступа. Если это свойство имеет значение
false
, то при передаче байтового массива объекту worker исполнительная среда создает полную копию массива, включая выделение нового участка памяти, в котором будет храниться копия содержимого первоначального массива - Общий доступ. Если это свойство имеет значение
true
, то при передаче байтового массива объекту worker исполнительная среда использует один и тот же участок памяти, в котором хранятся значения, как для первоначального экземпляра ByteArray, так и для нового экземпляра, создаваемого для второго объекта worker. Фактически обе ссылки на объект ByteArray указывают на один и тот же байтовый массив.
Возможность доступа к общему байтовому массиву из нескольких объектов worker может привести к нежелательной ситуации, при которой оба объекта worker изменяют содержимое байтового массива одновременно. Для управления доступом к общей памяти можно использовать несколько механизмов:
- механизмы «сравнить и обменять», предоставляемые методами
atomicCompareAndSwapIntAt()
иatomicCompareAndSwapLength()
класса ByteArray - специализированные механизмы, реализованные классах Mutex и Condition (из пакета flash.concurrent)
Установка этого свойства в значение true
затрагивает только последующие передачи данного байтового массива объектам worker. Все копии массива, которые были созданы при передаче его объектам worker, продолжат существовать в памяти.
Если поменять значение этого свойства с true
на false
, участок памяти, отведенный этому байтовому массиву будет автоматически скопирован в новый участок памяти. Данный экземпляр ByteArray будет затем связан с этим новым участком памяти. Как следствие, память этого байтового массива больше не будет общей для нескольких объектов worker, даже если до этого она была таковой. При последующей передачей такого байтового массива объекту worker его память копируется точно так же, как это делается с другими объектами ByteArray, у которых свойство shareable
имеет значение false
.
Значением по умолчанию является false.
Реализация
public function get shareable():Boolean
public function set shareable(value:Boolean):void
Связанные элементы API
ByteArray | () | Конструктор |
public function ByteArray()
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Создает экземпляр ByteArray, представляющий упакованный массив байтов. С помощью методов и свойств данного класса можно оптимизировать хранилище и поток данных.
atomicCompareAndSwapIntAt | () | метод |
public function atomicCompareAndSwapIntAt(byteIndex:int, expectedValue:int, newValue:int):int
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 11.5, AIR 3.5 |
В одной атомарной операции сравнивает целое значение в этом байтовом массиве со вторым целым числом. Если числа совпадают, обменивает значения этих байтов с третьим числом.
Этот метод предназначен для использования с байтовым массивом, память которого является общей для нескольких объектов worker (в экземпляре ByteArray свойство shareable
имеет значение true
). Он выполняет следующую последовательность действий:
- считывает целое значение из байтового массива по индексу позиции
byteIndex
(измеряется в байтах); - сравнивает текущее значение в байтовом массиве со значением
expectedValue
. - Если эти два значения совпадают, записывает значение
newValue
в позициюbyteIndex
в байтовом массиве и возвращает предыдущее значение в этой позиции (т. е. значение, считанное на шаге 1) - В противном случае содержимое байтового массива не изменяется, а метод возвращает текущее значение в байтовом массиве
Все перечисленные действия выполняются в виде атомарной операции, реализованной аппаратно. Это гарантирует, что никакие операции в других объектах worker не смогут изменить содержимое байтового массива, пока выполняется операция «сравнить и обменять».
Параметры
byteIndex:int — индекс позиции (в байтах), из которой считывается сравниваемое целочисленное значение и в которую записывается новое значение newValue , если сравниваемые значения совпадают. Это значение должно быть кратно 4.
| |
expectedValue:int — значение, которое проверяется на совпадение с содержимым байтового массива по указанному индексу
| |
newValue:int — новое значение, которое заменяет содержимое байтового массива по указанному индексу, если при сравнении обнаружено совпадение
|
int — предыдущее значение в указанной позиции в случае совпадения значений, либо текущее значение из байтового массива, если действительное значение и ожидаемое значение не совпадают
|
Выдает
ArgumentError — если значение byteIndex не кратно 4 или отрицательное
|
Связанные элементы API
atomicCompareAndSwapLength | () | метод |
public function atomicCompareAndSwapLength(expectedLength:int, newLength:int):int
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 11.5, AIR 3.5 |
Выполняет атомарную операцию, состоящую из сравнения длины байтового массива с указанным значением, и изменения длины массива в случае совпадения сравниваемых значений.
Этот метод предназначен для использования с байтовым массивом, память которого является общей для нескольких объектов worker (в экземпляре ByteArray свойство shareable
имеет значение true
). Выполняет следующие действия:
- Считывает значение свойства
length
экземпляра ByteArray - Сравнивает длину массива со значением, переданным в параметре
expectedLength
- В случае совпадения этих значений устанавливает длину массива равной
newLength
, при этом изменение длины возможно как в большую, так и в меньшую сторону - В противном случае байтовый массив остается неизменным
Все перечисленные действия выполняются в виде атомарной операции, реализованной аппаратно. Это гарантирует, что никакие операции в других объектах worker не смогут изменить содержимое байтового массива, пока выполняется операция «сравнить и изменить размер».
Параметры
expectedLength:int — ожидаемое значение свойства length массива ByteArray. Если указанное значение совпадет с текущим значением, длина байтового массива будет изменена.
| |
newLength:int — новое значение длины байтового массива, устанавливаемое в случае успешного сравнения
|
int — предыдущее значение свойства length массива ByteArray, независимо от того, было ли оно изменено
|
Связанные элементы API
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 |
Упаковывает массив байтов. Упаковывается весь массив байтов. После вызова свойству length
объекта ByteArray присваивается новая длина. Свойство position
устанавливается в конец массива байтов.
Необходимо указать алгоритм сжатия путем передачи значения (определенного в классе CompressionAlgorithm) в качестве параметра algorithm
. В числе поддерживаемых алгоритмов:
Формат упакованных данных zlib описан в документе http://www.ietf.org/rfc/rfc1950.txt.
Алгоритм упаковки данных deflate описан в документе http://www.ietf.org/rfc/rfc1951.txt.
Алгоритм сжатия lzma описан на веб-странице http://www.7-zip.org/7z.html.
Алгоритм упаковки 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 (default = NaN ) — Алгоритм сжатия, используемый при упаковке. Доступные значения определены в виде констант в классе CompressionAlgorithm. Формат по умолчанию — zlib. Вызов compress(CompressionAlgorithm.DEFLATE) имеет тот же результат, что и вызов метода deflate() . Поддержка алгоритма lzma добавлена в версии Flash Player 11.3 и AIR 3.3. Для использования сжатия lzma требуются эти или более поздние версии проигрывателя.
|
Связанные элементы 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
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 |
Распаковывает массив байтов. После вызова свойству length
объекта ByteArray присваивается новая длина. Свойству position
присваивается значение 0.
Для сжатия массива байтов используется тот же алгоритм, что и для распаковки. Необходимо указать алгоритм распаковки путем передачи значения (определенного в классе CompressionAlgorithm) в качестве параметра algorithm
. В числе поддерживаемых алгоритмов:
Формат упакованных данных zlib описан в документе http://www.ietf.org/rfc/rfc1950.txt.
Алгоритм упаковки данных deflate описан в документе http://www.ietf.org/rfc/rfc1951.txt.
Алгоритм сжатия lzma описан на веб-странице http://www.7-zip.org/7z.html.
При раскодировании данных, упакованных в формат, использующий алгоритм сжатия deflate (например, формат gzip или zip), вызов метода uncompress(CompressionAlgorithm.DEFLATE)
не сработает для объекта ByteArray, содержащего метаданные. Сначала необходимо отделить метаданные, которые входят в состав упакованного формата данных, от самих сжатых данных. Дополнительную информацию см. в описании метода compress()
.
Параметры
algorithm:String (default = NaN ) — Алгоритм сжатия, используемый при распаковке. Это должен быть тот же алгоритм сжатия, который использовался для упаковки данных. Доступные значения определены в виде констант в классе CompressionAlgorithm. Формат по умолчанию — zlib. Поддержка алгоритма lzma добавлена в версии Flash Player 11.3 и AIR 3.3. Для использования сжатия lzma требуются эти или более поздние версии проигрывателя.
|
Выдает
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. } } } }
Tue Jun 12 2018, 11:34 AM Z