Справочник по ActionScript® 3.0 для платформы Adobe® Flash®
Домашняя страница  |  Скрыть список пакетов и классов |  Пакеты  |  Классы  |  Что нового  |  Указатель  |  Приложения  |  Почему по-английски?
Фильтры: Получение данных с сервера...
Получение данных с сервера...
flash.utils 

ByteArray  - AS3

Пакетflash.utils
Классpublic class ByteArray
НаследованиеByteArray Inheritance Object
Реализует IDataInput, IDataOutput
Подклассы ByteArrayAsset

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9, Flash Lite 4

В классе ByteArray предусмотрены методы и свойства для оптимизации чтения и записи двоичных данных, а также работы с ними.

Примечание. Класс ByteArray предназначен для опытных разработчиков, которым требуется доступ к данным на уровне байтов.

Данные в памяти представляют собой упакованный массив байтов (наиболее компактное представление типа данных), но с экземпляром класса ByteArray можно работать с использованием стандартных операторов [] (доступа к массивам). Чтение из него и запись в него можно осуществлять как в файл в памяти, с использованием методов, похожих на методы классов URLStream и Socket.

Кроме того, поддерживается сжатие и распаковка zlib, deflate и lzma, а также сериализация объектов в формате Action Message Format (AMF).

Можно разрешить общий доступ к поддерживающей памяти объекта ByteArray для нескольких экземпляров worker одновременно, задав его свойство shareable как true.

Среди возможных вариантов использования класса ByteArray следующие:

  • создание собственного протокола для подключения к серверу;
  • написание собственных средств кодирования и раскодирования URL-адресов;
  • написание собственного пакета AMF/Remoting;
  • оптимизация размера данных с использованием типов данных;
  • работа с двоичными данными, загружаемыми из файла.

Посмотреть примеры

Связанные элементы API



Общедоступные свойства
 СвойствоОпределено
  bytesAvailable : uint
[только для чтения] Число байтов данных, доступных для чтения от текущей позиции в массиве байтов до конца массива.
ByteArray
 Inheritedconstructor : 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
  
atomicCompareAndSwapIntAt(byteIndex:int, expectedValue:int, newValue:int):int
В одной атомарной операции сравнивает целое значение в этом байтовом массиве со вторым целым числом. Если числа совпадают, обменивает значения этих байтов с третьим числом.
ByteArray
  
atomicCompareAndSwapLength(expectedLength:int, newLength:int):int
Выполняет атомарную операцию, состоящую из сравнения длины байтового массива с указанным значением, и изменения длины массива в случае совпадения сравниваемых значений.
ByteArray
  
Удаляет содержимое массива байтов и сбрасывает значения length и position в значение 0.
ByteArray
  
compress(algorithm:String):void
Упаковывает массив байтов.
ByteArray
  
Сжимает массив байтов с использованием алгоритма сжатия DEFLATE.
ByteArray
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
  
Распаковывает массив байтов с использованием алгоритма сжатия DEFLATE.
ByteArray
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
  
Считывает из потока байтов логическое значение.
ByteArray
  
Считывает из потока байтов байт со знаком.
ByteArray
  
readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
Считывает из потока байтов число байтов данных, заданное параметром length.
ByteArray
  
Считывает из потока байтов число IEEE 754 с двойной точностью (64-разрядное) и плавающей запятой.
ByteArray
  
Считывает из потока байтов число IEEE 754 с одинарной точностью (32-разрядное) и плавающей запятой.
ByteArray
  
Считывает из потока байтов 32-разрядное целое число со знаком.
ByteArray
  
readMultiByte(length:uint, charSet:String):String
Считывает из потока байтов многобайтовую строку заданной длины с использованием заданного набора знаков.
ByteArray
  
Считывает объект из массива байтов, зашифрованного в сериализованный формат AMF.
ByteArray
  
Считывает из потока байтов 16-разрядное целое число со знаком.
ByteArray
  
Считывает из потока байтов байт без знака.
ByteArray
  
Считывает из потока байтов 32-разрядное целое число без знака.
ByteArray
  
Считывает из потока байтов 16-разрядное целое число без знака.
ByteArray
  
Считывает из потока байтов строку UTF-8.
ByteArray
  
Считывает последовательность байтов UTF-8, заданную параметром length, из потока байтов и возвращает строку.
ByteArray
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
  
Предоставляет переопределяемый метод, позволяющий настраивать кодировку JSON значений в объекте ByteArray.
ByteArray
 Inherited
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали.
Object
  
Преобразует массив байтов в строку.
ByteArray
  
Распаковывает массив байтов.
ByteArray
 Inherited
Возвращает элементарное значение заданного объекта.
Object
  
Записывает логическое значение.
ByteArray
  
Записывает байт в поток байтов.
ByteArray
  
writeBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
Записывает в поток байт последовательность байт длиной 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). Он выполняет следующую последовательность действий:

  1. считывает целое значение из байтового массива по индексу позиции byteIndex (измеряется в байтах);
  2. сравнивает текущее значение в байтовом массиве со значением expectedValue.
  3. Если эти два значения совпадают, записывает значение newValue в позицию byteIndex в байтовом массиве и возвращает предыдущее значение в этой позиции (т. е. значение, считанное на шаге 1)
  4. В противном случае содержимое байтового массива не изменяется, а метод возвращает текущее значение в байтовом массиве

Все перечисленные действия выполняются в виде атомарной операции, реализованной аппаратно. Это гарантирует, что никакие операции в других объектах 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). Выполняет следующие действия:

  1. Считывает значение свойства length экземпляра ByteArray
  2. Сравнивает длину массива со значением, переданным в параметре expectedLength
  3. В случае совпадения этих значений устанавливает длину массива равной newLength, при этом изменение длины возможно как в большую, так и в меньшую сторону
  4. В противном случае байтовый массив остается неизменным

Все перечисленные действия выполняются в виде атомарной операции, реализованной аппаратно. Это гарантирует, что никакие операции в других объектах 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" и другие. Полный список см. в разделе Поддерживаемые наборы символов.

Примечание. Если текущая система не распознает значение параметра charSet, то в качестве набора символов приложение будет использовать кодовую страницу по умолчанию. Например, значение параметра charSet, как в myTest.readMultiByte(22, iso-8859-01), использующее 01 вместо 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

()метод 
public function writeInt(value:int):void

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9, Flash Lite 4

Записывает в поток байтов 32-разрядное целое число со знаком.

Параметры

value:int — Целое число, записываемое в поток байтов.

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

()метод 
public function writeObject(object:*):void

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9, Flash Lite 4

Записывает объект в массив байтов в сериализованном формате AMF.

Параметры

object:* — Сериализуемый объект.

Связанные элементы API

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

()метод 
public function writeUnsignedInt(value:uint):void

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9, Flash Lite 4

Записывает в поток байтов 32-разрядное целое число без знака.

Параметры

value:uint — Беззнаковое целое число, записываемое в поток байтов.

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.as

В следующем примере класс ByteArrayExample используется для записи в массив байтов логического значения и представления числа «пи» с двойной точностью и плавающей запятой. Это можно сделать, выполнив следующие действия:
  1. Объявляется новый экземпляр объекта ByteArray byteArr.
  2. Записывается эквивалент байтового логического значения false, затем проверяется его длина, и оно считывается.
  3. Записывается эквивалент числа «пи» с двойной точностью и плавающей запятой.
  4. Все эти девять байтов, записанных в массив байтов, считываются.

Примечание. Когда 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.
            }
        }
    }
}




[ X ]Почему по-английски?
Содержимое Справочника ActionScript 3.0 отображается на английском языке

Не все части Справочника ActionScript 3.0 переводятся на все языки. Если какой-то текстовый элемент не переведен, он отображается на английском языке. Например, компонент ga.controls.HelpBox не переведен ни на один из языков. Это значит, что в русской версии справки компонент ga.controls.HelpBox будет отображаться на английском языке.