flash.utilsProxy Класс Proxy позволяет переопределять поведение по умолчанию для операций ActionScript (например, для получения и модификации свойств) над объектом.Object Класс Proxy позволяет переопределять поведение по умолчанию для операций ActionScript (например, для получения и модификации свойств) над объектом.

Класс Proxy не имеет конструктора, поэтому не следует пытаться создать экземпляр этого класса. Вместо этого сделайте класс Proxy подклассом для переопределения методов (например, getProperty) и обеспечения необходимого поведения. При попытке использовать метод класса Proxy без переопределения метода возникает исключение.

Следует помнить о том, что код, переопределяющий методы класса Proxy, может непреднамеренно вызывать исключения. Возникновение исключений при использовании этих методов приводит к проблемам, поскольку вызывающий код (в котором используются такие операторы, как in, is, delete и другие) не предполагает исключений. В том случае, если переопределяющий метод может вызывать исключения, Adobe рекомендует помещать реализацию класса Proxy между операторами try..catch, которые помогут избежать критических ошибок в случае вызова методов инструкциями. Например:

dynamic class MyProxy extends Proxy { flash_proxy override function callProperty(name:~~, ...rest):~~ { try { // custom code here } catch (e:Error) { // respond to error here } }

Класс Proxy заменяет функции ActionScript 2.0 Object__resolve и Object.addProperty, уже недоступные в ActionScript 3.0. Функция Object.addProperty() позволяла динамически создавать методы получения и установки в ActionScript 2.0. Несмотря на то, что ActionScript 3.0 предоставляет методы получения и установки в процессе компиляции, у них отсутствует возможность динамического присвоения объекту без использования класса Proxy.

Во избежание конфликтов с пространством имен public методы класса Proxy находятся в пространстве имен flash_proxy.

Когда методам класса Proxy передается аргумент name, name может быть объектом String или QName (если используются пространства имен).

package { import flash.display.Sprite; public class ProxyExample extends Sprite { public function ProxyExample() { var arr:ProxyArray = new ProxyArray(); arr.push(1); arr.push(-2); arr.push(3); arr.push(4); arr.push("five"); trace(arr.length); // 5 trace(arr[0]); // 1 trace(arr[1]); // -2 trace(arr[2]); // 3 trace(arr[3]); // 4 trace(arr.sum()); // 6 arr.clear(); trace(arr); // (empty string) arr[0] = "zero"; trace(arr); // zero } } } import flash.utils.Proxy; import flash.utils.flash_proxy; dynamic class ProxyArray extends Proxy { private var _item:Array; public function ProxyArray() { _item = new Array(); } override flash_proxy function callProperty(methodName:*, ... args):* { var res:*; switch (methodName.toString()) { case 'clear': _item = new Array(); break; case 'sum': var sum:Number = 0; for each (var i:* in _item) { // ignore non-numeric values if (!isNaN(i)) { sum += i; } } res = sum; break; default: res = _item[methodName].apply(_item, args); break; } return res; } override flash_proxy function getProperty(name:*):* { return _item[name]; } override flash_proxy function setProperty(name:*, value:*):void { _item[name] = value; } }
callProperty Переопределяет поведение свойства объекта, которое может быть вызвано как функция.Значение, которое возвращает вызываемый метод. nameИмя вызываемого метода. restМассив аргументов вызываемого метода. Переопределяет поведение свойства объекта, которое может быть вызвано как функция. Этот метод вызывается при вызове методов объектов. Некоторые объекты можно вызывать как функции. Некоторые свойства объекта также можно вызывать как функции. Function.call()Спецификация языка ECMA-262, 3-е издание, раздел 15deleteProperty Переопределяет запрос на удаление свойства.Если свойство удалено, указывается значение true; в противном случае выбирается значение false. BooleannameИмя удаляемого свойства Переопределяет запрос на удаление свойства. Когда свойство удаляется с помощью оператора delete, для удаления вызывается этот метод. оператор deleteСпецификация языка ECMA-262, 3-е издание, раздел 8.6.2.5getDescendants Переопределяет использование оператора descendant.Результаты оператора descendant. nameИмя искомого свойства в объекте. Переопределяет использование оператора descendant. Этот метод вызывается при использовании оператора descendant. оператор descendantСпецификация E4XgetProperty Переопределяет любой запрос значения свойства.Указанное свойство или undefined, если свойство не найдено. nameИмя получаемого свойства Переопределяет любой запрос значения свойства. Если свойство не удается найти, метод возвращает значение undefined. Дополнительные сведения об этом поведении см. в спецификации языка ECMA-262, 3-е издание, раздел 8.6.2.1. инструкция getСпецификация языка ECMA-262, 3-е издание, раздел 8.6.2.1hasProperty Переопределяет запрос на проверку наличия у объекта конкретного свойства по имени.Если свойство существует, указывается значение true; в противном случае выбирается значение false. BooleannameИмя проверяемого свойства. Переопределяет запрос на проверку наличия у объекта конкретного свойства по имени. Object.hasOwnProperty()Спецификация языка ECMA-262, 3-е издание, раздел 8.6.2.4isAttribute Проверяет, помечен ли предоставленный QName также как атрибут.Возвращает true, если аргумент для name имеет тип QName, который также помечен, как атрибут. BooleannameИмя проверяемого свойства. Проверяет, помечен ли предоставленный QName также как атрибут. Класс QNamenextNameIndex Разрешает перечисление свойств объекта с прокси по номеру позиции индекса.Значение индекса свойства. intindexintОтсчитываемое от нуля значение индекса, с которого начинается перечисление. Разрешает перечисление свойств объекта с прокси по номеру позиции индекса. При этом свойства самого класса Proxy перечислять нельзя. Эта функция поддерживает реализацию циклов for...in и for each..in в объекте для получения значений индекса свойства.

Например:

protected var _item:Array; // array of object's properties override flash_proxy function nextNameIndex (index:int):int { // initial call if (index == 0) { _item = new Array(); for (var x:~~ in _target) { _item.push(x); } } if (index < _item.length) { return index + 1; } else { return 0; } } override flash_proxy function nextName(index:int):String { return _item[index - 1]; }
Proxy.nextName()Proxy.nextValue()
nextName Разрешает перечисление свойств объекта с прокси по номеру позиции индекса для получения имен свойств.Имя свойства. StringindexintОтсчитываемое от нуля значение индекса для свойства объекта. Разрешает перечисление свойств объекта с прокси по номеру позиции индекса для получения имен свойств. При этом свойства самого класса Proxy перечислять нельзя. Эта функция поддерживает реализацию циклов for...in и for each..in в объекте для получения нужных имен.

Например, (с кодом из Proxy.nextNameIndex()):

protected var _item:Array; // array of object's properties override flash_proxy function nextNameIndex (index:int):int { // initial call if (index == 0) { _item = new Array(); for (var x:~~ in _target) { _item.push(x); } } if (index < _item.length) { return index + 1; } else { return 0; } } override flash_proxy function nextName(index:int):String { return _item[index - 1]; }
Proxy.nextNameIndex()Proxy.nextValue()
nextValue Разрешает перечисление свойств объекта с прокси по номеру позиции индекса для получения значений свойств.Значение свойства. indexintОтсчитываемое от нуля значение индекса для свойства объекта. Разрешает перечисление свойств объекта с прокси по номеру позиции индекса для получения значений свойств. При этом свойства самого класса Proxy перечислять нельзя. Эта функция поддерживает реализацию циклов for...in и for each..in в объекте для получения нужных значений.

Например, (с кодом из Proxy.nextNameIndex()):

protected var _item:Array; // array of object's properties override flash_proxy function nextNameIndex (index:int):int { // initial call if (index == 0) { _item = new Array(); for (var x:~~ in _target) { _item.push(x); } } if (index < _item.length) { return index + 1; } else { return 0; } } override flash_proxy function nextName(index:int):String { return _item[index - 1]; }
Proxy.nextNameIndex()Proxy.nextName()
setProperty Переопределяет вызов для изменения значения свойства.nameИмя модифицируемого свойства valueЗначение, которое присваивается свойству. Переопределяет вызов для изменения значения свойства. Если свойство не удается найти, этот метод создает свойство с указанным именем и значением. инструкция setСпецификация языка ECMA-262, 3-е издание, раздел 8.6.2.2
ByteArray В классе ByteArray предусмотрены методы и свойства для оптимизации чтения и записи двоичных данных, а также работы с ними.flash.utils:IDataInputflash.utils:IDataOutputObject В классе ByteArray предусмотрены методы и свойства для оптимизации чтения и записи двоичных данных, а также работы с ними.

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

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

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

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

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

В следующем примере класс 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. } } } }
[] (array access)Класс SocketКласс URLStreamByteArray Создает экземпляр ByteArray, представляющий упакованный массив байтов. С помощью методов и свойств данного класса можно оптимизировать хранилище и поток данных. Создает экземпляр ByteArray, представляющий упакованный массив байтов. С помощью методов и свойств данного класса можно оптимизировать хранилище и поток данных. clear Удаляет содержимое массива байтов и сбрасывает значения length и position в значение 0. Удаляет содержимое массива байтов и сбрасывает значения length и position в значение 0. При явном вызове этого метода высвобождается память, используемая экземпляром ByteArray. compress Упаковывает массив байтов.algorithmStringunknownАлгоритм сжатия, используемый при упаковке. Доступные значения определены в виде констант в классе CompressionAlgorithm. Формат по умолчанию — zlib. Этот параметр распознается только для содержимого, выполняемого в Adobe AIR. Flash Player поддерживает только алгоритм по умолчанию zlib, и при попытке передать значение для этого параметра выдает исключение. Вызов compress(CompressionAlgorithm.DEFLATE) имеет тот же результат, что и вызов метода deflate(). Упаковывает массив байтов. Упаковывается весь массив байтов. Для содержимого, выполняемого в 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 для распаковки упакованных данных.

uncompress()flash.utils.CompressionAlgorithm
deflate Сжимает массив байтов с использованием алгоритма сжатия DEFLATE. Сжимает массив байтов с использованием алгоритма сжатия DEFLATE. Сжимается весь массив байтов.

После вызова свойству length объекта ByteArray присваивается новая длина. Свойство position устанавливается в конец массива байтов.

Алгоритм упаковки данных deflate описан в документе http://www.ietf.org/rfc/rfc1951.txt.

Чтобы формат deflate можно было использовать для сжатия данных экземпляра ByteArray в определенный формат (например, gzip или zip), недостаточно просто вызвать deflate(). Необходимо создать объект ByteArray со структурой, соответствующей спецификации формата упаковки, включающий соответствующие метаданные, а также упакованные данные, полученные с использованием формата deflate. Чтобы раскодировать данные, сжатые в такой формат, как gzip или zip, также нельзя просто вызвать метод inflate() по отношению к этим данным. Сначала необходимо отделить метаданные от упакованных данных, а затем использовать формат deflate для распаковки упакованных данных.

inflate()
inflate Распаковывает массив байтов с использованием алгоритма сжатия DEFLATE.Данные не являются допустимыми упакованными данными, они не были сжаты с использованием указанного алгоритма упаковки. IOErrorflash.errors:IOError Распаковывает массив байтов с использованием алгоритма сжатия DEFLATE. Массив байтов должен быть сжат с использованием этого же алгоритма.

После вызова свойству length объекта ByteArray присваивается новая длина. Свойству position присваивается значение 0.

Алгоритм упаковки данных deflate описан в документе http://www.ietf.org/rfc/rfc1951.txt.

При раскодировании данных, сжатых в формат, использующий алгоритм сжатия DEFLATE (например, формат gzip или zip), вызов метода inflate() не сработает для объекта ByteArray, содержащего данные о сжатии. Сначала необходимо отделить метаданные, которые входят в состав упакованного формата данных, от самих сжатых данных. Дополнительную информацию см. в описании метода compress().

deflate()
readBoolean Считывает из потока байтов логическое значение.Недостаточно данных, доступных для чтения. EOFErrorflash.errors:EOFErrorВозвращает значение true, если считывается ненулевой байт, в противном случае используется значение false. Boolean Считывает из потока байтов логическое значение. Считывается один байт. Если этот байт ненулевой, то возвращается значение true. В противном случае возвращается значение false. readByte Считывает из потока байтов байт со знаком.Недостаточно данных, доступных для чтения. EOFErrorflash.errors:EOFErrorЦелое число между -128 и 127. int Считывает из потока байтов байт со знаком.

Возвращенное значение находится в диапазоне от -128 до 127.

readBytes Считывает из потока байтов число байтов данных, заданное параметром length.Недостаточно данных, доступных для чтения. EOFErrorflash.errors:EOFErrorЗначение указанных смещения и длины вместе взятых больше максимального значения uint. RangeErrorRangeErrorbytesflash.utils:ByteArrayОбъект ByteArray, в который считываются данные. offsetuint0Смещение (положение) в массиве bytes, начиная с которого должны быть прочитаны данные. lengthuint0Число байтов для считывания. Если значение по умолчанию равно 0, считываются все доступные данные. Считывает из потока байтов число байтов данных, заданное параметром length. Байты считываются в объект ByteArray, определяемый параметром bytes, при этом байты записываются в целевой массив ByteArray, начиная с позиции, определяемой параметром offset. readDouble Считывает из потока байтов число IEEE 754 с двойной точностью (64-разрядное) и плавающей запятой.Недостаточно данных, доступных для чтения. EOFErrorflash.errors:EOFErrorЧисло с двойной точностью (64-разрядное) и плавающей запятой. Number Считывает из потока байтов число IEEE 754 с двойной точностью (64-разрядное) и плавающей запятой. readFloat Считывает из потока байтов число IEEE 754 с одинарной точностью (32-разрядное) и плавающей запятой.Недостаточно данных, доступных для чтения. EOFErrorflash.errors:EOFErrorЧисло с одинарной точностью (32-разрядное) и плавающей запятой. Number Считывает из потока байтов число IEEE 754 с одинарной точностью (32-разрядное) и плавающей запятой. readInt Считывает из потока байтов 32-разрядное целое число со знаком.Недостаточно данных, доступных для чтения. EOFErrorflash.errors:EOFError32-разрядное целое число со знаком между -2147483648 и 2147483647. int Считывает из потока байтов 32-разрядное целое число со знаком.

Возвращаемое значение находится в диапазоне от -2147483648 до 2147483647.

readMultiByte Считывает из потока байтов многобайтовую строку заданной длины с использованием заданного набора знаков.Недостаточно данных, доступных для чтения. EOFErrorflash.errors:EOFErrorСтрока в кодировке UTF-8. StringlengthuintЧисло считываемых из потока байтов. charSetStringСтрока, обозначающая набор символов, которые используются для интерпретации байтов. Возможные строки наборов символов: "shift_jis", "cn-gb", "iso-8859-1" и другие. Полный список см. в разделе Поддерживаемые наборы символов.

Примечание. Если текущая система не распознает значение параметра charSet, то в качестве набора символов приложение будет использовать кодовую страницу по умолчанию. Например, значение параметра charSet, как в myTest.readMultiByte(22, iso-8859-01), использующее 01 вместо 1, может работать в системе разработчика, а в другой системе нет. В другой системе приложение будет использовать кодовую страницу, заданную по умолчанию в системе.

Считывает из потока байтов многобайтовую строку заданной длины с использованием заданного набора знаков.
readObject Считывает объект из массива байтов, зашифрованного в сериализованный формат AMF.Недостаточно данных, доступных для чтения. EOFErrorflash.errors:EOFErrorДесериализованный объект. Считывает объект из массива байтов, зашифрованного в сериализованный формат AMF. flash.net.registerClassAlias()readShort Считывает из потока байтов 16-разрядное целое число со знаком.Недостаточно данных, доступных для чтения. EOFErrorflash.errors:EOFError16-разрядное целое число со знаком между -32768 и 32767. int Считывает из потока байтов 16-разрядное целое число со знаком.

Возвращаемое значение находится в диапазоне от -32768 до 32767.

readUTFBytes Считывает последовательность байтов UTF-8, заданную параметром length, из потока байтов и возвращает строку.Недостаточно данных, доступных для чтения. EOFErrorflash.errors:EOFErrorСтрока заданной длины, состоящая из байтов UTF-8. StringlengthuintБеззнаковое короткое целое число, указывающее длину в байтах UTF-8. Считывает последовательность байтов UTF-8, заданную параметром length, из потока байтов и возвращает строку. readUTF Считывает из потока байтов строку UTF-8.Недостаточно данных, доступных для чтения. EOFErrorflash.errors:EOFErrorСтрока в кодировке UTF-8. String Считывает из потока байтов строку UTF-8. Предполагается, что в строку вставляется префикс с неподписанным значением, указывающим длину в байтах. flash.utils.IDataInput.readUTF()readUnsignedByte Считывает из потока байтов байт без знака.Недостаточно данных, доступных для чтения. EOFErrorflash.errors:EOFError32-разрядное беззнаковое целое число между 0 и 255. uint Считывает из потока байтов байт без знака.

Возвращенное значение находится в диапазоне от 0 до 255.

readUnsignedInt Считывает из потока байтов 32-разрядное целое число без знака.Недостаточно данных, доступных для чтения. EOFErrorflash.errors:EOFError32-разрядное беззнаковое целое число между 0 и 4294967295. uint Считывает из потока байтов 32-разрядное целое число без знака.

Возвращенное значение находится в диапазоне от 0 до 4294967295.

readUnsignedShort Считывает из потока байтов 16-разрядное целое число без знака.Недостаточно данных, доступных для чтения. EOFErrorflash.errors:EOFError16-разрядное беззнаковое целое число между 0 и 65535. uint Считывает из потока байтов 16-разрядное целое число без знака.

Возвращенное значение находится в диапазоне от 0 до 65535.

toString Преобразует массив байтов в строку.Строковое представление массива байтов. String Преобразует массив байтов в строку. Если данные массива начинаются маркером порядка байтов Unicode, во время преобразования данных в строку приложение учтет этот маркер. Если параметр System.useCodePage установлен в значение true, приложение будет обрабатывать данные массива во время преобразования как данные в текущей системной кодировке. uncompress Распаковывает массив байтов.Данные не являются допустимыми упакованными данными, они не были сжаты с использованием указанного алгоритма упаковки. IOErrorflash.errors:IOErroralgorithmStringunknownАлгоритм сжатия, используемый при распаковке. Это должен быть тот же алгоритм сжатия, который использовался для упаковки данных. Доступные значения определены в виде констант в классе CompressionAlgorithm. Формат по умолчанию — zlib. Этот параметр распознается только для содержимого, выполняемого в Adobe AIR. Flash Player поддерживает только алгоритм по умолчанию, zlib, и выдает исключение при попытке передать значение для этого параметра. Распаковывает массив байтов. Для содержимого, выполняемого в 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().

compress()flash.utils.CompressionAlgorithm
writeBoolean Записывает логическое значение.valueBooleanЛогическое значение, показывающее, какой байт записывается. Если параметр содержит значение true, метод записывает 1. В случае значения false записывается 0. Записывает логическое значение. Записывается один байт, соответствующий параметру value, 1 в случае значения true и 0 в случае значения false. writeByte Записывает байт в поток байтов.valueint32-разрядное целое число. В поток байтов записываются младшие 8 бит. Записывает байт в поток байтов.

Используется 8 младших битов параметра. 24 старших битов игнорируются.

writeBytes Записывает в поток байт последовательность байт длиной length из заданного массива байт (bytes), начиная со смещения offset (индекс отсчитывается от нуля).bytesflash.utils:ByteArrayОбъект ByteArray. offsetuint0Отсчитываемое от нуля значение индекса, определяющее положение начала записи в массив. lengthuint0Целое число без знака, определяющее глубину буфера для записи. Записывает в поток байт последовательность байт длиной length из заданного массива байт (bytes), начиная со смещения offset (индекс отсчитывается от нуля).

Если параметр length опущен, применение длины по умолчанию, равной 0, приведет к тому, что метод будет записывать весь буфер, начиная со смещения offset. Если также опустить параметр offset, будет записываться весь буфер.

Если параметры offset или length находятся за пределами диапазона, то они корректируются так, чтобы совпасть с началом и концом массива bytes.

writeDouble Записывает в поток байтов число IEEE 754 с двойной точностью (64-разрядное) и плавающей запятой.valueNumberЧисло с двойной точностью (64-разрядное) и плавающей запятой. Записывает в поток байтов число IEEE 754 с двойной точностью (64-разрядное) и плавающей запятой. writeFloat Записывает в поток байтов число IEEE 754 с одинарной точностью (32-разрядное) и плавающей запятой.valueNumberЧисло с одинарной точностью (32-разрядное) и плавающей запятой. Записывает в поток байтов число IEEE 754 с одинарной точностью (32-разрядное) и плавающей запятой. writeInt Записывает в поток байтов 32-разрядное целое число со знаком.valueintЦелое число, записываемое в поток байтов. Записывает в поток байтов 32-разрядное целое число со знаком. writeMultiByte Записывает многобайтовую строку в поток байтов с использованием заданного набора знаков.valueStringЗаписываемое значение строки. charSetStringСтрока, определяющая используемый набор символов. Возможные строки наборов символов: "shift_jis", "cn-gb", "iso-8859-1" и другие. Полный список см. в разделе Поддерживаемые наборы символов. Записывает многобайтовую строку в поток байтов с использованием заданного набора знаков. writeObject Записывает объект в массив байтов в сериализованном формате AMF.objectСериализуемый объект. Записывает объект в массив байтов в сериализованном формате AMF. flash.net.registerClassAlias()writeShort Записывает в поток байтов 16-разрядное целое число.valueint32-разрядное целое число, из которого в поток байтов записывается 16 младших бит. Записывает в поток байтов 16-разрядное целое число. Используется 16 младших битов параметра. 16 старших битов игнорируются. writeUTFBytes Записывает строку UTF-8 в поток байтов.valueStringЗаписываемое значение строки. Записывает строку UTF-8 в поток байтов. Аналогично writeUTF(), с тем различием, что writeUTFBytes() не вставляет перед строкой 16-разрядное слово, указывающее длину. writeUTF Записывает строку UTF-8 в поток байтов.Если длина превышает 65535. RangeErrorRangeErrorvalueStringЗаписываемое значение строки. Записывает строку UTF-8 в поток байтов. Сначала записывается длина строки UTF-8 в байтах (в виде 16-разрядного целого числа), за которой следуют байты символов строки. writeUnsignedInt Записывает в поток байтов 32-разрядное целое число без знака.valueuintБеззнаковое целое число, записываемое в поток байтов. Записывает в поток байтов 32-разрядное целое число без знака. bytesAvailable Число байтов данных, доступных для чтения от текущей позиции в массиве байтов до конца массива.uint Число байтов данных, доступных для чтения от текущей позиции в массиве байтов до конца массива.

Каждый раз, когда выполняется доступ к объекту ByteArray, в сочетании с методами чтения следует использовать свойство bytesAvailable. Это позволит обеспечить чтение действительных данных.

defaultObjectEncoding Обозначает кодировку объекта по умолчанию класса ByteArray для использования в новом экземпляре ByteArray.uint Обозначает кодировку объекта по умолчанию класса ByteArray для использования в новом экземпляре ByteArray. При создании экземпляра ByteArray используется значение кодировки defaultObjectEncoding. Свойство defaultObjectEncoding инициализируется в ObjectEncoding.AMF3.

Когда объект записывается или считывается из двоичных данных, свойство objectEncoding указывает используемую версию формата: формат ActionScript 3.0, ActionScript 2.0 или ActionScript 1.0. Значение представлено константой из класса ObjectEncoding.

Класс ObjectEncodingflash.utils.ByteArray.objectEncoding
endian Изменяет или считывает порядок байтов данных: Endian.BIG_ENDIAN или Endian.LITTLE_ENDIAN.String Изменяет или считывает порядок байтов данных: Endian.BIG_ENDIAN или Endian.LITTLE_ENDIAN. Класс Endianlength Длина объекта ByteArray в байтах.uint Длина объекта ByteArray в байтах.

Если длина установлена в значение, превышающее текущую длину, правая часть массива байтов заполняется нулями.

Если длина установлена в значение, меньшее текущей длины, выполняется усечение массива байтов.

objectEncoding Позволяет определить, какой формат — ActionScript 3.0, ActionScript 2.0 или ActionScript 1.0, — должен применяться при записи или чтении из экземпляра ByteArray.uint Позволяет определить, какой формат — ActionScript 3.0, ActionScript 2.0 или ActionScript 1.0, — должен применяться при записи или чтении из экземпляра ByteArray. Значение представлено константой из класса ObjectEncoding. Класс ObjectEncodingflash.utils.ByteArray.defaultObjectEncodingposition Перемещает или возвращает текущую позицию указателя файла в объекте ByteArray (в байтах).uint Перемещает или возвращает текущую позицию указателя файла в объекте ByteArray (в байтах). При следующем вызове метода чтения с этого положения начинается чтение, а при вызове метода записи начинается запись.
IDataOutput В интерфейсе IDataOutput предусмотрен набор методов для записи двоичных данных. В интерфейсе IDataOutput предусмотрен набор методов для записи двоичных данных. В операциях ввода-вывода этот интерфейс дополняет интерфейс IDataInput, который считывает двоичные данные. Интерфейс IDataOutput реализован в классах FileStream, Socket и ByteArray.

По умолчанию все операции IDataInput и IDataOutput используют порядок bigEndian (у старшего байта последовательности меньший адрес), и являются неблокирующими.

Расширение знака имеет значение только при чтении данных, но не при их записи. Поэтому для работы с IDataInput.readUnsignedByte() и IDataInput.readUnsignedShort() не требуется создавать отдельные методы записи. Другими словами:

  • IDataOutput.writeByte() используется с IDataInput.readUnsignedByte() и IDataInput.readByte().
  • IDataOutput.writeShort() используется с IDataInput.readUnsignedShort() и IDataInput.readShort().
В следующем примере класс DataOutputExample используется для записи в массив байтов логического значения и представления числа «пи» с двойной точностью и плавающей запятой. Это можно сделать, выполнив следующие действия:
  1. Объявляется новый экземпляр объекта ByteArray byteArr.
  2. Записывается эквивалент байтового логического значения false и эквивалент числа «пи» с двойной точностью и плавающей запятой.
  3. Считывается логическое значение и число двойной точности с плавающей запятой.

Обратите внимание на то, что в конце добавляется сегмент кода для проверки ошибок конца файла. Это позволяет прекратить считывание потока байтов по достижении его окончания.

package { import flash.display.Sprite; import flash.utils.ByteArray; import flash.errors.EOFError; public class DataOutputExample extends Sprite { public function DataOutputExample() { var byteArr:ByteArray = new ByteArray(); byteArr.writeBoolean(false); byteArr.writeDouble(Math.PI); byteArr.position = 0; try { trace(byteArr.readBoolean()); // false } 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. } } } }
Интерфейс IDataInputendianКласс FileStreamКласс SocketКласс URLStreamКласс ByteArraywriteBoolean Записывает логическое значение.valueBooleanЛогическое значение, показывающее, какой байт записывается. Если параметр имеет значение true, записывается 1; если false, записывается 0. Записывает логическое значение. Записывается один байт, соответствующий параметру value, 1 в случае значения true и 0 в случае значения false. writeByte Записывает байт.valueintЗначение байта в виде целого числа. Записывает байт. Используются 8 младших битов параметра, а 24 старших битов игнорируются. writeBytes Записывает последовательность байтов из заданного массива байт bytes, начиная с байта, заданного параметром offset (используя индекс с нулевой базой), длиной, заданной параметром length, в поток файлов, байтов или массив байтов.bytesflash.utils:ByteArrayМассив байтов для записи. offsetuint0Индекс с нулевой базой, определяющий положение в массиве для начала записи. lengthuint0Целое число без знака, определяющее глубину буфера для записи. Записывает последовательность байтов из заданного массива байтов bytes, начиная с байта, заданного параметром offset (используя индекс с нулевой базой), длиной, заданной параметром length, в поток файлов, байтов или массив байтов.

Если параметр length опущен, применение длины по умолчанию, равной 0, приведет к тому, что будет записан весь буфер, начиная со значения параметра offset. Если также опустить параметр offset, будет записываться весь буфер.

Если параметры offset или length находятся за пределами диапазона, то они корректируются так, чтобы совпасть с началом и концом массива bytes.

writeDouble Записывает число IEEE 754 с двойной точностью (64-разрядное) и плавающей запятой.valueNumberЧисло с двойной точностью (64-разрядное) и плавающей запятой. Записывает число IEEE 754 с двойной точностью (64-разрядное) и плавающей запятой. writeFloat Записывает число IEEE 754 с одинарной точностью (32-разрядное) и плавающей запятой.valueNumberЧисло с одинарной точностью (32-разрядное) и плавающей запятой. Записывает число IEEE 754 с одинарной точностью (32-разрядное) и плавающей запятой. writeInt Записывает 32-разрядное целое число со знаком.valueintЗначение байта в виде целого числа со знаком. Записывает 32-разрядное целое число со знаком. writeMultiByte Записывает в поток файлов, байтов или массив байтов многобайтовую строку заданной длины с использованием заданного набора символов.valueStringЗаписываемое значение строки. charSetStringСтрока, определяющая используемый набор символов. Возможные строки наборов символов: "shift_jis", "cn-gb", "iso-8859-1" и другие. Полный список см. в разделе Поддерживаемые наборы символов. Записывает в поток файлов, байтов или массив байтов многобайтовую строку заданной длины с использованием заданного набора символов. writeObject Записывает объект в поток файлов, байтов или массив байтов в сериализованном формате AMF.objectОбъект для сериализации. Записывает объект в поток файлов, байтов или массив байтов в сериализованном формате AMF. objectEncodingflash.net.registerClassAlias()writeShort Записывает 16-разрядное целое число.valueintЗначение байта в виде целого числа. Записывает 16-разрядное целое число. Используются 16 младших битов параметра, а 16 старших битов игнорируются. writeUTFBytes Записывает строку UTF-8.valueStringЗаписываемое значение строки. Записывает строку UTF-8. Аналогично writeUTF(), но строке не предшествует 16-разрядное слово, указывающее длину. writeUTF Записывает в поток файлов, байтов или массив байтов строку UTF-8.Если длина превышает 65535. RangeErrorRangeErrorvalueStringЗаписываемое значение строки. Записывает в поток файлов, байтов или массив байтов строку UTF-8. Сначала записывается длина строки UTF-8 в байтах (в виде 16-разрядного целого числа), за которой следуют байты символов строки. writeUnsignedInt Записывает 32-разрядное целое число без знака.valueuintЗначение байта в виде целого числа без знака. Записывает 32-разрядное целое число без знака. endian Порядок байтов данных, константа BIG_ENDIAN или LITTLE_ENDIAN класса Endian.String Порядок байтов данных, константа BIG_ENDIAN или LITTLE_ENDIAN класса Endian. Класс EndianobjectEncoding Указывает, какой формат, AMF3 или AMF0, используется для записи или чтения двоичных данных с помощью метода writeObject().uint Указывает, какой формат, AMF3 или AMF0, используется для записи или чтения двоичных данных с помощью метода writeObject(). Значение представлено константой из класса ObjectEncoding. IDataInput.readObject()writeObject()Класс ObjectEncoding
Endian Класс Endian содержит значения, указывающие порядок байтов, применяемый для представления многобайтовых чисел.Object Класс Endian содержит значения, указывающие порядок байтов, применяемый для представления многобайтовых чисел. Порядок бывает bigEndian (первым идет старший байт) или littleEndian (первым идет младший байт).

Содержимое в Flash Player или Adobe® AIR™ может взаимодействовать с сервером с помощью двоичного протокола этого сервера напрямую. Некоторые серверы используют порядок следования байтов bigEndian, а некоторые — littleEndian. Большинство серверов в Интернете использует порядок следования байтов bigEndian, поскольку он является «порядком следования байтов в сети». Порядок следования байтов littleEndian популярен потому, что используется в архитектуре Intel x86. Необходимо использовать тот порядок следования байтов, который соответствует протоколу сервера, отправляющего и получающего данные.

flash.utils.ByteArray.endianflash.filesystem.FileStream.endianflash.utils.IDataInput.endianflash.utils.IDataOutput.endianflash.net.Socket.endianflash.net.URLStream.endianBIG_ENDIAN Показывает, что наиболее значимый байт многобайтового числа располагается первым в последовательности байтов.bigEndianString Показывает, что наиболее значимый байт многобайтового числа располагается первым в последовательности байтов.

Шестнадцатеричное число 0x12345678 состоит из 4 байтов (2 шестнадцатеричных разряда на байт). Старшим байтом является 0x12. Младшим — 0x78. (Для эквивалентного десятеричного числа 305419896 старшим разрядом является 3, а младшим — 6.)

Поток, в котором используется порядок следования байтов bigEndian (первым идет старший байт), выдает следующее:

	 12 34 56 78
	 
LITTLE_ENDIAN Показывает, что наименее значимый байт многобайтового числа располагается первым в последовательности байтов.littleEndianString Показывает, что наименее значимый байт многобайтового числа располагается первым в последовательности байтов.

Шестнадцатеричное число 0x12345678 состоит из 4 байтов (2 шестнадцатеричных разряда на байт). Старшим байтом является 0x12. Младшим — 0x78. (Для эквивалентного десятеричного числа 305419896 старшим разрядом является 3, а младшим — 6.)

Поток, в котором используется порядок следования байтов littleEndian (первым идет младший байт), выдает следующее:

	 78 56 34 12
	 
IExternalizable Интерфейс IExternalizable обеспечивает управление сериализацией класса по мере его шифрования в поток данных. Интерфейс IExternalizable обеспечивает управление сериализацией класса по мере его шифрования в поток данных. Методы writeExternal() и readExternal() интерфейса IExternalizable реализуются классом, что позволяет осуществлять настройку содержимого и формата потока данных (но не имя класса или тип) для объекта и его супертипов. Каждый класс должен сериализовать и восстанавливать состояние своих экземпляров. Чтобы состояние можно было сохранять, эти методы должны быть симметричными супертипу. Эти методы заменяют исходное поведение сериализации Action Message Format (AMF).

Если в классе не реализован интерфейс IExternalizable, или если класс не наследует этот интерфейс у класса, в котором он реализован, то экземпляр класса будет сериализован только с помощью стандартного механизма общедоступных элементов. В результате закрытые, внутренние и защищенные элементы класса будут недоступны.

Для сериализации закрытых элементов класс должен использовать интерфейс IExternalizable. Например, следующий класс не сериализует ни один из своих элементов, поскольку они являются закрытыми:

class Example { private var one:int; private var two:int; }

Однако при реализации интерфейса IExternalizable появляется возможность записи закрытых элементов класса в поток данных и их чтения из этого потока, как показано ниже:

class Example implement IExternalizable { private var one:int; private var two:int; public function writeExternal(output:IDataOutput) { output.writeInt(one); output.writeInt(two); } public function readExternal(input:IDataInput) { one = input.readInt(); two = input.readInt(); } }

Примечание. Если в классе реализован интерфейс IExternalizable, к экземплярам этого класса стандартная сериализация не применяется. Если этот класс наследует у суперкласса общедоступные элементы, ими следует управлять с осторожностью.

Когда у подкласса класса, в котором реализован интерфейс IExternalizable, есть собственные закрытые элементы, в подклассе необходимо переопределить методы этого интерфейса, как указано ниже:

public class Base implements IExternalizable { private var one:Boolean; public function writeExternal(output:IDataOutput):void { output.writeBoolean(one); } public function readExternal(input:IDataInput):void { one = input.readBoolean(); } } public class Example extends Base { private var one:String; public override function writeExternal(output:IDataOutput):void { super.writeExternal(output); output.writeUTF(one); } public override function readExternal(input:IDataInput):void { super.readExternal(input); one = input.readUTF(); } }

Интерфейс IExternalizable также можно использовать для сжатия данных перед их записью в поток данных. Например:

class Example implements IExternalizable { public var one:Boolean; public var two:Boolean; public var three:Boolean; public var four:Boolean; public var five:Boolean; public var six:Boolean; public var seven:Boolean; public var eight:Boolean; public function writeExternal(output:IDataOutput) { var flag:int = 0; if (one) flag |= 1; if (two) flag |= 2; if (three) flag |= 4; if (four) flag |= 8; if (five) flag |= 16; if (six) flag |= 32; if (seven) flag |= 64; if (eight) flag |= 128; output.writeByte(flag); } public function readExternal(input:IDataInput) { var flag:int = input.readByte(); one = (flag & 1) != 0; two = (flag & 2) != 0; three = (flag & 4) != 0; four = (flag & 8) != 0; five = (flag & 16) != 0; six = (flag & 32) != 0; seven = (flag & 64) != 0; eight = (flag & 128) != 0; } }
flash.net.ObjectEncodingreadExternal Путем реализации данного метода класс расшифровывает сам себя из потока данных с помощью методов интерфейса IDataInput.inputflash.utils:IDataInputИмя класса, в котором реализован интерфейс IDataInput. Путем реализации данного метода класс расшифровывает сам себя из потока данных с помощью методов интерфейса IDataInput. Этот метод должен считывать значения в той же последовательности и с теми же типами, как было записано методом writeExternal(). writeExternal Путем реализации данного метода класс шифрует сам себя для потока данных с помощью методов интерфейса IDataOutput.outputflash.utils:IDataOutputИмя класса, в котором реализован интерфейс IDataOutput. Путем реализации данного метода класс шифрует сам себя для потока данных с помощью методов интерфейса IDataOutput.
describeType Создает объект XML, описывающий объект ActionScript, который именуется как параметр метода.Объект XML, содержащий сведения об объекте, переданном в качестве параметра. В нем содержатся следующие сведения об объекте:
  • класс объекта;
  • атрибуты класса;
  • дерево наследования от класса к его базовым классам;
  • интерфейсы, унаследованные классом;
  • объявленные свойства экземпляра класса;
  • объявленные статические свойства класса;
  • методы экземпляра класса;
  • статические методы класса;
  • для каждого метода класса — имя, количество параметров, тип возвращаемого значения и типы параметров.

Примечание. describeType() показывает только общедоступные свойства и методы, и не показывает методы, которые являются закрытыми, внутренними для пакета или находятся в собственных пространствах имен.

XML
valueОбъект, для которого требуется описание типа. Этому методу можно передать любое значение ActionScript, включая любые доступные типы, экземпляры объектов, примитивные типы (например, uint) и объекты классов ActionScript.
Создает объект XML, описывающий объект ActionScript, который именуется как параметр метода. В этом методе реализована концепция программирования отражение для языка ActionScript.

Если параметр value является экземпляром типа, возвращаемый объект XML содержит все свойства экземпляра, имеющие этот тип, но не содержит статических свойств. Это условие можно проверить при анализе объекта XML посредством исследования значения атрибута isStatic тега <type>, который содержит значение false, если параметр value является экземпляром типа.

Чтобы получить статические свойства типа, передайте для параметра value сам тип. Возвращаемый объект XML содержит не только статические свойства типа, но также все свойства его экземпляра. Свойства экземпляра вложены в тег под именем <factory>, что позволяет отличить их от статических свойств. В этом случае атрибут isStatic тега <type> содержит значение true.

Примечание. Если требуется только пройти по иерархии наследования объекта, а остальные сведения, предоставляемые функцией describeType() не требуются, вместо последней используйте функции getQualifiedClassName() и getQualifiedSuperclassName().

В следующей таблице описываются некоторые теги и атрибуты объекта XML, создаваемого методом describeType() (все возвращенные имена классов и интерфейсов имеют полностью определенный формат).

ТегАтрибутОписание<type> Корневой тег объекта XML. nameИмя типа данных объекта ActionScript. baseНепосредственный суперкласс класса, определяющего объект ActionScript. Если объект ActionScript является объектом класса, значение равно Class. isDynamictrue, если класс, определяющий объект ActionScript, является динамическим. В противном случае содержит значение false. Если объект ActionScript является объектом класса, значение равно true, поскольку класс Class является динамическим. isFinaltrue, если класс, определяющий объект ActionScript, является последним. В противном случае содержит значение false. isStatictrue, если объект ActionScript является объектом класса или функцией конструктора. В противном случае содержит значение false. Этот атрибут называется isStatic, потому что если он содержит значение true, любые теги, не вложенные в тег factory являются статическими.<extendsClass> Для каждого суперкласса класса, определяющего объект ActionScript, существует отдельный тег extendsClass. typeИмя суперкласса, который расширяется классом, определяющим объект ActionScript.<implementsInterface> Для каждого интерфейса, который реализован классом, определяющим объект ActionScript, или любым из его суперклассов, существует отдельный тег implementsInterface. typeИмя интерфейса, который реализуется классом, определяющим объект ActionScript.<accessor> Accessor — это свойство, определяемое функциями получателя и установщика. nameИмя средства доступа. accessПрава доступа к свойству. Возможные значения: readonly, writeonly и readwrite. typeТип данных свойства. declaredByКласс, содержащий связанные функции получателя или установщика.<constant> Константа — это свойство, определяемое с помощью инструкции const. nameИмя константы. typeТип данных константы.<method> Фиксированное свойство — это переменная, константа или метод, объявленный как часть определения класса. nameИмя метода. declaredByКласс, содержащий определение метода. returnTypeТип данных значения, возвращаемого методом.<parameter> Для каждого параметра, определяемого методом, существует отдельный тег parameter. Этот тег всегда является вложенным в тег <method>. indexЧисло, соответствующее положению параметра в списке параметров метода. Первый параметр имеет номер 1. typeТип данных параметра. optionaltrue, если параметр является необязательным, в противном случае — false.<variable> Переменная — это свойство, определенное с помощью инструкции var. nameИмя переменной. typeТип данных переменной.<factory> Если объект ActionScript является объектом класса или функцией конструктора, все свойства и методы экземпляра являются вложенными в этот тег. Если атрибут isStatic тега <type> содержит значение true, все свойства и методы, не вложенные в тег <factory>, являются статическими. Этот тег присутствует только в случае, если объект ActionScript является объектом класса или функцией конструктора.
package { import flash.display.Sprite; import flash.utils.describeType; public class DescribeTypeExample extends Sprite { public function DescribeTypeExample() { var child:Sprite = new Sprite(); var description:XML = describeType(child); trace(description..accessor.@name.toXMLString()); } } }
getQualifiedClassName()getQualifiedSuperclassName()
escapeMultiByte Возвращает изолированную копию входной строки, зашифрованную с помощью UTF-8 или системной кодовой страницы, в зависимости от значения System.useCodePage.Копия входной строки с управляющими символами. Если параметр System.useCodePage содержит значение true, строка с управляющими символами кодируется в системной кодировке. Если параметр System.useCodePage содержит значение false, строка с управляющими символами кодируется в UTF-8. Например, если параметр System.useCodePage содержит значение false, входная строка "Crüe" будет передана как "Cr%C3%BCe" во всех системах. Если параметр system.useCodePage содержит значение true, и в системе используется кодовая страница "Latin", "Crüe" будет передано как "Cr%FCe". Если в системе используется кодировка, отличная от «Latin», в которой отсутствует буква «ü», результатом, вероятно, будет строка «Cr?e». В ходе преобразования управляющих символов строки «Cr%C3%BCe», когда параметр System.useCodePage содержит значение true, в различных системах будут получаться различные непредсказуемые результаты (например, «Crüe» в системе с кодировкой «Latin»). Аналогично, преобразование управляющих символов строки «Cr%FCe», когда параметр System.useCodePage содержит значение false, может привести к получению строки «Cre», «Cr?e» или других ее видов, в зависимости от кодировки системы. StringvalueStringСтрока, которую необходимо преобразовать с использованием управляющих символов. Возвращает изолированную копию входной строки, зашифрованную с помощью UTF-8 или системной кодовой страницы, в зависимости от значения System.useCodePage. Использование параметра System.useCodePage позволяет среде выполнения получать доступ к содержимому, использующему локальные кодировки, но только в системах, использующих такие кодировки. Например, данные на японском языке, закодированные как Shift-JIS, будут правильно преобразованы только в операционной системе, в которой по умолчанию используется японская кодировка. getDefinitionByName Возвращает ссылку на объект класса, заданного параметром name.Общедоступного определения с указанным именем не существует. ReferenceErrorReferenceErrorВозвращает ссылку на объект класса, заданного параметром name. ObjectnameStringИмя класса. Возвращает ссылку на объект класса, заданного параметром name. В следующем примере для создания оранжевого квадрата в рабочей области используется класс GetDefinitionByNameExample. Это можно сделать, выполнив следующие действия:
  1. Объявляются переменные для оранжевого цвета фона и размера в 80 пикселей, которые позже будут использованы при рисовании квадрата.
  2. В конструкторе классу Sprite назначается переменная ClassReference типа Class.
  3. Создается экземпляр объекта ClassReference с именем instance.
  4. Поскольку instance по ссылке является объектом Sprite, квадрат можно нарисовать и добавить в список отображения с помощью методов, доступных классу Sprite.
package { import flash.display.DisplayObject; import flash.display.Sprite; import flash.utils.getDefinitionByName; public class GetDefinitionByNameExample extends Sprite { private var bgColor:uint = 0xFFCC00; private var size:uint = 80; public function GetDefinitionByNameExample() { var ClassReference:Class = getDefinitionByName("flash.display.Sprite") as Class; var instance:Object = new ClassReference(); instance.graphics.beginFill(bgColor); instance.graphics.drawRect(0, 0, size, size); instance.graphics.endFill(); addChild(DisplayObject(instance)); } } }
getQualifiedClassName Возвращает полное имя класса для объекта.Строка, в которой содержится полное имя класса. StringvalueОбъект, для которого требуется полное имя класса. Этому методу можно передать любое значение ActionScript, включая любые доступные типы, экземпляры объектов, примитивные типы (например, uint) и объекты классов ActionScript. Возвращает полное имя класса для объекта. describeType()getQualifiedSuperclassName()getQualifiedSuperclassName Возвращает полное имя класса для базового класса объекта, заданного параметром value.Полное базовое имя класса или null, если такое имя отсутствует. StringvalueЛюбое значение. Возвращает полное имя класса для базового класса объекта, заданного параметром value. Эта функция обеспечивает более быстрый способ получения имени базового класса по сравнению с describeType(), но она не предоставляет сведения, которые передает функция describeType().

После получения имени класса с помощью этой функции имя класса можно преобразовать с помощью функции getDefinitionByName() в ссылку на класс.

Примечание. Эта функция ограничивается иерархиями экземпляра, а функция describeType() использует иерархии объекта класса, если параметр value является типом данных. Вызов функции describeType() по отношению к типу данных возвращает суперкласс на основе иерархии объекта класса, в которой все объекты класса унаследованы из класса Class. При этом функция getQualifiedSuperclassName() игнорирует иерархию объекта класса и возвращает суперкласс на основе более привычной иерархии экземпляра. Например, при вызове getQualifiedSuperclassName(String) возвращается Object, хотя технически объект класса String наследуется из класса Class. Другими словами, результаты совпадают независимо от использования экземпляра типа или самого типа.

describeType()getDefinitionByName()getQualifiedClassName()
getTimer Используется для вычисления относительного времени.Число миллисекунд, прошедшее с момента инициализации среды выполнения (при обработке ActionScript 2.0) или с момента запуска виртуальной машины (при обработке ActionScript 3.0). Если среда выполнения начинает воспроизведение одного SWF-файла, а после загружается другой SWF-файл, возвращается значение для момента загрузки первого SWF-файла. int Используется для вычисления относительного времени. Когда среда выполнения Flash обрабатывает ActionScript 3.0, этот метод возвращает число миллисекунд, прошедшее с момента запуска виртуальной машины среды выполнения Flash для ActionScript 3.0 (AVM2). Когда среда выполнения Flash обрабатывает ActionScript 2.0, этот метод возвращает число миллисекунд, прошедшее с момента инициализации среды выполнения Flash. Среды выполнения Flash использует две виртуальных машины для обработки ActionScript. AVM1 — это виртуальная машина ActionScript, используем для обработки ActionScript 1.0 и 2.0. AVM2 — это виртуальная машина ActionScript, используемая для обработки ActionScript 3.0. Метод getTimer() ведет себя по-разному для AVM1 и AVM2.

Дату календаря (метку времени) см. в объекте Date.

В следующем примере для получения и вывода количества миллисекунд, которое прошло с момента инициализации среды выполнения, используется класс GetTimerExample. package { import flash.utils.getTimer; import flash.display.Sprite; public class GetTimerExample extends Sprite { public function GetTimerExample() { var duration:uint = getTimer(); trace("duration: " + duration); } } }
flash.display.AVM1MovieКласс Date
unescapeMultiByte Возвращает неэкранированную копию входной строки, расшифрованную из системной кодовой страницы или UTF-8, в зависимости от значения System.useCodePage.Копия входной строки без управляющих символов. Если параметр System.useCodePage содержит значение true, строка с управляющими символами декодируется из системной кодировки. Если параметр System.useCodePage содержит значение false, строка с управляющими символами декодируется из UTF-8. Например, если входной является строка «Crüe», а параметр System.useCodePage содержит значение false, то результатом будет «Crüe» во всех системах. Если параметр System.useCodePage содержит значение true, и входной является строка «Cr%FCe», а в системе используется кодировка Latin, результатом также будет «CrA?e». В ходе преобразования управляющих символов строки «Cr%C3%BCe», когда параметр System.useCodePage содержит значение true, в различных системах будут получаться различные непредсказуемые результаты (например, «CrAA?e» в системе с кодировкой Latin). Аналогично, преобразование управляющих символов строки «Cr%FCe», когда параметр System.useCodePage содержит значение false, может привести к получению строки «Cre», «Cr?e» или других ее видов, в зависимости от кодировки системы. StringvalueStringСтрока, управляющие символы которой требуется преобразовать. Возвращает неизолированную копию входной строки, расшифрованную из системной кодовой страницы или UTF-8, в зависимости от значения System.useCodePage. Использование параметра System.useCodePage позволяет среде выполнения получать доступ к содержимому, использующему локальные кодировки, но только в системах, использующих такие кодировки. Например, данные на японском языке, закодированные как Shift-JIS, будут правильно преобразованы только в операционной системе, в которой по умолчанию используется японская кодировка. clearInterval Отменяет указанный вызов метода setInterval().iduintИдентификатор вызова setInterval(), можно присвоить переменной, как показано ниже: Отменяет указанный вызов метода setInterval(). В следующем примере используется метод setInterval() для создания интервала задержки, по истечении которого вызывается метод myRepeatingFunction() через повторяющиеся интервалы длительностью в одну секунду.

При каждом вызове метода myRepeatingFunction увеличивается значение свойства counter, и когда оно становится равным значению свойства stopCount, вызывается метод clearInterval() со свойством intervalId, представляющим собой идентификатор обращения к ранее созданному интервалу.

package { import flash.display.Sprite; import flash.utils.*; public class ClearIntervalExample extends Sprite { private var intervalDuration:Number = 1000; // duration between intervals, in milliseconds private var intervalId:uint; private var counter:uint = 0; private var stopCount:uint = 3; public function ClearIntervalExample() { intervalId = setInterval(myRepeatingFunction, intervalDuration, "Hello", "World"); } public function myRepeatingFunction():void { trace(arguments[0] + " " + arguments[1]); counter++; if(counter == stopCount) { trace("Clearing Interval"); clearInterval(intervalId); } } } }
setInterval()
clearTimeout Отменяет указанный вызов метода setTimeout().iduintИдентификатор вызова setTimeout(), присваиваемый переменной, как показано ниже: Отменяет указанный вызов метода setTimeout(). В примере ниже метод setTimeout() используется для вызова другого метода через указанный промежуток времени.

Создается цикл до миллиона. Если система может обработать этот запрос быстрее, чем за одну секунду, clearTimeout() удалит запрос setTimeout(), и метод myDelayedFunction() не будет вызван.

package { import flash.display.Sprite; import flash.utils.*; public class ClearTimeoutExample extends Sprite { private var delay:Number = 1000; // delay before calling myDelayedFunction private var intervalId:uint; private var count:uint = 1000000; public function ClearTimeoutExample() { intervalId = setTimeout(myDelayedFunction, delay); startCounting(); } public function startCounting():void { var i:uint = 0; do { if(i == count-1) { clearTimeout(intervalId); trace("Your computer can count to " + count + " in less than " + delay/1000 + " seconds."); } i++; } while(i < count) } public function myDelayedFunction():void { trace("Time expired."); } } }
setTimeout()
setInterval Выполняет функцию с заданным интервалом (в миллисекундах).Уникальный числовой идентификатор отложенного процесса. Используйте этот идентификатор для отмены процесса, вызвав метод clearInterval(). uintclosureFunctionИмя выполняемой функции. Не включайте кавычки или скобки, а также не указывайте параметры вызываемой функции. Например, следует использовать functionName, а не functionName() или functionName(param). delayNumberИнтервал в миллисекундах. argumentsНеобязательный список аргументов, передаваемых выполняемой функции. Выполняет функцию с заданным интервалом (в миллисекундах).

Вместо использования метода setInterval() рекомендуется создавать объект Timer с заданным интервалом, в котором в качестве параметра repeatCount используется значение 0 (то есть таймер выполняется бесконечно).

Если предполагается использование метода clearInterval() для отмены вызова setInterval(), метод setInterval() обязательно должен быть назначен переменной (к которой в последующем будет обращаться функция clearInterval()). Если не вызвать функцию clearInterval() для отмены вызова setInterval(), объект, содержащий функцию очистки заданного интервала, не будет удален.

В следующем примере используется метод setInterval() для создания интервала задержки, по истечении которого вызывается метод myRepeatingFunction() через повторяющиеся интервалы длительностью в одну секунду. package { import flash.display.Sprite; import flash.utils.*; public class SetIntervalExample extends Sprite { private var intervalDuration:Number = 1000; // duration between intervals, in milliseconds public function SetIntervalExample() { var intervalId:uint = setInterval(myRepeatingFunction, intervalDuration, "Hello", "World"); } public function myRepeatingFunction():void { trace(arguments[0] + " " + arguments[1]); } } }
clearInterval()
setTimeout Выполняет указанную функцию с определенной задержкой (в миллисекундах).Уникальный числовой идентификатор отложенного процесса. Используйте этот идентификатор для отмены процесса, вызвав метод clearTimeout(). uintclosureFunctionИмя выполняемой функции. Не включайте кавычки или скобки, а также не указывайте параметры вызываемой функции. Например, следует использовать functionName, а не functionName() или functionName(param). delayNumberЗадержка (в миллисекундах) до выполнения функции. argumentsНеобязательный список аргументов, передаваемых выполняемой функции. Выполняет указанную функцию с определенной задержкой (в миллисекундах).

Вместо использования этого метода рекомендуется создавать объект Timer с указанным интервалом, в котором в качестве параметра repeatCount используется значение 1 (то есть таймер запускается один раз).

Если предполагается использование метода clearTimeout() для отмены вызова setTimeout(), метод setTimeout() обязательно должен быть присвоен переменной (к которой в последующем будет обращаться функция clearTimeout()). Если не вызвать функцию clearTimeout() для отмены вызова setTimeout(), объект, содержащий функцию очистки заданного интервала, не будет удален.

В примере ниже метод setTimeout() используется для вызова другого метода через указанный промежуток времени. package { import flash.display.Sprite; import flash.utils.*; public class SetTimeoutExample extends Sprite { private var delay:Number = 1000; // delay before calling myDelayedFunction public function SetTimeoutExample() { var intervalId:uint = setTimeout(myDelayedFunction, delay, "Hello", "World"); } public function myDelayedFunction():void { trace(arguments[0] + " " + arguments[1]); } } }
clearTimeout()
Timer Класс Timer является интерфейсом для таймеров, позволяющих выполнять код в заданные интервалы времени.flash.events:EventDispatcher Класс Timer является интерфейсом для таймеров, позволяющих выполнять код в заданные интервалы времени. Для запуска таймера служит метод start(). Для настройки кода на выполнение через интервал таймера добавьте прослушиватель события timer.

Объекты Timer можно создавать для однократного запуска или повторяющегося выполнения кода по расписанию. В зависимости от частоты кадров в SWF-файле или системе, в которой запущена среда выполнения, (доступная память и другие факторы), среда выполнения может отправлять события с небольшим сдвигом. Например, если SWF-файл настроен на проигрывание с частотой 10 кадров в секунду, т.е. с интервалом в 100 миллисекунд, а таймер настроен на запуск события через 80 миллисекунд, то событие будет запускаться примерно через 100-миллисекундный интервал. Сценарии, требующие большого объема памяти, также могут приводить к сдвигу времени отправки событий.

В следующем примере используется класс TimerExample для демонстрации настройки метода прослушивателя timerHandler() на прослушивание передачи нового события TimerEvent. Таймер запускается при вызове метода start(), а события начинают передаваться, начиная с этого момента. package { import flash.utils.Timer; import flash.events.TimerEvent; import flash.display.Sprite; public class TimerExample extends Sprite { public function TimerExample() { var myTimer:Timer = new Timer(1000, 2); myTimer.addEventListener("timer", timerHandler); myTimer.start(); } public function timerHandler(event:TimerEvent):void { trace("timerHandler: " + event); } } }
timerComplete Передается каждый раз при выполнении количества запросов, указанного свойством Timer.repeatCount.flash.events.TimerEvent.TIMER_COMPLETEflash.events.TimerEvent Передается каждый раз при выполнении количества запросов, указанного свойством Timer.repeatCount. timer Передается каждый раз при достижении объектом Timer интервала, указанного в свойстве Timer.delay.flash.events.TimerEvent.TIMERflash.events.TimerEvent Передается каждый раз при достижении объектом Timer интервала, указанного в свойстве Timer.delay. Timer Создает новый объект Timer с заданными состояниями delay и repeatCount.если указанная задержка является отрицательным числом или не является конечным числом ErrorErrordelayNumberЗадержка в миллисекундах между событиями таймера. Не рекомендуется задавать свойству delay значение меньше 20 миллисекунд. Частота объекта Timer ограничена 60 кадрами в секунду, то есть задержка меньше 16,6 миллисекунд вызывает проблемы во время выполнения. repeatCountint0Определяет количество повторений. Если ноль, таймер повторяет действия бесконечно. Если не равно нулю, таймер запускается указанное количество раз, а затем останавливается. Создает новый объект Timer с заданными состояниями delay и repeatCount.

Таймер не запускается автоматически, для его запуска необходимо вызвать метод start().

В следующем примере пользователю дается 90 секунд на ввод ответа в текстовое поле. Кроме того, каждые 30 секунд сообщение состояния оповещает пользователя о количестве оставшихся секунд.

Создается объект Timer, который запускается через 30 секунд (установлена задержка в 30000 миллисекунд) и повторяется три раза, всего — 90 секунд. (После третьего раза таймер останавливается).

Для таймера myTimer добавляется два прослушивателя событий. Первый срабатывает по событию TimerEvent.TIMER, которое происходит при каждом запуске таймера. Метод timerHandler() изменяет текст в текстовом поле statusTextField, выводя оставшееся количество секунд.

Примечание. Класс Timer отслеживает количество запусков (repeats), увеличивая число в свойстве currentCount.)

При последнем вызове таймера отправляется событие TimerEvent.TIMER_COMPLETE и вызывается метод completeHandler(). Метод completeHandler() изменяет тип текстового поля inputTextField с INPUT на DYNAMIC. Это означает, что пользователь больше не может вводить или изменять текст.

package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldType; import flash.text.TextFieldAutoSize; import flash.utils.Timer; import flash.events.TimerEvent; import flash.events.Event; public class Timer_constructorExample extends Sprite { private var statusTextField:TextField = new TextField(); private var inputTextField:TextField = new TextField(); private var delay:uint = 30000; private var repeat:uint = 3; private var myTimer:Timer = new Timer(delay, repeat); public function Timer_constructorExample() { inputTextField.x = 10; inputTextField.y = 10; inputTextField.border = true; inputTextField.background = true; inputTextField.height = 200; inputTextField.width = 200; inputTextField.multiline = true; inputTextField.wordWrap = true; inputTextField.type = TextFieldType.INPUT; statusTextField.x = 10; statusTextField.y = 220; statusTextField.background = true; statusTextField.autoSize = TextFieldAutoSize.LEFT; myTimer.start(); statusTextField.text = "You have " + ((delay * repeat) / 1000) + " seconds to enter your response."; myTimer.addEventListener(TimerEvent.TIMER, timerHandler); myTimer.addEventListener(TimerEvent.TIMER_COMPLETE, completeHandler); addChild(inputTextField); addChild(statusTextField); } private function timerHandler(e:TimerEvent):void{ repeat--; statusTextField.text = ((delay * repeat) / 1000) + " seconds left."; } private function completeHandler(e:TimerEvent):void { statusTextField.text = "Times Up."; inputTextField.type = TextFieldType.DYNAMIC; } } }
reset Останавливает таймер, если он выполняется, и заново присваивает свойству currentCount значение 0, аналогично кнопке сброса на секундомере. Останавливает таймер, если он выполняется, и заново присваивает свойству currentCount значение 0, аналогично кнопке сброса на секундомере. Затем, при вызове метода start() экземпляр выполняется количество раз, определяемое значением repeatCount. Timer.stop()start Запускает таймер, если он еще не выполняется. Запускает таймер, если он еще не выполняется. stop Останавливает таймер. Останавливает таймер. Когда метод start() вызывается после метода stop(), экземпляр таймера выполняется оставшееся количество раз, определяемое свойством repeatCount. Timer.reset()currentCount Общее число срабатываний таймера с момента его запуска с нуля.int Общее число срабатываний таймера с момента его запуска с нуля. Если таймер сбрасывается, учитываются только срабатывания после сброса. delay Задержка в миллисекундах между событиями таймера.NumberВызывает исключение, если указанная задержка является отрицательным числом или не является конечным числом. ErrorError Задержка в миллисекундах между событиями таймера. Если установить интервал задержки во время работы таймера, таймер будет перезапущен на текущей итерации repeatCount.

Примечание. Не рекомендуется задавать свойству delay значение меньше 20 миллисекунд. Частота объекта Timer ограничена 60 кадрами в секунду, то есть задержка меньше 16,6 миллисекунд вызывает проблемы во время выполнения.

repeatCount Общее число запусков, на которое настроен таймер.int Общее число запусков, на которое настроен таймер. Если количество повторений содержит значение 0, таймер продолжает работу бесконечно, либо до вызова метода stop(), либо до останова программы. Если количество повторений не равно нулю, таймер запускается указанное количество раз. Если значение количества повторений repeatCount совпадает со значением текущей итерации currentCount или меньше его, таймер останавливается и не запускается снова. running Текущее состояние таймера: если таймер выполняется, то true, в противном случае - false.Boolean Текущее состояние таймера: если таймер выполняется, то true, в противном случае - false.
CompressionAlgorithm Класс CompressionAlgorithm определяет строковые константы для имен параметров сжатия и распаковки.Object Класс CompressionAlgorithm определяет строковые константы для имен параметров сжатия и распаковки. Эти константы предназначены для использования в качестве значений параметра algorithm методов ByteArray.compress() и ByteArray.uncompress(). flash.utils.ByteArray.compress()flash.utils.ByteArray.uncompress()DEFLATE Определяет строку, которая должна использоваться для алгоритма сжатия deflate.deflateString Определяет строку, которая должна использоваться для алгоритма сжатия deflate. ZLIB Определяет строку, которая должна использоваться для алгоритма сжатия zlib.zlibString Определяет строку, которая должна использоваться для алгоритма сжатия zlib. IDataInput В интерфейсе IDataInput предусмотрен набор методов для чтения двоичных данных. В интерфейсе IDataInput предусмотрен набор методов для чтения двоичных данных. В операциях ввода-вывода этот интерфейс дополняет интерфейс IDataOutput, который записывает двоичные данные.

По умолчанию все операции IDataInput и IDataOutput используют порядок bigEndian (у старшего байта последовательности меньший адрес), и являются неблокирующими. Если данных недостаточно, возникает исключение EOFError. Для определения количества байтов, доступных для чтения, используйте свойство IDataInput.bytesAvailable.

Расширение знака имеет значение только при чтении данных, но не при их записи. Поэтому для работы с IDataInput.readUnsignedByte() и IDataInput.readUnsignedShort() не требуется создавать отдельные методы записи. Другими словами:

  • IDataOutput.writeByte() используется с IDataInput.readUnsignedByte() и IDataInput.readByte().
  • IDataOutput.writeShort() используется с IDataInput.readUnsignedShort() и IDataInput.readShort().
В следующем примере класс DataInputExample используется для записи в массив байтов логического значения и представления числа «пи» с двойной точностью и плавающей запятой. Это можно сделать, выполнив следующие действия:
  1. Объявляется новый экземпляр объекта ByteArray byteArr.
  2. Записывается эквивалент байтового логического значения false и эквивалент числа «пи» с двойной точностью и плавающей запятой.
  3. Считывается логическое значение и число двойной точности с плавающей запятой.

Обратите внимание на то, что в конце добавляется сегмент кода для проверки ошибок конца файла. Это позволяет прекратить считывание потока байтов по достижении его окончания.

package { import flash.display.Sprite; import flash.utils.ByteArray; import flash.errors.EOFError; public class DataInputExample extends Sprite { public function DataInputExample() { var byteArr:ByteArray = new ByteArray(); byteArr.writeBoolean(false); byteArr.writeDouble(Math.PI); byteArr.position = 0; try { trace(byteArr.readBoolean()); // false } 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. } } } }
Интерфейс IDataOutputendianКласс FileStreamКласс SocketКласс URLStreamКласс ByteArrayКласс EOFErrorreadBoolean Считывает логическое значение из потока файлов, байтов или массива байтов.Недостаточно данных, доступных для чтения. EOFErrorflash.errors:EOFErrorЛогическое значение будет true, если количество байтов не равно нулю, в остальных случаях оно будет false. Boolean Считывает логическое значение из потока файлов, байтов или массива байтов. Считывается один байт. Если этот байт ненулевой, то возвращается значение true. В противном случае возвращается значение false. readByte Считывает байт со знаком из потока файлов, байтов или массива байтов.Недостаточно данных, доступных для чтения. EOFErrorflash.errors:EOFErrorВозвращенное значение находится в диапазоне от -128 до 127. int Считывает байт со знаком из потока файлов, байтов или массива байтов. readBytes Считывает число байтов данных, заданное параметром length, из потока файлов, байтов или массива байтов.Недостаточно данных, доступных для чтения. EOFErrorflash.errors:EOFErrorbytesflash.utils:ByteArrayОбъект ByteArray, в который считываются данные. offsetuint0Смещение в параметре bytes, с которого должно начинаться считывание данных. lengthuint0Число байтов для считывания. Если значение по умолчанию равно 0, считываются все доступные данные. Считывает число байтов данных, заданное параметром length, из потока файлов, байтов или массива байтов. Байты считываются в объект ByteArray, определяемый параметром bytes, при этом начальная позиция определяется параметром offset. readDouble Считывает из потока файлов, байтов или массива байтов число IEEE 754 с двойной точностью и плавающей запятой.Недостаточно данных, доступных для чтения. EOFErrorflash.errors:EOFErrorЧисло IEEE 754 с двойной точностью и плавающей запятой. Number Считывает из потока файлов, байтов или массива байтов число IEEE 754 с двойной точностью и плавающей запятой. readFloat Считывает из потока файлов, байтов или массива байтов число IEEE 754 с одинарной точностью и плавающей запятой.Недостаточно данных, доступных для чтения. EOFErrorflash.errors:EOFErrorЧисло IEEE 754 с одинарной точностью и плавающей запятой. Number Считывает из потока файлов, байтов или массива байтов число IEEE 754 с одинарной точностью и плавающей запятой. readInt Считывает из потока файлов, байтов или массива байтов 32-разрядное целое число со знаком.Недостаточно данных, доступных для чтения. EOFErrorflash.errors:EOFErrorВозвращаемое значение находится в диапазоне от -2147483648 до 2147483647. int Считывает из потока файлов, байтов или массива байтов 32-разрядное целое число со знаком. readMultiByte Считывает из потока файлов, байтов или массива байтов многобайтовую строку заданной длины с использованием указанного набора символов.Недостаточно данных, доступных для чтения. EOFErrorflash.errors:EOFErrorСтрока в кодировке UTF-8. StringlengthuintЧисло считываемых из потока байтов. charSetStringСтрока, обозначающая набор символов, которые используются для интерпретации байтов. Возможные строки наборов символов: "shift_jis", "cn-gb", "iso-8859-1" и другие. Полный список см. в разделе Поддерживаемые наборы символов.

Примечание. Если в текущей системе не распознается значение параметра charSet, то в качестве набора символов Adobe® Flash® Player или Adobe® AIR® будет использована кодовая страница по умолчанию. Например, значение параметра charSet, как в myTest.readMultiByte(22, iso-8859-01), использующее 01 вместо 1, может работать в системе разработчика, а в другой системе нет. В другой системе программа Flash Player или среда выполнения AIR будет использовать кодовую страницу, заданную по умолчанию в системе.

Считывает из потока файлов, байтов или массива байтов многобайтовую строку заданной длины с использованием указанного набора символов.
readObject Считывает объект из потока файлов, байтов или массива байтов зашифрованный в сериализованном формате AMF.Недостаточно данных, доступных для чтения. EOFErrorflash.errors:EOFErrorДесериализованный объект Считывает объект из потока файлов, байтов или массива байтов зашифрованный в сериализованном формате AMF. objectEncodingflash.net.registerClassAlias()readShort Считывает из потока файлов, байтов или массива байтов 16-разрядное целое число со знаком.Недостаточно данных, доступных для чтения. EOFErrorflash.errors:EOFErrorВозвращаемое значение находится в диапазоне от -32768 до 32767. int Считывает из потока файлов, байтов или массива байтов 16-разрядное целое число со знаком. readUTFBytes Считывает последовательность байтов UTF-8 из потока байтов или массива байтов и возвращает строку.Недостаточно данных, доступных для чтения. EOFErrorflash.errors:EOFErrorСтрока в кодировке UTF-8, являющаяся байтовым представлением символов указанной длины. StringlengthuintЧисло байтов для считывания. Считывает последовательность байтов UTF-8 из потока байтов или массива байтов и возвращает строку. readUTF Считывает из потока файлов, байтов или массива байтов строку UTF-8.Недостаточно данных, доступных для чтения. EOFErrorflash.errors:EOFErrorСтрока в кодировке UTF-8, являющаяся байтовым представлением символов. String Считывает из потока файлов, байтов или массива байтов строку UTF-8. Предполагается, что в строку вставляется префикс с неподписанным значением, указывающим длину в байтах.

Этот метод похож на метод readUTF() в интерфейсе Java® IDataInput.

readUnsignedByte Считывает байт без знака из потока файлов, байтов или массива байтов.Недостаточно данных, доступных для чтения. EOFErrorflash.errors:EOFErrorВозвращенное значение находится в диапазоне от 0 до 255. uint Считывает байт без знака из потока файлов, байтов или массива байтов. readUnsignedInt Считывает из потока файлов, байтов или массива байтов 32-разрядное целое число без знака.Недостаточно данных, доступных для чтения. EOFErrorflash.errors:EOFErrorВозвращенное значение находится в диапазоне от 0 до 4294967295. uint Считывает из потока файлов, байтов или массива байтов 32-разрядное целое число без знака. readUnsignedShort Считывает из потока файлов, байтов или массива байтов 16-разрядное целое число без знака.Недостаточно данных, доступных для чтения. EOFErrorflash.errors:EOFErrorВозвращенное значение находится в диапазоне от 0 до 65535. uint Считывает из потока файлов, байтов или массива байтов 16-разрядное целое число без знака. bytesAvailable Возвращает число байтов данных, доступных для чтения во входном буфере.uint Возвращает число байтов данных, доступных для чтения во входном буфере. В коде должен быть вызов свойства bytesAvailable, проверяющий доступность необходимого объема данных до того, как будет выполнена попытка их считывания с помощью одного из методов чтения. endian Порядок байтов данных, константа BIG_ENDIAN или LITTLE_ENDIAN класса Endian.String Порядок байтов данных, константа BIG_ENDIAN или LITTLE_ENDIAN класса Endian. Класс EndianobjectEncoding Указывает, какой формат, AMF3 или AMF0, используется для записи или чтения двоичных данных с помощью метода readObject().uint Указывает, какой формат, AMF3 или AMF0, используется для записи или чтения двоичных данных с помощью метода readObject(). Значение представлено константой из класса ObjectEncoding. readObject()IDataOutput.writeObject()Класс ObjectEncoding
Dictionary Класс Dictionary позволяет создавать динамический сборник свойств, использующий для сравнения ключей строгое равенство (===).Object Класс Dictionary позволяет создавать динамический сборник свойств, использующий для сравнения ключей строгое равенство (===). Когда в качестве ключа используется объект, для поиска объекта используется его имя, а не значение, возвращаемое при вызове toString() для него.

Следующие инструкции показывают связь между объектом Dictionary и объектом key:

 var dict = new Dictionary();
 var obj = new Object();
 var key:Object = new Object();
 key.toString = function() { return "key" }
 
 dict[key] = "Letters";
 obj["key"] = "Letters";
 
 dict[key] == "Letters"; // true
 obj["key"] == "Letters"; // true
 obj[key] == "Letters"; // true because key == "key" is true b/c key.toString == "key"
 dict["key"] == "Letters"; // false because "key" === key is false
 delete dict[key]; //removes the key
 
=== (строгое равенство)Dictionary Создает новый объект Dictionary.weakKeysBooleanfalseПредписывает объекту Dictionary использовать в ключах объектов «слабые» ссылки. Если единственная ссылка на объект находится в указанном объекте Dictionary, ключ подходит для очистки и при удалении объекта удаляется из таблицы. Создает новый объект Dictionary. Чтобы удалить ключ из объекта Dictionary, воспользуйтесь оператором delete.