__Global__VerifyError Класс VerifyError представляет ошибку, которая возникает при обнаружении неправильного или поврежденного SWF-файла.Исключение VerifyError создается, если обнаружен некорректный или поврежденный SWF-файл. Error Класс VerifyError представляет ошибку, которая возникает при обнаружении неправильного или поврежденного SWF-файла. Класс LoaderVerifyError Создает новый объект VerifyError.messageStringСодержит сообщение, связанное с объектом VerifyError. Создает новый объект VerifyError. ArgumentError Класс ArgumentError представляет ошибку, которая возникает, если аргументы, переданные функции, не совпадают с аргументами, определенными для этой функции.Исключение ArgumentError создается, когда значения параметров, указанные во время вызова функции, не соответствуют параметрам, определенным для этой функции. Error Класс ArgumentError представляет ошибку, которая возникает, если аргументы, переданные функции, не совпадают с аргументами, определенными для этой функции. Эта ошибка появляется, например, тогда, когда функция вызывается с неправильным количеством аргументов, аргументом неверного типа или недействительным аргументом. В следующем примере демонстрируется, как генерируется ошибка ArgumentError, обрабатываемая в операторе try..catch. Функция println() принимает один аргумент (единичную строку), но поскольку указано две строки, появляется ошибка. Как правило, компилятор может перехватить подобную ошибку, но синтаксис this[] в инструкции try обходит синтаксис компилятора, проверяющего функцию. package { import flash.display.Sprite; public class ArgumentErrorExample extends Sprite { public function ArgumentErrorExample() { println("Hello World"); try { this["println"]("Hello", "World"); } catch(e:ArgumentError) { trace(e); } } public function println(str:String):void { trace(str); } } } ArgumentError Создает объект ArgumentError.messageStringСтрока, связанная с ошибкой. Создает объект ArgumentError. QName Объекты QName представляют полные имена элементов и атрибутов XML.Object Объекты QName представляют полные имена элементов и атрибутов XML. У каждого объекта QName существует локальное имя и унифицированный идентификатор ресурса пространства имен (URI). Если в качестве значения пространства имен выбрано null, объект QName совпадает с любым пространством имен. Создайте с помощью конструктора QName новый объект QName, который либо является копией другого объекта QName либо представляет собой новый объект QName, для которого параметр uri берется из объекта Namespace, а параметр localName - из объекта QName.

Применяя методы, относящиеся к E4X, можно использовать поочередно строки и объекты QName. Методы E4X представлены в классах QName, Namespace, XML и XMLList. Эти методы принимают как строки, так и объекты QName. Эта взаимозаменяемость проявляется, например, в том, как поддержка пространства имен обрабатывает метод XML.child().

В классе QName (а также в классах XML, XMLList и Namespace) реализованы мощные стандарты обработки XML, определенные в языке ECMAScript для спецификации XML E4X (ECMA-357, второе издание).

Результаты оценки с помощью классифицированного идентификатора записываются в объект QName. Если объект QName элемента XML задается без указания пространства имен, свойству uri связанного объекта QName присваивается значение глобального пространства имен по умолчанию. Если объект QName атрибута XML задается без указания пространства имен, свойству uri присваивается пустая строка.

В следующем примере показан способ создания экземпляра QName и его применения для выбора элементов XML. Демонстрируются два метода использования QName:
  1. Создание экземпляра пространства имен и последующее использование его в качестве входных данных для конструктора QName. Этот подход является наилучшим, если необходимо позднее воспользоваться свойством Namespace.prefix в других целях.
  2. Создание экземпляра QName с помощью простого строчного значения параметра uri в конструкторе QName.

Этот код выполняет следующие функции:

  1. Определяет переменную XML с именем rssXML.
  2. Создает новый объект Namespace с префиксом dc.
  3. Создает новый объект QName с помощью объекта Namespace, которому присваивается локальное имя creator.
  4. Вызывает метод showDescendants(), использующий метод XML.descendants() для получения экземпляра XMLList, в котором содержатся все элементы-потомки, классифицированное имя которых соответствует данному экземпляру QName.
  5. Показывает классифицированное имя и текстовое значение каждого элемента в списке с помощью цикла for each.
  6. Создает еще один объект QName, применяя строковое значение параметра uri и локальное имя date.
  7. Снова вызывает метод showDescendants() для показа имени и текстового значения элементов-потомков.
package { import flash.display.Sprite; public class QNameExample extends Sprite { public function QNameExample() { var rssXML:XML = <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel rdf:about="http://www.xml.com/cs/xml/query/q/19"> <title>Test RSS</title> <link>http://www.adobe.com/</link> <description>This is a test RSS document.</description> <language>en-us</language> <items> <rdf:Seq> <rdf:li rdf:resource="http://www.adobe.com/devnet/flash/"/> <rdf:li rdf:resource="http://www.adobe.com/devnet/flex/"/> </rdf:Seq> </items> </channel> <item rdf:about="http://www.adobe.com/devnet/flash/"> <title>Flash Developer Center</title> <link>http://www.adobe.com/devnet/flash/</link> <description>Welcome to the Flash Developer Center</description> <dc:creator>Adobe</dc:creator> <dc:date>2005-08-08</dc:date> </item> <item rdf:about="http://www.adobe.com/devnet/flex/"> <title>Flex Developer Center</title> <link>http://www.adobe.com/devnet/flex/</link> <description>Welcome to the Flex Developer Center</description> <dc:creator>Adobe</dc:creator> <dc:date>2005-10-16</dc:date> </item> </rdf:RDF>; var dcNamespace:Namespace = new Namespace("dc", "http://purl.org/dc/elements/1.1/"); var creatorQName:QName = new QName(dcNamespace, "creator"); trace(creatorQName.uri); // http://purl.org/dc/elements/1.1/ trace(creatorQName.localName); // creator showDescendants(rssXML, creatorQName); var dateQName:QName = new QName("http://purl.org/dc/elements/1.1/", "date"); trace(dateQName.uri); // http://purl.org/dc/elements/1.1/ trace(dateQName.localName); // date showDescendants(rssXML, dateQName); } public function showDescendants(xmlData:XML, qualifiedName:QName):void { var decendantList:XMLList = xmlData.descendants(qualifiedName); for each (var element:XML in decendantList) { trace(element.name()); // the fully qualified name, // like "http://purl.org/dc/elements/1.1/::creator" trace(element); // the simple text value of each element, like "Adobe" } } } }
XMLXMLListNamespaceСпецификация языка ECMAScript для XML E4X (ECMA-357, второе издание)QName Создает объект QName, который является копией другого объекта QName.qnameQNameКопируемый объект QName. Объекты других типов преобразуются в строки, которые присваиваются свойству localName нового объекта QName. Создает объект QName, который является копией другого объекта QName. Если переданный конструктору параметр является объектом QName, создается копия объекта QName. Если параметр не является объектом QName, то он преобразуется в строку и присваивается свойству localName нового экземпляра QName. Если параметр undefined (не определен) или не указан, создается новый объект QName, где для свойства localName выбрана пустая строка.

Примечание. В этом классе показаны две записи конструктора, поскольку каждая из них поддерживает разные параметры. Режим работы конструктора меняется в зависимости от типа и количества переданных параметров (см. описание в записях). ActionScript 3.0 не поддерживает переопределение метода или конструктора.

QName Создает объект QName с объектом URI из объекта Namespace и свойством localName из объекта QName.uriNamespaceОбъект Namespace, из которого копируется значение uri. Параметр любого другого типа преобразуется в строку. localNameQNameОбъект QName, из которого копируется значение localName. Параметр любого другого типа преобразуется в строку. Создает объект QName с объектом URI из объекта Namespace и свойством localName из объекта QName. Если любой из параметров не относится к ожидаемому типу данных, то он преобразуется в строку и присваивается соответствующему свойству нового объекта QName. Например, если оба параметра представляют собой строки, возвращается новый объект QName. При этом свойство uri устанавливается для первого параметра, а свойство localName — для второго параметра. Иными словами, следующие перестановки наряду со многими другими являются действительными формами конструктора:
QName (uri:Namespace, localName:String);
QName (uri:String, localName: QName);
QName (uri:String, localName: String);

Если значение null передается для параметра uri, свойство uri нового объекта QName получает значение null.

Примечание. В этом классе показаны две записи конструктора, поскольку каждая из них поддерживает разные параметры. Режим работы конструктора меняется в зависимости от типа и количества переданных параметров (см. описание в записях). ActionScript 3.0 не поддерживает переопределение метода или конструктора.

toString Возвращает строку, составленную из URI и локального имени для объекта QName, разделенных символами «::».Полное имя в виде строки. String Возвращает строку, составленную из URI и локального имени для объекта QName, разделенных символами «::».

Формат зависит от свойства uri объекта QName:

If uri == "" 
		toString returns localName
	else if uri == null
		toString returns ~~::localName 
	else
		toString returns uri::localName
valueOf Возвращает объект QName.Элементарное значение экземпляра QName. QName Возвращает объект QName. localName Локальное имя объекта QName.String Локальное имя объекта QName. uri Унифицированный идентификатор ресурса (URI-адрес) объекта QName.String Унифицированный идентификатор ресурса (URI-адрес) объекта QName.
EvalError Класс EvalError представляет ошибку, возникающую при вызове пользовательским кодом функции eval(), либо если пользовательский код пытается использовать оператор new с объектом Function.Исключение EvalError создается, когда в коде проводится попытка вызова функции eval() или использования операции new с объектом Function. Error Класс EvalError представляет ошибку, возникающую при вызове пользовательским кодом функции eval(), либо если пользовательский код пытается использовать оператор new с объектом Function. Вызов eval() и new по отношению к объекту Function не поддерживается. EvalError Создает новый объект EvalError.messageStringСтрока, связанная с ошибкой. Создает новый объект EvalError. Math Класс Math содержит методы и константы, представляющие общие математические функции и значения.Класс Math располагается на верхнем уровне и состоит из статических свойств и методов, определяющих стандартные математические константы и функции. Object Класс Math содержит методы и константы, представляющие общие математические функции и значения.

Эти методы и свойства используются для вызова и обработки математических констант и функций. Все свойства и методы класса Math являются статическими и должны вызываться с помощью синтаксиса Math.method(parameter) или Math.constant. В ActionScript константы определяются с максимальной точностью (двойная точность чисел с плавающей запятой IEEE-754).

В нескольких методах класса Math в качестве параметра используется величина угла в радианах. Рассчитывать значения в радианах перед вызовом метода и вводить их в качестве параметра можно с помощью указанного ниже уравнения. Также допускается ввод всей правой части уравнения (с величиной угла в градусах вместо degrees) в качестве параметра радиан.

Для вычисления значения в радианах используйте следующую формулу:

 radians = degrees ~~ Math.PI/180
 

Эта формула позволяет перевести градусы в радианы:

 degrees = radians ~~ 180/Math.PI
 

В данном примере уравнение применяется как параметр для расчета синуса угла в 45°:

Math.sin(45 ~~ Math.PI/180) эквивалентно Math.sin(.7854)

Примечание. Результаты применения функций класса Math (acos, asin, atan, atan2, cos, exp, log, pow, sin и sqrt) могут немного различаться в зависимости от алгоритмов, используемых ЦП или операционной системой. Среда выполнения Flash направляет вызов ЦП (или операционной системе, если ЦП не поддерживает вычисления с плавающей запятой) при выполнении расчетов по функциям, входящим в список. Наблюдается незначительный разброс результатов, который зависит от используемого ЦП или операционной системы.

abs Вычисляет и возвращает абсолютное значение числа, заданное параметром val.Абсолютное значение заданного параметра. NumbervalNumberЧисло, абсолютное значение которого возвращается. Возвращает абсолютное значение указанного объекта Number. Вычисляет и возвращает абсолютное значение числа, заданное параметром val. acos Вычисляет и возвращает арккосинус числа, заданного параметром val в радианах.Арккосинус параметра val. NumbervalNumberЧисло от -1.0 до 1.0. Возвращает арккосинус заданного объекта Number в радианах. Вычисляет и возвращает арккосинус числа, заданного параметром val в радианах. asin Вычисляет и возвращает в радианах арксинус числа, заданного параметром val.Число (от отрицательного числа «пи», разделенного на 2 до положительного числа «пи», разделенного на 2). NumbervalNumberЧисло от -1.0 до 1.0. Возвращает в радианах значение арксинуса заданного параметра объекта Number. Вычисляет и возвращает в радианах арксинус числа, заданного параметром val. atan2 Вычисляет и возвращает в радианах угол точки y/x, измеренный против часовой стрелки от оси x окружности (где 0,0 соответствует центру круга).Число. NumberyNumberКоордината y точки. xNumberКоордината x точки. Возвращает в радианах угол точки «y/x», измеренный против часовой стрелки от оси «x» окружности. Вычисляет и возвращает в радианах угол точки y/x, измеренный против часовой стрелки от оси x окружности (где 0,0 соответствует центру круга). Возвращаемое значение лежит в диапазоне от числа «пи» до отрицательного числа «пи». Учтите, что первый параметр atan2 всегда является координатой y. Math.acos()Math.asin()Math.atan()Math.cos()Math.sin()Math.tan()atan Вычисляет и возвращает в радианах величину угла, тангенс которого указан в параметре val.Число (от отрицательного числа «пи», разделенного на 2 до положительного числа «пи», разделенного на 2). NumbervalNumberЧисло, соответствующее тангенсу угла. Возвращает в радианах угол, тангенс которого задан параметром val. Вычисляет и возвращает в радианах величину угла, тангенс которого указан в параметре val. Возвращаемое значение лежит в диапазоне от отрицательного числа «пи», разделенного на 2 до положительного числа «пи», разделенного на 2. ceil Возвращает максимальное значение заданного числа или выражения.Целое число, которое является ближайшим и одновременно больше или равно значению параметра val. NumbervalNumberЧисло или выражение. Возвращает максимальное значение заданного числа или выражения. Возвращает максимальное значение заданного числа или выражения. Максимальное значение числа — это ближайшее целое число, которое превышает это число или равно ему. Math.floor()Math.round()cos Вычисляет и возвращает косинус указанного угла в радианах.Число от -1.0 до 1.0. NumberangleRadiansNumberЧисло, представляющее угол, измеренный в радианах. Возвращает косинус заданного угла. Вычисляет и возвращает косинус указанного угла в радианах. Чтобы вычислить значение в радианах, см. обзор класса Math. Math.acos()Math.asin()Math.atan()Math.atan2()Math.sin()Math.tan()exp Возвращает основание натурального логарифма (e), возведенное в степень, показатель которой задан параметром x.e в степени, определенной параметром val. NumbervalNumberПоказатель; число или выражение. Возвращает основание натурального логарифма (e), возведенное в степень, показатель которой задан параметром val. Возвращает основание натурального логарифма (e ), возведенное в степень, показатель которой задан параметром x. Константа Math.E может использоваться для подстановки значения e. Math.Efloor Возвращает наименьшее значение числа или выражения, заданного параметром val.Целое число, которое является ближайшим и одновременно меньше или равно значению параметра val. NumbervalNumberЧисло или выражение. Возвращает наименьшее значение числа или выражения, заданного параметром val. Возвращает наименьшее значение числа или выражения, заданного параметром val. Наименьшее значение — это ближайшее целое число, которое не превышает или равняется заданному числу или выражению. log Возвращает натуральный логарифм параметра val.Возвращает натуральный логарифм параметра val. NumbervalNumberЧисло или выражение, значение которого больше 0. Возвращает натуральный логарифм параметра val. Возвращает натуральный логарифм параметра val. max Оценивает val1 и val2 (или дополнительные значения) и возвращает самое большое значение.Самое большое из значений параметров val1 и val2 (или дополнительные значения). Numberval1NumberЧисло или выражение. val2NumberЧисло или выражение. restЧисло или выражение. Math.max() поддерживает несколько аргументов. Оценивает параметры val1 и val2 и возвращает большее из двух значений. Оценивает val1 и val2 (или дополнительные значения) и возвращает самое большое значение. Math.min()min Оценивает val1 и val2 (или дополнительные значения) и возвращает наименьшее значение.Наименьшее значение параметров val1 и val2 (или дополнительные значения). Numberval1NumberЧисло или выражение. val2NumberЧисло или выражение. restЧисло или выражение. Math.min() поддерживает несколько аргументов. Оценивает параметры val1 и val2 и возвращает меньшее из двух значений. Оценивает val1 и val2 (или дополнительные значения) и возвращает наименьшее значение. Math.max()pow Вычисляет и возвращает base, возведенное в степень pow.Значение base, возведенное в степень pow. NumberbaseNumberЧисло, которое требуется возвести в степень, определяемую параметром pow. powNumberЧисло, указывающее степень, в которую возводится параметр base. Возвращает параметр val1 в степени параметра val2. Вычисляет и возвращает base, возведенное в степень pow. random Возвращает псевдослучайное число n, где 0 &lt;= n &lt; 1.Псевдослучайное число. NumberВозвращает псевдослучайное число n, где 0 <= n < 1. Возвращает псевдослучайное число n, где 0 <= n < 1. Возвращаемое число вычисляется скрытым образом и является псевдослучайным, поскольку расчет неизбежно несет в себе определенный элемент псевдослучайности. round Округляет значение параметра val в большую или меньшую сторону до ближайшего целого числа и возвращает это значение.Параметр val, округленный до ближайшего целого числа. NumbervalNumberОкругляемое число. Возвращает значение параметра val, округленное в большую или меньшую сторону до ближайшего целого числа. Округляет значение параметра val в большую или меньшую сторону до ближайшего целого числа и возвращает это значение. Если значение val равноудалено от двух ближайших целых чисел (когда в конце числа стоит «,5»), оно округляется в большую сторону до ближайшего целого числа. Math.ceil()Math.floor()sin Вычисляет и возвращает синус указанного угла в радианах.Число; синус указанного угла (от -1,0 до 1,0). NumberangleRadiansNumberЧисло, представляющее угол, измеренный в радианах. Возвращает синус заданного угла. Вычисляет и возвращает синус указанного угла в радианах. Чтобы вычислить значение в радианах, см. обзор класса Math. Math.acos()Math.asin()Math.atan()Math.atan2()Math.cos()Math.tan()sqrt Вычисляет и возвращает квадратный корень заданного числа.Если параметр val больше или равен нулю, выдается значение; в противном случае выдается NaN (не число). NumbervalNumberЧисло или выражение, которое больше или равно 0. Возвращает квадратный корень заданного числа. Вычисляет и возвращает квадратный корень заданного числа. tan Вычисляет и возвращает тангенс заданного угла.Тангенс параметра angleRadians. NumberangleRadiansNumberЧисло, представляющее угол, измеренный в радианах. Возвращает тангенс заданного угла. Вычисляет и возвращает тангенс заданного угла. Чтобы вычислить значение в радианах, см. обзор класса Math. Math.acos()Math.asin()Math.atan()Math.atan2()Math.cos()Math.sin()E Математическая константа, которая используется в качестве основания для натуральных логарифмов. Обозначается буквой e.2.71828182845905NumberМатематическая константа, которая используется в качестве основания для натуральных логарифмов. Обозначается буквой e. Математическая константа, которая используется в качестве основания для натуральных логарифмов. Обозначается буквой e. Приблизительное значение e составляет 2,71828182845905. LN10 Математическая константа — натуральный логарифм числа 10. Обозначается как loge10, приблизительное значение равно 2,302585092994046.2.302585092994046NumberМатематическая константа — натуральный логарифм числа 10. Обозначается как loge10, приблизительное значение равно 2,302585092994046. Математическая константа — натуральный логарифм числа 10. Обозначается как loge10, приблизительное значение равно 2,302585092994046. LN2 Математическая константа — натуральный логарифм числа 2. Обозначается как loge2, приблизительное значение равно 0,6931471805599453.0.6931471805599453NumberМатематическая константа — натуральный логарифм числа 2. Обозначается как loge2, приблизительное значение равно 0,6931471805599453. Математическая константа — натуральный логарифм числа 2. Обозначается как loge2, приблизительное значение равно 0,6931471805599453. LOG10E Математическая константа — десятичный логарифм числа e (Math.E). Обозначается как log10e, приблизительное значение равно 0,4342944819032518.0.4342944819032518NumberМатематическая константа, равная логарифму числа «e» по основанию 10. Обозначается как log10e, приблизительное значение равно 0,4342944819032518. Математическая константа — десятичный логарифм числа e (Math.E). Обозначается как log10e, приблизительное значение равно 0,4342944819032518.

Метод Math.log() используется для вычисления натурального логарифма числа. Умножьте результат выполнения метода Math.log() на Math.LOG10E для получения десятичного логарифма.

LOG2E Математическая константа — логарифм числа e по основанию 2. Обозначается как log2e, приблизительное значение равно 1,442695040888963387.1.442695040888963387NumberМатематическая константа — логарифм числа e по основанию 2. Обозначается как log2e, приблизительное значение равно 1,442695040888963387. Математическая константа — логарифм числа e по основанию 2. Обозначается как log2e, приблизительное значение равно 1,442695040888963387.

Метод Math.log используется для вычисления натурального логарифма числа. Умножьте результат выполнения метода Math.log() на Math.LOG2E для получения логарифма по основанию 2.

PI Математическая константа — отношение длины окружности к диаметру. Обозначается как «pi», приблизительное значение равно 3,141592653589793.3.141592653589793NumberМатематическая константа — отношение длины окружности к диаметру. Обозначается как «pi», приблизительное значение равно 3,141592653589793. Математическая константа — отношение длины окружности к диаметру. Обозначается как «pi», приблизительное значение равно 3,141592653589793. SQRT1_2 Математическая константа — квадратный корень из одной второй, приблизительное значение равно 0,7071067811865476.0.7071067811865476NumberМатематическая константа — квадратный корень из одной второй, приблизительное значение равно 0,7071067811865476. Математическая константа — квадратный корень из одной второй, приблизительное значение равно 0,7071067811865476. SQRT2 Математическая константа — квадратный корень из 2, приблизительное значение равно 1,4142135623730951.1.4142135623730951NumberМатематическая константа — квадратный корень из 2, приблизительное значение равно 1,4142135623730951. Математическая константа — квадратный корень из 2, приблизительное значение равно 1,4142135623730951.
Array Класс Array обеспечивает доступ к массивам и их обработку.Позволяет получать доступ к индексированным массивам для выполнения различных операций. Object Класс Array обеспечивает доступ к массивам и их обработку. Индексы массива начинаются с нуля. Это значит, что первый элемент массива имеет индекс [0], второй элемент — индекс [1] и т. д. Чтобы создать объект Array, можно воспользоваться конструктором new Array(). Объект Array() можно также вызвать в виде функции. Кроме того, можно воспользоваться оператором доступа к массиву ([]), чтобы инициализировать массив или выполнить доступ к его элементам.

В элементе массива можно сохранять широкий спектр типов данных, включая числа, строки, объекты и даже другие массивы. Можно создать многомерный массив. Для этого нужно создать индексированный массив и присвоить каждому из его элементов другой индексированный массив. Такой массив считается многомерным, поскольку его можно использовать для представления данных в виде таблицы.

Массивы являются разреженными. Это значит, что один элемент может иметь индекс 0, а другой — индекс 5, но позиции индекса между двумя этими элементами будут пустыми. В подобном случае элементы на позициях с 1 по 4 не определены, что указывает на отсутствие элемента, а не обязательно на присутствие элемента со значением undefined.

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

var oneArray:Array = new Array("a", "b", "c"); var twoArray:Array = oneArray; // Both array variables refer to the same array. twoArray[0] = "z"; trace(oneArray); // Output: z,b,c.

Не применяйте класс Array для создания массивов ассоциативных элементов (называемых также хэшами), которые представляют собой структуры данных, элементам которых присваиваются имена, а не числа. Чтобы создать массивы ассоциативных элементов, воспользуйтесь классом Object. Хотя ActionScript позволяет создавать массивы ассоциативных элементов с помощью класса Array, ни один из методов и свойств класса Array нельзя использовать с этими массивами.

Класс Array можно расширить, переопределив или добавив методы. Однако этот подкласс необходимо сделать dynamic, чтобы не утратить возможность сохранения данных в массиве.

В следующем примере создается новый объект Array myArr без аргументов и с первоначальной длиной равной 0: package { import flash.display.Sprite; public class ArrayExample extends Sprite { public function ArrayExample() { var myArr:Array = new Array(); trace(myArr.length); // 0 } } }
[] (array access)класс ObjectArray Позволяет создавать массив, содержащий заданные элементы.Аргумент — это число, которое не является целым числом большим или равным 0. RangeErrorRangeErrorvaluesСписок из одного или нескольких произвольных значений, разделенных запятыми.

Примечание. Если в конструктор Array передается единичный числовой параметр, предполагается, что указано свойство массива length.

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

Примечание. В этом классе показаны две записи конструктора, поскольку конструктор поддерживает разные типы аргументов. Режим работы конструктора меняется в зависимости от типа и количества переданных аргументов (см. описание в записях). ActionScript 3.0 не поддерживает переопределение метода или конструктора.

В следующем примере создается новый объект Array с первоначальной длиной 3, массив заполняется строковыми элементами one, two и three, а затем элементы преобразуются в строку. package { import flash.display.Sprite; public class Array_Array_3 extends Sprite { public function Array_Array_3() { var myArr:Array = new Array("one", "two", "three"); trace(myArr.length); // 3 trace(myArr); // one,two,three } } }
[] array accessArray.length
Array Позволяет создавать массивы с заданным числом элементов.Аргумент — это число, которое не является целым числом большим или равным 0. RangeErrorRangeErrornumElementsint0Целое число, указывающее количество элементов в массиве. Позволяет создавать массивы с заданным числом элементов. Если не указать никаких параметров, создается массив с нулевым количеством элементов. Если указан ряд элементов, создается массив с количеством элементов numElements.

Примечание. В этом классе показаны две записи метода конструктора, поскольку конструктор поддерживает разные типы аргументов. Режим работы конструктора меняется в зависимости от типа и количества переданных аргументов (см. описание в записях). ActionScript 3.0 не поддерживает переопределение метода или конструктора.

В следующем примере создается новый объект Array myArr без аргументов и с первоначальной длиной 0: package { import flash.display.Sprite; public class Array_Array extends Sprite { public function Array_Array() { var myArr:Array = new Array(); trace(myArr.length); // 0 } } } В следующем примере создается объект Array с 5 начальными элементами и длиной 5. Первый элемент заполняется строкой one, а в конец массива добавляется строковый элемент six с помощью метода push(): package { import flash.display.Sprite; public class Array_Array_2 extends Sprite { public function Array_Array_2() { var myArr:Array = new Array(5); trace(myArr.length); // 5 myArr[0] = "one"; myArr.push("six"); trace(myArr); // one,,,,,six trace(myArr.length); // 6 } } }
[] array accessArray.length
concat Указанные в параметрах элементы сцепляются с элементами в массиве, и создается новый массив.Массив, содержащий элементы из этого массива, за которыми указаны элементы из параметров. ArrayargsЗначение любого типа данных (например, числа, элементы или строки), которые необходимо сцепить в новом массиве. Сцепляет элементы, заданные в параметрах. Указанные в параметрах элементы сцепляются с элементами в массиве, и создается новый массив. Если параметры задают массив, элементы этого массива сцепляются. Если параметры не передаются, новый массив дублирует исходный массив (как поверхностный клон). Следующий код создает четыре объекта Array:
  • Массив numbers, содержащий цифры 1, 2 и 3.
  • Массив letters, содержащий буквы a, b и c.
  • Массив numbersAndLetters, вызывающий метод concat() для создания массива [1,2,3,a,b,c].
  • Массив lettersAndNumbers, вызывающий метод concat() для создания массива [a,b,c,1,2,3].
var numbers:Array = new Array(1, 2, 3); var letters:Array = new Array("a", "b", "c"); var numbersAndLetters:Array = numbers.concat(letters); var lettersAndNumbers:Array = letters.concat(numbers); trace(numbers); // 1,2,3 trace(letters); // a,b,c trace(numbersAndLetters); // 1,2,3,a,b,c trace(lettersAndNumbers); // a,b,c,1,2,3
every Выполняет тестовую функцию для каждого элемента массива, пока не будет достигнут элемент, возвращающий значение false для заданной функции.Логическое значение true, если все элементы в массиве возвращают значение true для указанной функции; в противном случае присваивается значение false. BooleancallbackFunctionФункция, выполняемая с каждым элементом массива. Эта функция может содержать простое сравнение (например, item < 20) или более сложную операцию. Она вызывается по трем аргументам: значению элемента, индексу элемента и объекту Array:
function callback(item:*, index:int, array:Array):Boolean;
thisObjectnullОбъект, используемый для этой функции в качестве this.
Выполняет тестовую функцию для каждого элемента массива, пока не будет достигнут элемент, возвращающий значение false для заданной функции. Этот метод используется для того, чтобы определить, все ли элементы массива соответствуют критерию (например, их значения должны быть меньше определенного числа).

Второй параметр этого метода, thisObject, должен иметь значение null, если первый параметр, callback, завершает метод. Предположим, что функция создается во фрагменте ролика с названием me:

     function myFunction(obj:Object):void {
        //your code here
     }
     

Допустим, что используется метод every() по отношению к массиву myArray:

     myArray.every(myFunction, me);
     

Поскольку myFunction принадлежит классу Timeline, который не может быть переопределен фрагментом ролика me, среда выполнения Flash создает исключение. Этой ошибки при выполнении можно избежать, присвоив функцию переменной следующим образом:

     var myFunction:Function = function(obj:Object):void {
         //your code here
     };
     myArray.every(myFunction, me);
     
В следующем примере тестируются два массива, чтобы определить, является ли каждый элемент того или иного массива числом. Указываются также результаты теста: параметр isNumeric имеет значение true для первого массива и false для второго: package { import flash.display.Sprite; public class Array_every extends Sprite { public function Array_every() { var arr1:Array = new Array(1, 2, 4); var res1:Boolean = arr1.every(isNumeric); trace("isNumeric:", res1); // true var arr2:Array = new Array(1, 2, "ham"); var res2:Boolean = arr2.every(isNumeric); trace("isNumeric:", res2); // false } private function isNumeric(element:*, index:int, arr:Array):Boolean { return (element is Number); } } }
Array.some()
filter Выполняет тестовую функцию для каждого элемента массива и формирует новый массив из всех элементов, возвращающих значение true для заданной функции.Новый массив, содержащий все элементы исходного массива, вернувшие значение true. ArraycallbackFunctionФункция, выполняемая с каждым элементом массива. Эта функция может содержать простое сравнение (например, item < 20) или более сложную операцию. Она вызывается по трем аргументам: значению элемента, индексу элемента и объекту Array:
    function callback(item:*, index:int, array:Array):Boolean;
thisObjectnullОбъект, используемый для этой функции в качестве this.
Выполняет тестовую функцию для каждого элемента массива и формирует новый массив из всех элементов, возвращающих значение true для заданной функции. Если элемент возвращает значение false, он не включается в новый массив.

Второй параметр этого метода, thisObject, должен иметь значение null, если первый параметр, callback, завершает метод. Предположим, что функция создается во фрагменте ролика с названием me:

     function myFunction(obj:Object):void {
        //your code here
     }
     

Допустим, что используется метод filter() по отношению к массиву с именем myArray:

 
     myArray.filter(myFunction, me);
     

Поскольку myFunction принадлежит классу Timeline, который не может быть переопределен фрагментом ролика me, среда выполнения Flash создает исключение. Этой ошибки при выполнении можно избежать, присвоив функцию переменной следующим образом:

     var myFunction:Function = function(obj:Object):void {
         //your code here
         };
     myArray.filter(myFunction, me);
     
В следующем примере создается массив из всех сотрудников-менеджеров: package { import flash.display.Sprite; public class Array_filter extends Sprite { public function Array_filter() { var employees:Array = new Array(); employees.push({name:"Employee 1", manager:false}); employees.push({name:"Employee 2", manager:true}); employees.push({name:"Employee 3", manager:false}); trace("Employees:"); employees.forEach(traceEmployee); var managers:Array = employees.filter(isManager); trace("Managers:"); managers.forEach(traceEmployee); } private function isManager(element:*, index:int, arr:Array):Boolean { return (element.manager == true); } private function traceEmployee(element:*, index:int, arr:Array):void { trace("\t" + element.name + ((element.manager) ? " (manager)" : "")); } } }
Array.map()
forEach Выполняет функцию для каждого элемента массива.callbackFunctionФункция, выполняемая с каждым элементом массива. Эта функция может содержать простую команду (например, инструкция trace()) или более сложную операцию. Она вызывается по трем аргументам: значению элемента, индексу элемента и объекту Array:
    function callback(item:*, index:int, array:Array):void;
thisObjectnullОбъект, используемый для этой функции в качестве this.
Выполняет функцию для каждого элемента массива.

Второй параметр этого метода, thisObject, должен иметь значение null, если первый параметр, callback, завершает метод. Предположим, что функция создается во фрагменте ролика с названием me:

     function myFunction(obj:Object):void {
        //your code here
     }
     

Допустим, что используется метод forEach() по отношению к массиву с именем myArray:

     myArray.forEach(myFunction, me);
     

Поскольку myFunction принадлежит классу Timeline, который не может быть переопределен фрагментом ролика me, среда выполнения Flash создает исключение. Этой ошибки при выполнении можно избежать, присвоив функцию переменной следующим образом:

     var myFunction:Function = function(obj:Object):void {
         //your code here
         };
     myArray.forEach(myFunction, me);
     
В следующем примере инструкция trace() выполняется в функции traceEmployee() по отношению к каждому элементу массива: package { import flash.display.Sprite; public class Array_forEach extends Sprite { public function Array_forEach() { var employees:Array = new Array(); employees.push({name:"Employee 1", manager:false}); employees.push({name:"Employee 2", manager:true}); employees.push({name:"Employee 3", manager:false}); trace(employees); employees.forEach(traceEmployee); } private function traceEmployee(element:*, index:int, arr:Array):void { trace(element.name + " (" + element.manager + ")"); } } } В следующем примере инструкция trace() также выполняется в немного измененной функции traceEmployee() по отношению к каждому элементу массива: package { import flash.display.Sprite; public class Array_forEach_2 extends Sprite { public function Array_forEach_2() { var employeeXML:XML = <employees> <employee name="Steven" manager="false" /> <employee name="Bruce" manager="true" /> <employee name="Rob" manager="false" /> </employees>; var employeesList:XMLList = employeeXML.employee; var employeesArray:Array = new Array(); for each (var tempXML:XML in employeesList) { employeesArray.push(tempXML); } employeesArray.sortOn("@name"); employeesArray.forEach(traceEmployee); } private function traceEmployee(element:*, index:Number, arr:Array):void { trace(element.@name + ((element.@manager == "true") ? " (manager)" : "")); } } }
indexOf Ищет элемент в массиве с использованием строгого равенства (===) и возвращает позицию элемента в индексе.Позиция индекса, начинающегося с нуля, для элемента массива. Если аргумент searchElement не найден, возвращается значение «-1». intsearchElementЭлемент, который требуется найти в массиве. fromIndexint0Место в массиве, в которого начинается поиск элемента. Ищет элемент в массиве с использованием строгого равенства (===) и возвращает позицию элемента в индексе. В следующем примере показана позиция указанного массива: package { import flash.display.Sprite; public class Array_indexOf extends Sprite { public function Array_indexOf() { var arr:Array = new Array(123,45,6789); arr.push("123-45-6789"); arr.push("987-65-4321"); var index:int = arr.indexOf("123"); trace(index); // -1 var index2:int = arr.indexOf(123); trace(index2); // 0 } } } Array.lastIndexOf()=== (строгое равенство)join Преобразует элементы массива в строки, вставляет указанный разделитель между элементами, сцепляет их и возвращает получившуюся строку.Строка, состоящая из элементов массива, преобразованных в строки и разделенных указанным параметром. StringsepunknownСимвол или строка, которые разделяют элементы массива в возвращенной строке. Если этот параметр пропустить, в качестве разделителя по умолчанию используется запятая. Преобразует элементы массива в строки. Преобразует элементы массива в строки, вставляет указанный разделитель между элементами, сцепляет их и возвращает получившуюся строку. Вложенный массив всегда разделяется запятой (,), а не разделителем, переданным методу join(). Следующий код создает объект Array myArr с элементами one, two, three и затем строку, содержащую one and two and three, с помощью метода join(). var myArr:Array = new Array("one", "two", "three"); var myStr:String = myArr.join(" and "); trace(myArr); // one,two,three trace(myStr); // one and two and three Следующий код создает объект Array specialChars с элементами (, ), - и пробелом, а затем создает строку с номером (888) 867-5309. После этого с помощью цикла for он удаляет все типы специальных символов, перечисленные в specialChars, чтобы создать строку (myStr), которая содержит только цифры телефонного номера: 888675309. Учтите, что другие символы (например, +) могли быть включены в список specialChars. При этом данная процедура начинает поддерживать форматы международных телефонных номеров. var phoneString:String = "(888) 867-5309"; var specialChars:Array = new Array("(", ")", "-", " "); var myStr:String = phoneString; var ln:uint = specialChars.length; for(var i:uint; i < ln; i++) { myStr = myStr.split(specialChars[i]).join(""); } var phoneNumber:Number = new Number(myStr); trace(phoneString); // (888) 867-5309 trace(phoneNumber); // 8888675309 String.split()lastIndexOf Ищет элемент в массиве в обратном порядке начиная с последнего элемента с использованием строгого равенства (===), затем возвращает позицию в индексе для подходящего элемента.Позиция индекса, начинающегося с нуля, для элемента массива. Если аргумент searchElement не найден, возвращается значение «-1». intsearchElementЭлемент, который требуется найти в массиве. fromIndexint0x7fffffffМесто в массиве, в которого начинается поиск элемента. Значение по умолчанию — максимально допустимое значение индекса. Если параметр fromIndex не указан, поиск начинается с последнего элемента массива. Ищет элемент в массиве в обратном порядке начиная с последнего элемента с использованием строгого равенства (===), затем возвращает позицию в индексе для подходящего элемента. В следующем примере показана позиция указанного массива: package { import flash.display.Sprite; public class Array_lastIndexOf extends Sprite { public function Array_lastIndexOf() { var arr:Array = new Array(123,45,6789,123,984,323,123,32); var index:int = arr.indexOf(123); trace(index); // 0 var index2:int = arr.lastIndexOf(123); trace(index2); // 6 } } } Array.indexOf()=== (строгое равенство)map Выполняет функцию для каждого элемента массива и формирует новый массив из элементов, соответствующих результатам функции для каждого элемента исходного массива.Новый массив, который содержит результаты функции, выполняемой по отношению к каждому элементу исходного массива. ArraycallbackFunctionФункция, выполняемая с каждым элементом массива. Эта функция может содержать простую команду (например, изменение регистра строкового массива) или более сложную операцию. Она вызывается по трем аргументам: значению элемента, индексу элемента и объекту Array:
    function callback(item:*, index:int, array:Array):String;
thisObjectnullОбъект, используемый для этой функции в качестве this.
Выполняет функцию для каждого элемента массива и формирует новый массив из элементов, соответствующих результатам функции для каждого элемента исходного массива.

Второй параметр этого метода, thisObject, должен иметь значение null, если первый параметр, callback, завершает метод. Предположим, что функция создается во фрагменте ролика с названием me:

     function myFunction(obj:Object):void {
        //your code here
     }
     

Допустим, что используется метод map() по отношению к массиву с именем myArray:

     myArray.map(myFunction, me);
     

Поскольку myFunction принадлежит классу Timeline, который не может быть переопределен фрагментом ролика me, среда выполнения Flash создает исключение. Этой ошибки при выполнении можно избежать, присвоив функцию переменной следующим образом:

     var myFunction:Function = function(obj:Object):void {
         //your code here
         };
     myArray.map(myFunction, me);
     
В следующем примере все строчные буквы в элементах массива заменяются прописными: package { import flash.display.Sprite; public class Array_map extends Sprite { public function Array_map() { var arr:Array = new Array("one", "two", "Three"); trace(arr); // one,two,Three var upperArr:Array = arr.map(toUpper); trace(upperArr); // ONE,TWO,THREE } private function toUpper(element:*, index:int, arr:Array):String { return String(element).toUpperCase(); } } }
Array.filter()
pop Удаляет последний элемент из массива и возвращает значение этого элемента.Значение последнего элемента (любого типа данных) в указанном массиве. Удаляет последний элемент из массива и возвращает значение этого элемента. Следующий код создает объект Array letters с элементами a, b и c. Последний элемент (c) удаляется впоследствии из массива с помощью метода pop() и присваивается объекту String letter. var letters:Array = new Array("a", "b", "c"); trace(letters); // a,b,c var letter:String = letters.pop(); trace(letters); // a,b trace(letter); // c Array.push()Array.shift()Array.unshift()push Добавляет один или несколько элементов в конец массива и возвращает новую длину массива.Целое число, выражающее длину нового массива. uintargsОдно или несколько значений, добавляемых в массив. Добавляет один или несколько элементов в конец массива и возвращает новую длину массива. Следующий код создает пустой объект Array letters, а затем заполняет массив элементами a, b и c с помощью метода push(). var letters:Array = new Array(); letters.push("a"); letters.push("b"); letters.push("c"); trace(letters.toString()); // a,b,c Следующий код создает объект Array letters, который сначала заполняется элементом a. После этого однократно используется метод push() для добавления элементов b и c в конец массива, который находится на расстоянии трех элементов от элемента, созданного методом push. var letters:Array = new Array("a"); var count:uint = letters.push("b", "c"); trace(letters); // a,b,c trace(count); // 3 Array.pop()Array.shift()Array.unshift()reverse Преобразует массив в обратный массив.Новый массив. Array Преобразует массив в обратный массив. Следующий код создает объект Array letters с элементами a, b и c. Порядок элементов массива заменяется затем на противоположный методом reverse(), чтобы создать массив [c,b,a]. var letters:Array = new Array("a", "b", "c"); trace(letters); // a,b,c letters.reverse(); trace(letters); // c,b,a shift Удаляет первый элемент из массива и возвращает этот элемент.Первый элемент (любого типа данных) в массиве. Удаляет первый элемент из массива и возвращает этот элемент. Оставшиеся элементы массива перемещаются с исходной позицию «i» на позицию «i-1». Следующий код создает объект Array letters с элементами a, b и c. Затем применяется метод shift() для удаления первого элемента (a) из объекта letters и присвоения его строке firstLetter. var letters:Array = new Array("a", "b", "c"); var firstLetter:String = letters.shift(); trace(letters); // b,c trace(firstLetter); // a Array.pop()Array.push()Array.unshift()slice Возвращает новый массив, состоящий из диапазона элементов исходного массива, не модифицируя исходный массив.Массив, состоящий из диапазона элементов исходного массива. ArraystartIndexint0Число, указывающее на индекс начальной позиции среза. Если startIndex — отрицательное число, начальной позицией становится конец массива, последнему элементу которого присваивается позиция «-1». endIndexint16777215Число, указывающее на индекс конечной позиции среза. Если этот параметр пропустить, срез включает все элементы от начальной позиции до конца массива. Если endIndex — отрицательное число, конечная позиция указывается с конца массива, последнему элементу которого присваивается позиция «-1». Возвращает новый массив, состоящий из диапазона элементов исходного массива. Возвращает новый массив, состоящий из диапазона элементов исходного массива, не модифицируя исходный массив. Возвращенный массив включает элемент startIndex и все элементы вплоть до него, исключая элемент endIndex.

Если параметры не передаются, новый массив дублирует исходный массив (как поверхностный клон).

Следующий код создает объект Array letters с элементами [a,b,c,d,e,f]. После этого создается массив someLetters путем вызова метода slice(), который применяется к элементам с первого (b) по третий (d). В результате получается массив с элементами b и c. var letters:Array = new Array("a", "b", "c", "d", "e", "f"); var someLetters:Array = letters.slice(1,3); trace(letters); // a,b,c,d,e,f trace(someLetters); // b,c Следующий код создает объект Array letters с элементами [a,b,c,d,e,f]. Затем создается массив someLetters путем вызова метода slice() по отношению ко второму элементу (c). В результате получается массив с элементами [c,d,e,f]. var letters:Array = new Array("a", "b", "c", "d", "e", "f"); var someLetters:Array = letters.slice(2); trace(letters); // a,b,c,d,e,f trace(someLetters); // c,d,e,f Следующий код создает объект Array letters с элементами [a,b,c,d,e,f]. После этого создается массив someLetters путем вызова метода slice() по отношению ко второму элементу с конца (e). Это приводит к появлению массива с элементами e и f. var letters:Array = new Array("a", "b", "c", "d", "e", "f"); var someLetters:Array = letters.slice(-2); trace(letters); // a,b,c,d,e,f trace(someLetters); // e,f
some Выполняет тестовую функцию для каждого элемента массива, пока не будет достигнут элемент, возвращающий значение true.Логическое значение true, если какие-либо элементы в массиве возвращают значение true для указанной функции; в противном случае присваивается значение false. BooleancallbackFunctionФункция, выполняемая с каждым элементом массива. Эта функция может содержать простое сравнение (например, item < 20) или более сложную операцию. Она вызывается по трем аргументам: значению элемента, индексу элемента и объекту Array:
    function callback(item:*, index:int, array:Array):Boolean;
thisObjectnullОбъект, используемый для этой функции в качестве this.
Выполняет тестовую функцию для каждого элемента массива, пока не будет достигнут элемент, возвращающий значение true. Этот метод используется для того, чтобы определить, все ли элементы массива соответствуют критерию (например, их значения должны быть меньше определенного числа).

Второй параметр этого метода, thisObject, должен иметь значение null, если первый параметр, callback, завершает метод. Предположим, что функция создается во фрагменте ролика с названием me:

     function myFunction(obj:Object):void {
        //your code here
     }
     

Допустим, что используется метод some() по отношению к массиву с именем myArray:

     myArray.some(myFunction, me);
     

Поскольку myFunction принадлежит классу Timeline, который не может быть переопределен фрагментом ролика me, среда выполнения Flash создает исключение. Этой ошибки при выполнении можно избежать, присвоив функцию переменной следующим образом:

     var myFunction:Function = function(obj:Object):void {
         //your code here
         };
     myArray.some(myFunction, me);
     
В следующем примере показано, какие значения не определены: package { import flash.display.Sprite; public class Array_some extends Sprite { public function Array_some() { var arr:Array = new Array(); arr[0] = "one"; arr[1] = "two"; arr[3] = "four"; var isUndef:Boolean = arr.some(isUndefined); if (isUndef) { trace("array contains undefined values: " + arr); } else { trace("array contains no undefined values."); } } private function isUndefined(element:*, index:int, arr:Array):Boolean { return (element == undefined); } } }
every()
sortOn Сортирует элементы в массиве по одному или нескольким полям массива.Возвращаемое значение зависит от наличия переданных параметров:
  • Если выбрано значение 4 или Array.UNIQUESORT для параметра options и два и более сортируемых элементов имеют одинаковые поля сортировки, возвращается значение 0, а сам массив остается неизменным.
  • Если присвоить значение 8 или Array.RETURNINDEXEDARRAY параметру options, возвращается массив, отражающий результаты сортировки, а сам массив остается неизменным.
  • В противном случае не возвращается ничего, а массив изменяется, отражая порядок сортировки.
Array
fieldNameObjectСтрока, указывающая на поле, которое должно использоваться в качестве значения сортировки, или на массив, первый элемент которого представляет собой первичное поле сортировки, второй — вторичное поле сортировки и т.д. optionsObjectnullОдно или несколько чисел или имен определенных констант, разделенные bitwise OR (|) и управляющие режимом сортировки. Параметр options может принимать следующие значения:
  • Array.CASEINSENSITIVE или 1
  • Array.DESCENDING или 2
  • Array.UNIQUESORT или 4
  • Array.RETURNINDEXEDARRAY или 8
  • Array.NUMERIC или 16

Подсказки для кодов включаются, если используется строковый формат флага (например, DESCENDING) вместо числового (2).

Сортирует элементы в массиве по одному или нескольким полям массива. Массив должен обладать следующими характеристиками:
  • Массив является индексированным, а не массивом ассоциативных элементов.
  • Каждый элемент массива содержит объект с одним или несколькими свойствами.
  • Все объекты имеют не менее одного общего свойства, значения которого можно применять для сортировки массива. Такое свойство называется полем.

При указании нескольких параметров fieldName первое поле относится к первичному полю сортировки, второе — к вторичному полю сортировки и т.д. Сортировка в Flash выполняется по значениям Юникода. (ASCII — это подмножество Юникода.) Если любой из сравниваемых элементов не содержит поле, указанное в параметре fieldName, предполагается, что ему присвоено значение undefined, а элементы последовательно расположены в отсортированном массиве без определенного порядка.

По умолчанию Array. sortOn() действует следующим образом:

  • Сортировка зависит от регистра (Z предшествует a).
  • Сортировка выполняется в восходящем порядке (a предшествует b).
  • Массив изменяется, отражая порядок сортировки; несколько элементов, имеющих идентичные поля сортировки последовательно размещаются в отсортированном массиве без определенного порядка.
  • Числовые поля сортируются так, как если бы они были строками. Число 100 предшествует числу 99, поскольку 1 — это строковое значение, которое меньше 9.

В Flash Player 7 добавлен параметр options, который можно применять для переопределения режима сортировки по умолчанию. Чтобы отсортировать простой массив (например, массив, у которого только одно поле) или указать порядок сортировки, который не поддерживается параметром options, выберите Array.sort().

Чтобы установить несколько флагов, разделите их побитовыми операторами ИЛИ (|):

my_array.sortOn(someFieldName, Array.DESCENDING | Array.NUMERIC);

В Flash Player 8 добавлена возможность выбора разных вариантов сортировки для каждого поля, когда сортировка выполняется более чем по одному полю. В Flash Player, начиная с версии 8, параметр options поддерживает массив вариантов сортировки. При этом каждый вариант сортировки соответствует полю сортировки в параметре fieldName. В следующем примере первичное поле сортировки (a) сортируется в нисходящем порядке, вторичное поле сортировки (b) — с помощью численной сортировки, а третичное поле (c) — с помощью сортировки, не зависящей от регистра:

Array.sortOn (["a", "b", "c"], [Array.DESCENDING, Array.NUMERIC, Array.CASEINSENSITIVE]);

Примечание. Массивы fieldName и options должны иметь одно и то же количество элементов; в противном случае массив options игнорируется. Кроме того, варианты Array.UNIQUESORT и Array.RETURNINDEXEDARRAY могут выступать только в роли первого элемента массива. В противном случае они игнорируются.

Следующий код создает пустой объект Array vegetables, который затем заполняется путем пяти вызовов метода push(). Каждый раз при вызове метода push() создается новый объект Vegetable. Для этого вызывается конструктор Vegetable(), который принимает объекты String (name) и Number (price). Пятикратный вызов метода push() с указанными значениями приводит к формированию следующего массива: [lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44]. После этого используется метод sortOn() с параметром name, создающий следующий массив: [asparagus:3.99, celery:1.29, lettuce:1.49, spinach:1.89, squash:1.44]. После этого снова вызывается метод sortOn() с параметром price, а также константами NUMERIC и DESCENDING. Он создает массив, отсортированный по числам в нисходящем порядке: [asparagus:3.99, spinach:1.89, lettuce:1.49, squash:1.44, celery:1.29]. var vegetables:Array = new Array(); vegetables.push(new Vegetable("lettuce", 1.49)); vegetables.push(new Vegetable("spinach", 1.89)); vegetables.push(new Vegetable("asparagus", 3.99)); vegetables.push(new Vegetable("celery", 1.29)); vegetables.push(new Vegetable("squash", 1.44)); trace(vegetables); // lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44 vegetables.sortOn("name"); trace(vegetables); // asparagus:3.99, celery:1.29, lettuce:1.49, spinach:1.89, squash:1.44 vegetables.sortOn("price", Array.NUMERIC | Array.DESCENDING); trace(vegetables); // asparagus:3.99, spinach:1.89, lettuce:1.49, squash:1.44, celery:1.29 class Vegetable { public var name:String; public var price:Number; public function Vegetable(name:String, price:Number) { this.name = name; this.price = price; } public function toString():String { return " " + name + ":" + price; } } Следующий код создает пустой объект Array records, который затем заполняется путем трех вызовов метода push(). При каждом вызове метода push() строки name, city и zip добавляются в объект records. Печать элементов массива производится с помощью циклов for. Первый цикл for выводит элементы на печать в том порядке, в каком они были добавлены. Второй цикл for выполняется после того, как объект records был отсортирован по имени и затем по городу с помощью метода sortOn(). Третий цикл for приводит к иным результатам, поскольку объект records сортируется еще раз сначала по городу, а затем по имени. var records:Array = new Array(); records.push({name:"john", city:"omaha", zip:68144}); records.push({name:"john", city:"kansas city", zip:72345}); records.push({name:"bob", city:"omaha", zip:94010}); for(var i:uint = 0; i < records.length; i++) { trace(records[i].name + ", " + records[i].city); } // Results: // john, omaha // john, kansas city // bob, omaha trace("records.sortOn('name', 'city');"); records.sortOn(["name", "city"]); for(var i:uint = 0; i < records.length; i++) { trace(records[i].name + ", " + records[i].city); } // Results: // bob, omaha // john, kansas city // john, omaha trace("records.sortOn('city', 'name');"); records.sortOn(["city", "name"]); for(var i:uint = 0; i < records.length; i++) { trace(records[i].name + ", " + records[i].city); } // Results: // john, kansas city // bob, omaha // john, omaha Следующий код создает пустой объект Array users, который затем заполняется путем четырех вызовов метода push(). Каждый раз при вызове метода push() создается объект User с помощью конструктора User(). В число пользователей добавляются строка name и uint age. В результате получается набор массивов [Bob:3,barb:35,abcd:3,catchy:4].

Затем массив сортируется следующими способами:

  1. Только по имени, создавая массив [Bob:3,abcd:3,barb:35,catchy:4]
  2. По имени и с константой CASEINSENSITIVE, создавая массив [abcd:3,barb:35,Bob:3,catchy:4]
  3. По имени и с константами CASEINSENSITIVE и DESCENDING, создавая массив [catchy:4,Bob:3,barb:35,abcd:3]
  4. Только по возрасту, создавая массив [abcd:3,Bob:3,barb:35,catchy:4]
  5. По возрасту и с константой NUMERIC, создавая массив [Bob:3,abcd:3,catchy:4,barb:35]
  6. По возрасту и с константами DESCENDING и NUMERIC, создавая массив [barb:35,catchy:4,Bob:3,abcd:3]

Затем создается массив indices, которому присваиваются результаты сортировки по возрасту с использованием констант NUMERIC и RETURNINDEXEDARRAY. В результате появляется массив [Bob:3,abcd:3,catchy:4,barb:35], который впоследствии выводится на печать с помощью цикла for.

class User { public var name:String; public var age:Number; public function User(name:String, age:uint) { this.name = name; this.age = age; } public function toString():String { return this.name + ":" + this.age; } } var users:Array = new Array(); users.push(new User("Bob", 3)); users.push(new User("barb", 35)); users.push(new User("abcd", 3)); users.push(new User("catchy", 4)); trace(users); // Bob:3,barb:35,abcd:3,catchy:4 users.sortOn("name"); trace(users); // Bob:3,abcd:3,barb:35,catchy:4 users.sortOn("name", Array.CASEINSENSITIVE); trace(users); // abcd:3,barb:35,Bob:3,catchy:4 users.sortOn("name", Array.CASEINSENSITIVE | Array.DESCENDING); trace(users); // catchy:4,Bob:3,barb:35,abcd:3 users.sortOn("age"); trace(users); // abcd:3,Bob:3,barb:35,catchy:4 users.sortOn("age", Array.NUMERIC); trace(users); // Bob:3,abcd:3,catchy:4,barb:35 users.sortOn("age", Array.DESCENDING | Array.NUMERIC); trace(users); // barb:35,catchy:4,Bob:3,abcd:3 var indices:Array = users.sortOn("age", Array.NUMERIC | Array.RETURNINDEXEDARRAY); var index:uint; for(var i:uint = 0; i < indices.length; i++) { index = indices[i]; trace(users[index].name, ": " + users[index].age); } // Results: // Bob : 3 // abcd : 3 // catchy : 4 // barb : 35
| (побитовое OR)Array.sort()
sort Сортирует элементы в массиве.Возвращаемое значение зависит от того, передаются ли аргументы (см. список):
  • Если указывается значение 4 или Array.UNIQUESORT для аргумента sortOptions параметра ...args и два или более сортируемых элемента имеют идентичные поля сортировки, Flash возвращает значение 0 и не модифицирует массив.
  • Если указывается значение 8 или Array.RETURNINDEXEDARRAY для аргумента sortOptions параметра ...args, Flash возвращает отсортированный числовой массив индексов, отражающий результаты сортировки, и не модифицирует массив.
  • В противном случае Flash ничего не возвращает и изменяет массив, чтобы отразить порядок сортировки.
Array
argsАргументы, указывающие на функцию сравнения и одно или несколько значений, определяющих режим сортировки.

В этом методе используется синтаксис и порядок аргументов Array.sort(compareFunction, sortOptions), где аргументы определяются следующим образом:

  • compareFunction — функция сравнения, используемая для определения порядка сортировки элементов в массиве. Этот аргумент является необязательным. Функция сравнения требует наличия двух сравниваемых аргументов. При наличии элементов A и B функция compareFunction может возвращать отрицательное, нулевое или положительное значение:
    • Отрицательное возвращаемое значение обозначает, что A стоит перед B в отсортированной последовательности.
    • Нулевое возвращаемое значение обозначает, что элементы A и B имеют одинаковый порядок сортировки.
    • Положительное возвращаемое значение обозначает, что элемент A стоит после элемента B в отсортированной последовательности.
  • sortOptions — одно или несколько чисел или определенных констант, разделенных оператором | (побитовое ИЛИ), которые меняют режим сортировки по умолчанию. Этот аргумент является необязательным. Параметр sortOptions может принимать следующие значения:
    • 1 или Array.CASEINSENSITIVE
    • 2 или Array.DESCENDING
    • 4 или Array.UNIQUESORT
    • 8 или Array.RETURNINDEXEDARRAY
    • 16 или Array.NUMERIC
    Дополнительную информацию см. в описании метода Array.sortOn().
Сортирует элементы в массиве. Этот метод применяется для сортировки по значениям Юникода. (ASCII — это подмножество Юникода.)

По умолчанию Array. sort() действует следующим образом:

  • Сортировка зависит от регистра (Z предшествует a).
  • Сортировка выполняется в восходящем порядке (a предшествует b).
  • Массив изменяется, отражая порядок сортировки; несколько элементов, имеющих идентичные поля сортировки последовательно размещаются в отсортированном массиве без определенного порядка.
  • Все элементы независимо от типа данных сортируются так, как если бы это были строки. Число 100 предшествует числу 99, поскольку «1» — это строковое значение, которое меньше «9».

Чтобы выполнить сортировку массива, используя настройки, которые отличаются от настроек по умолчанию, можно либо воспользоваться одной из возможностей сортировки, описанной в разделе sortOptions описания параметра ...args, либо создать собственную пользовательскую функцию сортировки. При создании пользовательской функции вызывается метод sort(), а имя пользовательской функции используется в качестве первого аргумента (compareFunction)

Следующий код создает объект Array vegetables с элементами [spinach, green pepper, cilantro, onion, avocado]. После этого массив сортируется с помощью метода sort(), который вызывается без параметров. В результате объект vegetables сортируется в алфавитном порядке ([avocado, cilantro, green pepper, onion, spinach]). var vegetables:Array = new Array("spinach", "green pepper", "cilantro", "onion", "avocado"); trace(vegetables); // spinach,green pepper,cilantro,onion,avocado vegetables.sort(); trace(vegetables); // avocado,cilantro,green pepper,onion,spinach Следующий код создает объект Array vegetables с элементами [spinach, green pepper, Cilantro, Onion, Avocado]. Сортировка этого массива выполняется методом sort(), который в первый раз вызывается без параметров. Результат выглядит следующим образом: [Avocado,Cilantro,Onion,green pepper,spinach]. Затем снова вызывается метод sort(), применяемый к объекту vegetables, в котором в качестве параметра выбрана константа CASEINSENSITIVE. В результате объект vegetables сортируется в алфавитном порядке ([Avocado, Cilantro, green pepper, Onion, spinach]). var vegetables:Array = new Array("spinach", "green pepper", "Cilantro", "Onion", "Avocado"); vegetables.sort(); trace(vegetables); // Avocado,Cilantro,Onion,green pepper,spinach vegetables.sort(Array.CASEINSENSITIVE); trace(vegetables); // Avocado,Cilantro,green pepper,Onion,spinach Следующий код создает пустой объект Array vegetables, который затем заполняется путем пяти вызовов метода push(). Каждый раз при вызове метода push() создается новый объект Vegetable. Для этого вызывается конструктор Vegetable(), который принимает объекты String (name) и Number (price). Пятикратный вызов метода push() с указанными значениями приводит к формированию следующего массива: [lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44]. Затем для сортировки массива используется метод sort(). В результате появляется массив [asparagus:3.99, celery:1.29, lettuce:1.49, spinach:1.89, squash:1.44]. var vegetables:Array = new Array(); vegetables.push(new Vegetable("lettuce", 1.49)); vegetables.push(new Vegetable("spinach", 1.89)); vegetables.push(new Vegetable("asparagus", 3.99)); vegetables.push(new Vegetable("celery", 1.29)); vegetables.push(new Vegetable("squash", 1.44)); trace(vegetables); // lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44 vegetables.sort(); trace(vegetables); // asparagus:3.99, celery:1.29, lettuce:1.49, spinach:1.89, squash:1.44 //The following code defines the Vegetable class class Vegetable { private var name:String; private var price:Number; public function Vegetable(name:String, price:Number) { this.name = name; this.price = price; } public function toString():String { return " " + name + ":" + price; } } Следующий пример в точности напоминает предыдущий, за исключением того, что метод sort() используется вместе с пользовательской функцией сортировки (sortOnPrice), выполняющей сортировку по цене, а не в алфавитном порядке. Учтите, что цена извлекается с помощью новой функции getPrice(). var vegetables:Array = new Array(); vegetables.push(new Vegetable("lettuce", 1.49)); vegetables.push(new Vegetable("spinach", 1.89)); vegetables.push(new Vegetable("asparagus", 3.99)); vegetables.push(new Vegetable("celery", 1.29)); vegetables.push(new Vegetable("squash", 1.44)); trace(vegetables); // lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44 vegetables.sort(sortOnPrice); trace(vegetables); // celery:1.29, squash:1.44, lettuce:1.49, spinach:1.89, asparagus:3.99 function sortOnPrice(a:Vegetable, b:Vegetable):Number { var aPrice:Number = a.getPrice(); var bPrice:Number = b.getPrice(); if(aPrice > bPrice) { return 1; } else if(aPrice < bPrice) { return -1; } else { //aPrice == bPrice return 0; } } // The following code defines the Vegetable class and should be in a separate package. class Vegetable { private var name:String; private var price:Number; public function Vegetable(name:String, price:Number) { this.name = name; this.price = price; } public function getPrice():Number { return price; } public function toString():String { return " " + name + ":" + price; } } Следующий код создает объект Array numbers с элементами [3,5,100,34,10]. Вызов метода sort() без параметров приводит к сортировке в алфавитном порядке. При этом появляется нежелательный результат: [10,100,3,34,5]. Чтобы правильно отсортировать числовые значения, необходимо передать константу NUMERIC методу sort(), который сортирует numbers следующим образом: [3,5,10,34,100].

Примечание. Режим функции sort() по умолчанию состоит в том, чтобы обрабатывать каждую сущность как строку. При использовании аргумента Array.NUMERIC во время выполнения Flash пытается преобразовать любые нечисловые значения в целые числа с целью сортировки. Если при этом происходит ошибка, она выдается во время выполнения. Например, время выполнения может успешно преобразовать значение String "6" к целому числу, но создаст ошибку, если встретит значение String "six".

var numbers:Array = new Array(3,5,100,34,10); trace(numbers); // 3,5,100,34,10 numbers.sort(); trace(numbers); // 10,100,3,34,5 numbers.sort(Array.NUMERIC); trace(numbers); // 3,5,10,34,100
| (bitwise OR)Array.sortOn()
splice Добавляет элементы в массив и удаляет элементы из массива.Массив, содержащий элементы, удаленные из исходного массива. ArraystartIndexintЦелое число, указывающее индекс элемента в массиве, откуда начинается вставка или удаление. Для указания позиции относительно конца массива можно использовать отрицательное число (например, -1 — это последний элемент массива). deleteCountuintЦелое число, указывающее количество удаляемых элементов. Это число включает элемент, указанный в параметре startIndex. Если значение параметра deleteCount не указано, метод удаляет все значения, начиная с элемента startIndex до последнего элемента в массиве. Если значение равно 0, элементы не удаляются. valuesНеобязательный список, состоящий из одного или нескольких значений, разделенных запятыми, которые вставляется в массив на позиции, указанной параметром startIndex. Если тип вставленного значения — Array, массив остается без изменений и вставляется как один элемент. Например, если соединить существующий массив из трех элементов с другим массивом из трех элементов, то в результирующем массиве будет только четыре элемента. Однако одним из элементов будет массив из трех элементов. Добавляет элементы в массив и удаляет элементы из массива. Этот метод изменяет массив, не создавая копии.

Примечание. Для переопределения этого метода в подклассе Array укажите для параметров значение ...args, как показано в примере:

     public override function splice(...args) {
       // your statements here
     }
     
Следующий код создает объект Array vegetables с элементами [spinach, green pepper, cilantro, onion, avocado]. Затем вызывается метод splice() с параметрами 2 и 2, присваивающий cilantro и onion массиву со spliced. Массив vegetables содержит при этом элементы [spinach,green pepper,avocado]. Вторично вызывается метод splice() с параметрами 1, 0, и массив со spliced присваивает [cilantro,onion] в качестве второго элемента vegetables. var vegetables:Array = new Array("spinach", "green pepper", "cilantro", "onion", "avocado"); var spliced:Array = vegetables.splice(2, 2); trace(vegetables); // spinach,green pepper,avocado trace(spliced); // cilantro,onion vegetables.splice(1, 0, spliced); trace(vegetables); // spinach,cilantro,onion,green pepper,avocado Учтите, что отслеживание cilantro и onion выполняется так, как если бы в vegetables было 5 элементов, хотя фактически в нем 4 элемента (а второй из них является другим массивом, содержащим два элемента). Чтобы добавить cilantro и onion по отдельности, необходимо использовать следующее: var vegetables:Array = new Array("spinach", "green pepper", "cilantro", "onion", "avocado"); var spliced:Array = vegetables.splice(2, 2); trace(vegetables); // spinach,green pepper,avocado trace(spliced); // cilantro,onion vegetables.splice(1, 0, "cilantro", "onion"); trace(vegetables); // spinach,cilantro,onion,green pepper,avocado
toLocaleString Возвращает строку, представляющую элементы в заданном массиве.Строка с элементами массива. String Возвращает строку, представляющую элементы в заданном массиве. Каждый элемент в массиве, начиная с индекса 0 и заканчивая наибольшим индексом, преобразуется в сцепленную строку, разделенную запятыми. В рамках ActionScript 3.0 этот метод возвращает то же значение, что и метод Array.toString(). Array.toString()toString Возвращает строку, представляющую элементы в заданном массиве.Строка с элементами массива. String Возвращает строку, представляющую элементы в заданном массиве. Каждый элемент в массиве, начиная с индекса 0 и заканчивая наибольшим индексом, преобразуется в сцепленную строку, разделенную запятыми. Для указания пользовательского разделителя примените метод Array.join(). Следующий код создает объект Array, преобразует значения в строки и сохраняет их в переменной vegnums с типом данных String. var vegetables:Array = new Array(); vegetables.push(1); vegetables.push(2); vegetables.push(3); vegetables.push(4); vegetables.push(5); var vegnums:String = vegetables.toString(); trace(vegnums+",6"); // 1,2,3,4,5,6 String.split()Array.join()unshift Добавляет один или несколько элементов в начало массива и возвращает новую длину массива.Целое число, выражающее новую длину массива. uintargsОдно или несколько чисел, элементов или переменных, вставляемых в начало массива. Добавляет один или несколько элементов в начало массива и возвращает новую длину массива. Другие элементы массива смещаются с исходных позиций (с i на i+1). Следующий код создает пустой объект Array names. Строки Bill и Jeff добавлены с помощью метода push(), а строки Alfred и Kyle добавлены в начало names путем двух вызовов метода unshift(). var names:Array = new Array(); names.push("Bill"); names.push("Jeff"); trace(names); // Bill,Jeff names.unshift("Alfred"); names.unshift("Kyle"); trace(names); // Kyle,Alfred,Bill,Jeff Array.pop()Array.push()Array.shift()CASEINSENSITIVE Задает сортировку без учета регистра для методов сортировки класса Array.1uint Задает сортировку без учета регистра для методов сортировки класса Array. Эту константу можно использовать для параметра options в методе sort() или sortOn().

Значение этой константы равно 1.

Array.sort()Array.sortOn()
DESCENDING Задает сортировку по убыванию для методов сортировки класса Array.2uint Задает сортировку по убыванию для методов сортировки класса Array. Эту константу можно использовать для параметра options в методе sort() или sortOn().

Значение этой константы равно 2.

Array.sort()Array.sortOn()
NUMERIC Задает числовую сортировку (вместо сортировки по символьной строке) для методов сортировки класса Array.16uint Задает числовую сортировку (вместо сортировки по символьной строке) для методов сортировки класса Array. Включение этой константы в параметр options приводит к тому, что методы sort() и sortOn() сортируют числа как числовые значения, а не как строки с числовыми значениями. Без константы NUMERIC сортировка обрабатывает каждый элемент массива как символьную строку и выдает результаты согласно порядку Юникода.

Например, если имеется массив значений [2005, 7, 35], а константа NUMERIC не включена в параметр options, отсортированный массив выглядит как [2005, 35, 7], но если константа NUMERIC включена, он выглядит следующим образом: [7, 35, 2005].

Эта константа применяется только к числам в массиве; она не применяется к строкам, которые содержат числовые данные (например, ["23", "5"]).

Значение этой константы равно 16.

Array.sort()Array.sortOn()
RETURNINDEXEDARRAY Задает сортировку, которая возвращает массив, состоящий из индексов массивов.8uint Задает сортировку, которая возвращает массив, состоящий из индексов массивов. Эту константу можно использовать для параметра options в методе sort() или sortOn(). Таким образом, у вас есть доступ к нескольким представлениям элементов массива в то время, как исходный массив остается неизменным.

Значение этой константы равно 8.

Array.sort()Array.sortOn()
UNIQUESORT Задает уникальное требование сортировки для методов сортировки класса Array.4uint Задает уникальное требование сортировки для методов сортировки класса Array. Эту константу можно использовать для параметра options в методе sort() или sortOn(). Эта уникальная возможность прекращает сортировку, если любые два сортируемых элемента имеют одинаковые значения.

Значение этой константы равно 4.

Array.sort()Array.sortOn()
length Неотрицательное целое число, которым задается количество элементов в массиве.uint Неотрицательное целое число, которым задается количество элементов в массиве. Это свойство автоматически обновляется, когда в массив добавляются новые элементы. Когда элементу массива присваивается свойство (например, my_array[index] = value), если index является числом, а index+1 превышает значение свойства length, свойство length обновляется, принимая значение index+1.

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

Следующий код создает объект Array names со строковым элементом Bill. После этого используется метод push() для добавления еще одного строкового элемента Kyle. Длина массива, определяемая свойством length, составляла один элемент перед применением метода push(). После вызова push() она составляет два элемента. Добавляется еще одна строка (Jeff), которая увеличивает длину объекта names до трех элементов. Затем дважды вызывается метод shift() для удаления элементов Bill и Kyle, после чего параметру length массива присваивается значение 1. var names:Array = new Array("Bill"); names.push("Kyle"); trace(names.length); // 2 names.push("Jeff"); trace(names.length); // 3 names.shift(); names.shift(); trace(names.length); // 1
RegExp Класс RegExp позволяет работать с регулярными выражениями, которые используются в качестве шаблонов для поиска в строках, а также для замены текста в строках.Object Класс RegExp позволяет работать с регулярными выражениями, которые используются в качестве шаблонов для поиска в строках, а также для замены текста в строках.

Новый объект RegExp можно создать с помощью конструктора new RegExp() или путем присвоения литерала RegExp переменной:

var pattern1:RegExp = new RegExp("test-\\d", "i"); var pattern2:RegExp = /test-\d/i;

Дополнительные сведения см. в главе «Использование регулярных выражений» в Руководстве разработчика по ActionScript 3.0.

В следующем примере показано, как с помощью регулярных выражений можно выполнить синтаксический разбор строк и вернуть новую строку или логическое значение на основе переданной строки. Метод informalizeGreeting() просто заменяет слово Hello выражением Hi независимо от регистра. Кроме того, он удаляет фамилию имени в строке (предполагается, что она соответствует определенному шаблону). В методах validateEmail() и validatePhoneNumber() переданная строка проверяется на предмет соответствия шаблона действительному шаблону адреса электронной почты или конкретного телефонного номера. В зависимости от результатов методы возвращают логические значения. package { import flash.display.Sprite; public class RegExpExample extends Sprite { public function RegExpExample() { var formalGreeting:String = "Hello, John Smith."; trace(informalizeGreeting(formalGreeting)); // Hi, John. var validEmail:String = "name@domain.com"; trace(validateEmail(validEmail)); // true var invalidEmail:String = "foo"; trace(validateEmail(invalidEmail)); // false var validPhoneNumber:String = "415-555-1212"; trace(validatePhoneNumber(validPhoneNumber)); // true var invalidPhoneNumber:String = "312-867-530999"; trace(validatePhoneNumber(invalidPhoneNumber)); // false } private function informalizeGreeting(str:String):String { var pattern:RegExp = new RegExp("hello, (\\w+) \\w+", "i"); return str.replace(pattern, "Hi, $1"); } private function validateEmail(str:String):Boolean { var pattern:RegExp = /(\w|[_.\-])+@((\w|-)+\.)+\w{2,4}+/; var result:Object = pattern.exec(str); if(result == null) { return false; } return true; } private function validatePhoneNumber(str:String):Boolean { var pattern:RegExp = /^\d{3}-\d{3}-\d{4}$/; var result:Object = pattern.exec(str); if(result == null) { return false; } return true; } } }
String.match()String.replace()String.search()RegExp Позволяет создавать регулярное выражение из двух строк.reStringШаблон регулярного выражения (также называется строкой конструктора). Это основная часть регулярного выражения (ограниченная символами «/»).

Примечания.

  • Не включайте в начале и в конце символы «/»; применяйте их только для того, чтобы определить литерал регулярного выражения, не используя конструктор. Например, эквивалентными являются следующие два регулярных выражения: var re1:RegExp = new RegExp("bob", "i"); var re2:RegExp = /bob/i;
  • В регулярном выражении, которое определяется методом конструктора RegExp(), чтобы воспользоваться метапоследовательностью, которая начинается с символа обратной косой черты (\) (например, \d, что соответствует любой цифре), дважды введите символ обратной косой черты. Например, эквивалентными являются следующие два регулярных выражения: var re1:RegExp = new RegExp("\\d+", ""); var re2:RegExp = /\d/;

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

flagsStringМодификаторы регулярного выражения. В их число входят следующие:
  • g ? При использовании метода replace() класса String укажите модификатор для замены всех совпадений, а не только для первого из них. Этот модификатор соответствует свойству global экземпляра RegExp.
  • i ? Анализ регулярного выражения выполнен без учета регистра. Этот модификатор соответствует свойству ignoreCase экземпляра RegExp.
  • s ? Точка (. ) соответствует символам новой строки. Примечание. Этот модификатор соответствует свойству dotall экземпляра RegExp.
  • m ? Символ вставки (^) и символ доллара ($) совпадают до и после символов новой строки. Этот модификатор соответствует свойству multiline экземпляра RegExp.
  • x ? Символы пробела в строке re игнорируются, что позволяет записывать удобочитаемые конструкторы. Этот модификатор соответствует свойству extended экземпляра RegExp.

Все остальные символы в строке flags игнорируются.

Позволяет создавать регулярное выражение из двух строк. Одна строка определяет шаблон регулярного выражения, а другая – флаги, которые в нем используются.
exec Выполняет поиск регулярного выражения в заданной строке str.Если совпадения не найдено, появляется значение null; в противном случае появляется объект, имеющий следующие свойства:
  • Массив, в котором элемент 0 содержит полную совпадающую подстроку, а остальные элементы массива (от 1 до n) содержат подстроки, которые соответствуют группам, заключенным в регулярном выражении в скобки.
  • index ? Позиция символа совпадающей подстроки в строке
  • input ? Строка (str)
Object
strStringИскомая строка.
Выполняет поиск регулярного выражения в заданной строке str.

Если флаг g (global) не установлен для этого регулярного выражения, то поиск начинается с начала строки (с позиции индекса 0); при поиске игнорируется свойство lastIndex регулярного выражения.

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

Когда флаг g (global) не установлен в регулярном выражении, то можно воспользоваться exec(), чтобы найти первое совпадение в строке: var myPattern:RegExp = /(\w~~)sh(\w~~)/ig; var str:String = "She sells seashells by the seashore"; var result:Object = myPattern.exec(str); trace(result);

Объекту result присваивается следующее значение:

  • result[0] присваивается значениеShe (полное совпадение).
  • result[1] присваивается значение пустой строки (первая совпадающая группа в скобках).
  • result[2] присваивается значение «e» (вторая совпадающая группа в скобках).
  • result.index присваивается значение 0.
  • result.input присваивается значение строки ввода: She sells seashells by the seashore.

В следующем примере флаг g (global) устанавливается в регулярном выражении, чтобы exec() можно было повторно использовать для поиска нескольких совпадений:

var myPattern:RegExp = /(\w~~)sh(\w~~)/ig; var str:String = "She sells seashells by the seashore"; var result:Object = myPattern.exec(str); while (result != null) { trace ( result.index, "\t", result); result = myPattern.exec(str); }

Результатом выполнения этого кода становится следующие выходные данные:


            0      She,,e
            10     seashells,sea,ells
            27     seashore,sea,ore
         
String.match()String.search()
test Проверяет совпадение регулярного выражения в данной строке str.В случае совпадения выбирается значение true; в противном случае – false. BooleanstrStringТестируемая строка. Проверяет совпадение регулярного выражения в данной строке str.

Если флаг g (global) не установлен для этого регулярного выражения, то поиск начинается с начала строки (с позиции индекса 0); при поиске игнорируется свойство lastIndex регулярного выражения.

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

В следующем примере показано применение метода test() по отношению к регулярному выражению, в котором установлен флаг g (global): var re1:RegExp = /\w/g; var str:String = "a b c"; trace (re1.lastIndex); // 0 trace (re1.test(str)); // true trace (re1.lastIndex); // 1 trace (re1.test(str)); // true trace (re1.lastIndex); // 3 trace (re1.test(str)); // true trace (re1.lastIndex); // 5 trace (re1.test(str)); // false
dotall Указывает, совпадает ли символ точки (.) в шаблоне регулярного выражения с символами новой строки.Boolean Указывает, совпадает ли символ точки (.) в шаблоне регулярного выражения с символами новой строки. Воспользуйтесь флагом s при создании регулярного выражения для выбора dotall = true. В следующем примере показано воздействие флага s (dotall) на регулярное выражение: var str:String = "<p>Hello\n" + "again</p>" + "<p>Hello</p>"; var pattern:RegExp = /<p>.*?<\/p>/; trace(pattern.dotall) // false trace(pattern.exec(str)); // <p>Hello</p> pattern = /<p>.*?<\/p>/s; trace(pattern.dotall) // true trace(pattern.exec(str)); extended Определяет, должен ли использоваться расширенный режим для регулярного выражения.Boolean Определяет, должен ли использоваться расширенный режим для регулярного выражения. Когда объект RegExp находится в расширенном режиме, символы пробелов в строке конструктора игнорируются. Это позволяет создавать более читабельные конструкторы.

Воспользуйтесь флагом x при создании регулярного выражения, чтобы установить extended = true.

В следующем примере показаны различные способы создания одного и того же регулярного выражения. В каждом случае регулярное выражение должно соответствовать определенному шаблону телефонного номера (xxx-xxx-xxxx, (xxx) xxx-xxxx или (xxx)xxx-xxxx). Во втором выражении используется флаг x, приводящий к тому, что пробелы в строке игнорируются. var rePhonePattern1:RegExp = /\d{3}-\d{3}-\d{4}|\(\d{3}\)\s?\d{3}-\d{4}/; var str:String = "The phone number is (415)555-1212."; trace(rePhonePattern1.extended) // false trace(rePhonePattern1.exec(str)); // (415)555-1212 var rePhonePattern2:RegExp = / \d{3}-\d{3}-\d{4} | \( \d{3} \) \ ? \d{3}-\d{4} /x; trace(rePhonePattern2.extended) // true trace(rePhonePattern2.exec(str)); // (415)555-1212
global Определяет, должен ли использоваться глобальный поиск совпадений для регулярного выражения.Boolean Определяет, должен ли использоваться глобальный поиск совпадений для регулярного выражения. Когда global == true, свойство lastIndex устанавливается после нахождения совпадения. При следующем запросе совпадения механизм регулярных выражений начинает работать с позиции в строке, указанной в свойстве lastIndex. Воспользуйтесь флагом g при создании регулярного выражения, чтобы выбрать для свойства global значение true. В следующем примере показано влияние установки флага g (global) в методе exec(): var pattern:RegExp = /foo\d/; var str:String = "foo1 foo2"; trace(pattern.global); // false trace(pattern.exec(str)); // foo1 trace(pattern.lastIndex); // 0 trace(pattern.exec(str)); // foo1 pattern = /foo\d/g; trace(pattern.global); // true trace(pattern.exec(str)); // foo1 trace(pattern.lastIndex); // 4 trace(pattern.exec(str)); // foo2 ignoreCase Определяет, игнорируется ли регистр регулярного выражения.Boolean Определяет, игнорируется ли регистр регулярного выражения. Воспользуйтесь флагом i при создании регулярного выражения, чтобы установить ignoreCase = true. В следующем примере показано влияние установки флага i (ignoreCase): var pattern:RegExp = /bob/; var str:String = "Bob bob"; trace(pattern.ignoreCase); // false trace(pattern.exec(str)); // bob pattern = /bob/i; trace(pattern.ignoreCase); // true trace(pattern.exec(str)); // Bob lastIndex Определяет позицию в индексе для строки, с которой должен начинаться следующий поиск.Number Определяет позицию в индексе для строки, с которой должен начинаться следующий поиск. Это свойство влияет на методы exec() и test() класса RegExp. Однако методы match(), replace() и search() класса String игнорируют свойство lastIndex и всегда начинают поиск с начала строки.

Когда метод exec() или test() находит совпадение, флаг g (global) устанавливается со значением true для регулярного выражения. С помощью этого метода свойство lastIndex автоматически устанавливается в соответствии с позицией в индексе символа, который следует за последним символом в совпадающей подстроке последнего совпадения. Если флаг g (global) принимает значение false, метод не устанавливает свойство lastIndex.

Свойство lastIndex можно установить так, чтобы скорректировать начальную позицию в строке для поиска регулярных выражений.

В следующем примере показано воздействие установки свойства lastIndex и то, как оно обновляется после вызова метода exec() для регулярного выражения, в котором установлен флаг g (global): var pattern:RegExp = /\w\d/g; var str:String = "a1 b2 c3 d4"; pattern.lastIndex = 2; trace(pattern.exec(str)); // b2 trace(pattern.lastIndex); // 5 trace(pattern.exec(str)); // c3 trace(pattern.lastIndex); // 8 trace(pattern.exec(str)); // d4 trace(pattern.lastIndex); // 11 trace(pattern.exec(str)); // null
multiline Определяет, установлен ли флаг m (multiline).Boolean Определяет, установлен ли флаг m (multiline). Если он установлен, совпадает знак вставки (^) и знак доллара ($), расположенные в регулярном выражении до и после новой строки. Воспользуйтесь флагом m при создании регулярного выражения, чтобы установить multiline = true. В следующем примере показано влияние установки флага m (multiline): var pattern:RegExp = /^bob/; var str:String = "foo\n" + "bob"; trace(pattern.multiline); // false trace(pattern.exec(str)); // null pattern = /^bob/m; trace(pattern.multiline); // true trace(pattern.exec(str)); // bob source Определяет шаблонную часть регулярного выражения.String Определяет шаблонную часть регулярного выражения. Следующий код выдает параметр source для двух регулярных выражений: var re1:RegExp = /aabb/gi; trace (re1.source); // aabb var re2:RegExp = new RegExp("x+y*", "i"); trace(re2.source); // x+y*
Date Класс Date представляет сведения о дате и времени.Object Класс Date представляет сведения о дате и времени. Экземпляр класса Date представляет определенный момент времени, для которого можно запросить или изменить такие свойства как месяц, день, часы и секунды. Класс Date позволяет извлекать значения даты и времени относительно всемирного времени (среднее время по Гринвичу, которое теперь называется всемирным скоординированным временем или UTC) или местного времени, которое определяется по настройке местного часового пояса в той операционной системе, где запущен Flash Player. Методы класса Date не являются статическими, но применяются только к отдельным объектам Date, указанным при вызове метода. Методы Date.UTC() и Date.parse() представляют собой исключение, являясь статическими.

Класс Date по-разному обрабатывает переход на летнее время в зависимости от операционной системы и версии среды выполнения. Flash Player версии 6 и выше учитывает переход на летнее время в следующих операционных системах.

  • Windows – объект Date автоматически корректирует выводимые данные с учетом перехода на летнее время. Объект Date распознает ситуации, когда переход на летнее время включен в текущем регионе. При этом регистрируется стандартная дата и время данного перехода. Однако даты переходов, выбранные в данный момент, применяются к датам в прошлом и будущем, поэтому расчет временного сдвига может выполняться с ошибкой для прошедших дат, приходящихся на период действия других дат перехода для этого региона.
  • Mac OS X – объект Date автоматически корректирует выводимые данные с учетом перехода на летнее время. Информационная база данных о часовых поясах используется в Mac OS X, чтобы определять, необходимо ли применять сдвиг по времени к любым текущим или прошедшим дате и времени.
  • Mac OS 9 – в этой операционной системе приводятся сведения, которых достаточно только для определения того, необходимо ли применять временной сдвиг к текущим дате и времени. Исходя из этого, объект Date допускает, что текущий временной сдвиг применяется ко всем прошедшим или еще не наступившим датам.

Переход на летнее время обрабатывается Flash Player 5 в следующих операционных системах.

  • В Windows всегда применяются правила перехода на летнее время для США. Это приводит к ошибкам в Европе и других странах, где переход на летнее время принят, но происходит в другой день, нежели в США. Flash правильно определяет, принят ли переход на летнее время в том или ином регионе.

Чтобы воспользоваться классом Date, создайте экземпляр Date с помощью оператора new.

В ActionScript 3.0 добавлено несколько новых свойств средств доступа, которыми можно пользоваться вместо многих методов класса Date, которые выполняют доступ к экземплярам Date или модифицируют их. Также ActionScript 3.0 содержит ряд новых вариантов метода toString(), добавленных в целях соответствия третьему изданию ECMA-262, включая: Date.toLocaleString(), Date.toTimeString(), Date.toLocaleTimeString(), Date.toDateString() и Date.toLocaleDateString().

Чтобы вычислить относительное или прошедшее время, воспользуйтесь методом getTimer() из пакета flash.utils.

В следующем примере показаны различные применения конструктора Date(), присваивающего следующие переменные:
  • myDate1 вызывает конструктор Date() без параметров. При этом для myDate1 выбираются текущие дата и время (исходя из текущих системных даты и времени).
  • myDate2 вызывает конструктор Date(), для которого выбраны параметры year (2000), month (0 = январь) и day (1).
  • myDate3 вызывает конструктор Date(), для которого выбраны параметры year (65 = 1965), month (2 = март), day (6), hour (9), minute (30), second (15) и millisecond-+ (0).
  • myDate4 вызывает конструктор Date(), временное значение которого отражает количество миллисекунд до 0:00:00 1 января 1970 г. (среднее время по Гринвичу), поскольку это отрицательное значение.
package { import flash.display.Sprite; public class DateExample extends Sprite{ public function DateExample() { var myDate1:Date = new Date(); trace(myDate1); // [NOW] var myDate2:Date = new Date(2000, 0, 1); trace(myDate2); // Sat Jan 1 00:00:00 GMT-0800 2000 var myDate3:Date = new Date(65, 2, 6, 9, 30, 15, 0); trace(myDate3); // Sat Mar 6 09:30:15 GMT-0800 1965 var myDate4:Date = new Date(-14159025000); trace(myDate4); // Sun Jul 20 19:56:15 GMT-0700 1969 } } }
flash.utils.getTimer()Date Создает новый объект Date, который содержит заданную дату и время.yearOrTimevalueObjectЕсли указаны другие параметры, это число выражает год (например, 1965); в противном случае оно представляет собой временное значение. Если данное число относится к году, значения с 0 до 99 указывают на 1900-1999 гг.; в противном случае необходимо указывать все четыре цифры года. Если число представляет собой временное значение (без дополнительно указанных параметров), оно отражает количество миллисекунд до или после 0:00:00 1 января 1970 г. (среднее время по Гринвичу); отрицательные значения отражают время до 0:00:00 1 января 1970 г. (среднее время по Гринвичу), а положительное значение указывает на время после этой даты. monthNumberЦелое число от 0 (январь) до 11 (декабрь). dateNumber1Целое число от 1 до 31. hourNumber0Целое число от 0 (полночь) до 23 (11 часов вечера). minuteNumber0Целое число от 0 до 59. secondNumber0Целое число от 0 до 59. millisecondNumber0Целое число от 0 до 999 миллисекунд. Создает новый объект Date, который содержит заданную дату и время.

Конструктор Date() может иметь до 7 параметров (year, month, ..., millisecond), позволяющих указывать дату и время с точностью до миллисекунды. Дата, которую содержит только что созданный объект Date зависит от количества и типа данных переданных аргументов.

  • Если аргументы не указываются, объекту Date присваивается текущие дата и время.
  • Если передается один аргумент с типом данных Number, объекту Date присваивается временное значение, исходя из количества миллисекунд, прошедших с 0:00:000 1 января 1970 года (среднее время по Гринвичу) и указанных в этом единственном аргументе.
  • Если передается один аргумент с типом данных String, и в этой строке есть действительная дата, объект Date содержит временное значение, основанное на этой дате.
  • При передаче двух и большего числа аргументов объекту Date присваивается временное значение на основе переданных значений аргумента, которые относятся к году, месяцу, дате, часу, минуте, секунде и миллисекундам.

Если конструктору класса Date передается строка, дата может быть представлена в разных форматах, но должна включать, по крайней мере, месяц, дату и год. Например, Feb 1 2005 (1 февраля 2005 г.) – это действительное значение в отличие от Feb 2005 (февраль 2005 г.). В списке ниже приведены некоторые действительные форматы:

  • «День Месяц Дата Часы:Минуты:Секунды GMT Год» (например, значение «Tue Feb 1 00:00:00 GMT-0800 2005», совпадающее со значением toString())
  • «День Месяц Дата Год Часы:Минуты:Секунды AM/PM» (например, значение «Tue Feb 1 2005 12:00:00 AM», совпадающее со значением toLocaleString())
  • «День Месяц Дата Год» (например, значение «Tue Feb 1 2005», совпадающее со значением toDateString())
  • Месяц/День/Год (например, «02/01/2005»)
  • Месяц/Год (например, «02/2005»)
getMonth()getDate()getFullYear()
UTC Возвращает число миллисекунд от полуночи 1 января 1970 года по Гринвичу до момента, заданного параметрами.Количество миллисекунд, прошедших с 1 января 1970 г. до указанных даты и времени. NumberyearNumberЦелое четырехзначное число, указывающее на год (например, 2000). monthNumberЦелое число от 0 (январь) до 11 (декабрь). dateNumber1Целое число от 1 до 31. hourNumber0Целое число от 0 (полночь) до 23 (11 часов вечера). minuteNumber0Целое число от 0 до 59. secondNumber0Целое число от 0 до 59. millisecondNumber0Целое число от 0 до 999. Возвращает число миллисекунд от полуночи 1 января 1970 года по Гринвичу до момента, заданного параметрами. В этом методе используется всемирное скоординированное время, а в конструкторе Date – местное время.

Этот метод полезен, если требуется передать дату в формате всемирного скоординированного времени (UTC) конструктору класса Date. Поскольку конструктор класса данных Date поддерживает в качестве аргумента смещение в миллисекундах, можно воспользоваться методом Date.UTC(), чтобы преобразовать дату в формате UTC в соответствующее смещение, выраженное в миллисекундах, а затем отправить это смещение в качестве аргумента конструктору класса Date:

В следующем примере создается объект Date someBirthday с параметрами year (1974), month (10 = ноябрь), day (30), hour (1) и minute (20) по местному времени. Затем выполняется вызов UTC() в методе setTime(), который приводит к сбросу значений этих параметров и установке всемирного времени. var someBirthday:Date = new Date(1974, 10, 30, 15, 20); trace(someBirthday.toString()); someBirthday.setTime(Date.UTC(1974, 10, 30, 15, 20)); trace(someBirthday.toString());
getDate Возвращает день месяца по местному времени (целое число от 1 до 31), заданный объектом Date.День месяца (1 – 31), который представляет объект Date. Number Возвращает день месяца по местному времени (целое число от 1 до 31), заданный объектом Date. Местное время определяется операционной системой, в которой запущена среда выполнения Flash. В следующем примере создается новый объект Date someBirthday с параметрами year (1974), month (10 = ноябрь), day (30), hour (1) и minute (20). Затем вызывается метод getDate(), определяющий день месяца. package { import flash.display.Sprite; public class DateExample extends Sprite { public function DateExample() { var someBirthday:Date = new Date(1974, 10, 30, 1, 20); trace(someBirthday); // Sat Nov 30 01:20:00 GMT-0800 1974 trace(someBirthday.getDate()); // 30 } } } getMonth()getFullYear()getDay Возвращает день недели по местному времени (0 – воскресенье, 1 – понедельник, и т.д.), заданный объектом Date.Числовая версия дня недели (0 – 6), который представляет объект Date. Number Возвращает день недели по местному времени (0 — воскресенье, 1 — понедельник и т.д.), заданный объектом Date. Местное время определяется операционной системой, в которой запущена среда выполнения Flash. В следующем примере создается новый объект Array weekDayLabels с элементами [Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday] и новый объект Date someBirthday с параметрами year (1974), month (10 = ноябрь), day (30), hour (1) и minute (20). После этого дважды вызывается метод getDay(), который сначала показывает число месяца в виде цифры 6, а затем показывает день недели с помощью weekDayLabels. var weekDayLabels:Array = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"); var someBirthday:Date = new Date(1974, 10, 30, 1, 20); trace(someBirthday); // Sat Nov 30 01:20:00 GMT-0800 1974 trace(someBirthday.getDay()); // 6 trace(weekDayLabels[someBirthday.getDay()]); // Saturday getFullYear Возвращает из объекта Date полный год по местному времени (четырехзначное число, например 2000).Полный год, который представляет объект Date. Number Возвращает из объекта Date полный год по местному времени (четырехзначное число, например 2000). Местное время определяется операционной системой, в которой запущена среда выполнения Flash. В следующем примере создается новый объект Date someBirthday с параметрами year (1974), month (10 = ноябрь), day (30), hour (1) и minute (20). После этого вызывается метод getFullYear(), который извлекает четырехзначное обозначение года. var someBirthday:Date = new Date(1974, 10, 30, 1, 20); trace(someBirthday); // Sat Nov 30 01:20:00 GMT-0800 1974 trace(someBirthday.getFullYear()); // 1974 getHours Возвращает час (целое число от 0 до 23) дня, относящегося к объекту Date, по местному времени.Час (0 – 23) дня, представленного объектом Date. Number Возвращает час (целое число от 0 до 23) дня, относящегося к объекту Date, по местному времени. Местное время определяется операционной системой, в которой запущена среда выполнения Flash. В следующем примере создается новый объект Date someBirthday с параметрами year (1974), month (10 = ноябрь), day (30), hour (1) и minute (20). Затем вызываются методы getHours() и getMinutes(), которые извлекают часы и минуты в 24-часовом формате. В итоге создается строка localTime, которая присваивается результату вызова функции getUSClockTime(), которая, в свою очередь, снова вызывает методы getHours() и getMinutes(), указывающее время 03:05 PM. var someBirthday:Date = new Date(1974, 10, 30, 15, 5); trace(someBirthday); // Sat Nov 30 15:20:00 GMT-0800 1974 trace(someBirthday.getHours() + ":" + someBirthday.getMinutes()); // 15:5 var localTime:String = getUSClockTime(someBirthday.getHours(), someBirthday.getMinutes()); trace(localTime); // 03:05 PM function getUSClockTime(hrs:uint, mins:uint):String { var modifier:String = "PM"; var minLabel:String = doubleDigitFormat(mins); if(hrs > 12) { hrs = hrs-12; } else if(hrs == 0) { modifier = "AM"; hrs = 12; } else if(hrs < 12) { modifier = "AM"; } return (doubleDigitFormat(hrs) + ":" + minLabel + " " + modifier); } function doubleDigitFormat(num:uint):String { if(num < 10) { return ("0" + num); } return num; } getMilliseconds Возвращает из объекта Date число миллисекунд по местному времени (целое число от 0 до 999).Фрагмент объекта Date с миллисекундами. Number Возвращает из объекта Date число миллисекунд по местному времени (целое число от 0 до 999). Местное время определяется операционной системой, в которой запущена среда выполнения Flash. В следующем примере создается новый объект Date now без параметров. Затем вызывается метод getMilliseconds(), который извлекает из объекта Date now число миллисекунд на момент создания var now:Date = new Date(); trace(now.getMilliseconds()); getMinutes Возвращает из объекта Date число минут по местному времени (целое число от 0 до 59).Фрагмент объекта Date с минутами. Number Возвращает из объекта Date число минут по местному времени (целое число от 0 до 59). Местное время определяется операционной системой, в которой запущена среда выполнения Flash. В следующем примере создается новый объект Date now без параметров. Затем вызывается метод getMinutes(), который извлекает из объекта Date now число миллисекунд на момент создания var now:Date = new Date(); trace(now); trace(now.getMinutes()); getMonth Возвращает из объекта Date месяц по местному времени (0 – январь, 1 – февраль и т.д.).Фрагмент объекта Date с месяцем (0 - 11). Number Возвращает из объекта Date месяц по местному времени (0 — январь, 1 — февраль и т.д.). Местное время определяется операционной системой, в которой запущена среда выполнения Flash. В следующем примере создается новый объект Array monthLabels с элементами от January до December и новый объект Date now без параметров. Затем дважды вызывается метод getMonth(), который сначала возвращает номер месяца, а затем указывает месяц создания объекта Date now. var monthLabels:Array = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); var now:Date = new Date(); trace(now.getMonth()); trace(monthLabels[now.getMonth()]); getSeconds Возвращает из объекта Date число секунд по местному времени (целое число от 0 до 59).Фрагмент объекта Date с секундами (от 0 до 59). Number Возвращает из объекта Date число секунд по местному времени (целое число от 0 до 59). Местное время определяется операционной системой, в которой запущена среда выполнения Flash. В следующем примере создается новый объект Date now без параметров. Затем вызывается метод getSeconds(), который извлекает из объекта Date now число миллисекунд на момент создания. var now:Date = new Date(); trace(now.getSeconds()); getTime Возвращает для объекта Date число миллисекунд с полуночи 1 января 1970 года по всемирному скоординированному времени.Количество миллисекунд с 1 января 1970 г., выражаемых объектом Date. Number Возвращает для объекта Date число миллисекунд с полуночи 1 января 1970 года по всемирному скоординированному времени. Воспользуйтесь этим методом, чтобы представить определенный момент во времени при сравнении двух и более объектов Date. В следующем примере создается новый объект Date mlk с параметрами year (1929), month (0 = январь) и day (15). Затем вызывается метод getTime(), который извлекает количество миллисекунд, прошедших с 1 января 1970 г. Это отрицательное число, поскольку выбран 1929 г. var mlk:Date = new Date(1929, 0, 15); trace(mlk); // Tue Jan 15 00:00:00 GMT-0800 1929 trace(mlk.getTime()); // -1292601600000 В следующем примере создается новый объект Date now без параметров, а затем используются следующие методы класса DateMath (созданные ниже), добавляющие время в исходный объект Date now, прошедшее с момента его создания:
  • addSeconds(): добавляет 30 секунд к объекту now.
  • addMinutes(): добавляет 30 минут к объекту now.
  • addHours(): добавляет 6 часов к объекту Date now.
  • addHours(): добавляет 30 дней к объекту Date now.
  • addWeeks(): добавляет 4 недели к объекту now.
var now:Date = new Date(); trace(now); trace(DateMath.addSeconds(now, 30)); trace(DateMath.addMinutes(now, 30)); trace(DateMath.addHours(now, 6)); trace(DateMath.addDays(now, 30)); trace(DateMath.addWeeks(now, 4)); class DateMath { public static function addWeeks(date:Date, weeks:Number):Date { return addDays(date, weeks*7); } public static function addDays(date:Date, days:Number):Date { return addHours(date, days*24); } public static function addHours(date:Date, hrs:Number):Date { return addMinutes(date, hrs*60); } public static function addMinutes(date:Date, mins:Number):Date { return addSeconds(date, mins*60); } public static function addSeconds(date:Date, secs:Number):Date { var mSecs:Number = secs * 1000; var sum:Number = mSecs + date.getTime(); return new Date(sum); } } Примечание. Не забывайте применять метод getTime при выполнении арифметических расчетов с объектом Date, поскольку он продолжает выполняться в високосные годы и не требует наличия набора логических операций с условием «если, то», как в следующем псевдокоде:
 function addMonths(num:Number):void {
     currentMonth = currentMonth + num;
     if(currentMonth > 12) {
         currentYear++;
         currentMonth = currentMonth - 12;
     }
 }
 
getTimezoneOffset Возвращает разницу в минутах между местным временем компьютера и всемирным скоординированным временем (UTC).Число минут, которые необходимо добавить к значению местного времени компьютера, чтобы оно равнялось UTC. Если время компьютера опережает UTC, возвращается отрицательное значение. Number Возвращает разницу в минутах между местным временем компьютера и всемирным скоординированным временем (UTC). В следующем примере создается новый объект Date now без параметров. Затем вызывается метод getTimezoneOffset(), который извлекает разницу (в минутах) между моментом создания объекта now и всемирным временем. Затем смещение временного пояса преобразуется в часы путем деления результата на 60. var date:Date = new Date(); trace(date.getTimezoneOffset() / 60); getUTCDate Возвращает из объекта Date день месяца (целое число от 1 до 31) по всемирному скоординированному времени (UTC).День месяца в формате UTC (1 – 31), который представляет объект Date. Number Возвращает из объекта Date день месяца (целое число от 1 до 31) по всемирному скоординированному времени (UTC). В следующем примере создается новый объект Date someBirthday с параметрами year (1974), month (10 = ноябрь), day (30), hour (1) и minute (20). Затем вызывается метод getUTCDate(), который извлекает число месяца в формате UTC. var someBirthday:Date = new Date(1974, 10, 30, 1, 20); trace(someBirthday); // Sat Nov 30 01:20:00 GMT-0800 1974 trace(someBirthday.getUTCDate()); // 30 getDate()getUTCDay Возвращает из объекта Date день недели (0 – воскресенье, 1 – понедельник и т. д.) по всемирному скоординированному времени (UTC).День недели в формате UTC (0 – 6), который представляет объект Date. Number Возвращает из объекта Date день недели (0 – воскресенье, 1 – понедельник и т. д.) по всемирному скоординированному времени (UTC). В следующем примере создается новый объект Array weekDayLabels с элементами [Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday] и новый объект Date someBirthday с параметрами year (1974), month (10 = ноябрь), day (30), hour (1) и minute (20). После этого дважды вызывается метод getUTCDay(), который сначала показывает число месяца в виде цифры 6, а затем показывает день недели с помощью weekDayLabels в формате UTC. var weekDayLabels:Array = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"); var someBirthday:Date = new Date(1974, 10, 30, 1, 20); trace(someBirthday); // Sat Nov 30 01:20:00 GMT-0800 1974 trace(someBirthday.getUTCDay()); // 6 trace(weekDayLabels[someBirthday.getUTCDay()]); // Saturday getDay()getUTCFullYear Возвращает из объекта Date четырехзначный год по всемирному скоординированному времени (UTC).Четырехзначный год по всемирному скоординированному времени, который представляется объектом Date. Number Возвращает из объекта Date четырехзначный год по всемирному скоординированному времени (UTC). В следующем примере создается новый объект Date someBirthday с параметрами year (1974), month (10 = ноябрь), day (30), hour (1) и minute (20). Затем вызывается метод getUTCFullYear(), который извлекает четырехзначный год в формате UTC. var someBirthday:Date = new Date(1974, 10, 30, 1, 20); trace(someBirthday); // Sat Nov 30 01:20:00 GMT-0800 1974 trace(someBirthday.getUTCFullYear()); // 1974 getFullYear()getUTCHours Возвращает из объекта Date час дня (целое число от 0 до 23) по всемирному скоординированному времени (UTC).День недели в формате UTC (от 0 до 23), который представляет объект Date. Number Возвращает из объекта Date час дня (целое число от 0 до 23) по всемирному скоординированному времени (UTC). В следующем примере создается новый объект Date someBirthday с параметрами year (1974), month (10 = ноябрь), day (30), hour (1) и minute (20). Затем вызываются методы getHours() и getMinutes(), которые извлекают часы и минуты в 24-часовом формате. В итоге создается строка localTime, которая присваивается результату вызова функции getUSClockTime(), которая, в свою очередь, снова вызывает методы getHours() и getMinutes(), указывающее время 03:05 PM. Последней создается переменная String utcTime. Метод создания аналогичен методу создания localTime, и в данном случае получается одинаковый результат. var someBirthday:Date = new Date(1974, 10, 30, 15, 5); trace(someBirthday); // Sat Nov 30 15:20:00 GMT-0800 1974 trace(someBirthday.getHours() + ":" + someBirthday.getMinutes()); // 15:5 var localTime:String = getUSClockTime(someBirthday.getHours(), someBirthday.getMinutes()); trace(localTime); // 03:05 PM var utcTime:String = getUSClockTime(someBirthday.getUTCHours(), someBirthday.getUTCMinutes()); trace(utcTime); // 11:05 PM function getUSClockTime(hrs:uint, mins:uint):String { var modifier:String = "PM"; var minLabel:String = doubleDigitFormat(mins); if(hrs > 12) { hrs = hrs-12; } else if(hrs == 0) { modifier = "AM"; hrs = 12; } else if(hrs < 12) { modifier = "AM"; } return (doubleDigitFormat(hrs) + ":" + minLabel + " " + modifier); } function doubleDigitFormat(num:uint):String { if(num < 10) { return ("0" + num); } return num; } getHours()getUTCMilliseconds Возвращает из объекта Date число миллисекунд (целое число от 0 до 999) по всемирному скоординированному времени (UTC).Фрагмент объекта Date с миллисекундами (UTC). Number Возвращает из объекта Date число миллисекунд (целое число от 0 до 999) по всемирному скоординированному времени (UTC). В следующем примере создается новый объект Date now без параметров. Затем вызывается метод getUTCMilliseconds(), который извлекает из объекта Date now число миллисекунд на момент создания var now:Date = new Date(); trace(now.getUTCMilliseconds()); getUTCMinutes Возвращает из объекта Date число минут (целое число от 0 до 59) по всемирному скоординированному времени (UTC).Фрагмент объекта Date с минутами (UTC). Number Возвращает из объекта Date число минут (целое число от 0 до 59) по всемирному скоординированному времени (UTC). В следующем примере создается новый объект Date now без параметров. Затем вызывается метод getUTCMinutes(), который извлекает из объекта Date now число минут на момент создания var now:Date = new Date(); trace(now.getUTCMinutes()); getUTCMonth Возвращает из объекта Date месяц (от 0 [январь] до 11 [декабрь]) по всемирному скоординированному времени (UTC).Фрагмент объекта Date с месяцем (UTC). Number Возвращает из объекта Date месяц (от 0 [январь] до 11 [декабрь]) по всемирному скоординированному времени (UTC). В следующем примере создается новый объект Array monthLabels с элементами от January до December и новый объект Date now без параметров. Затем дважды вызывается метод getUTCMonth(), который сначала возвращает номер месяца, а затем указывает месяц создания объекта Date now. var monthLabels:Array = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); var now:Date = new Date(); trace(now.getMonth()); trace(now.getUTCMonth()); trace(monthLabels[now.getUTCMonth()]); getMonth()getUTCSeconds Возвращает из объекта Date число секунд (целое число от 0 до 59) по всемирному скоординированному времени (UTC).Фрагмент объекта Date с секундами (UTC). Number Возвращает из объекта Date число секунд (целое число от 0 до 59) по всемирному скоординированному времени (UTC). В следующем примере создается новый объект Date now без параметров. Затем вызывается метод getUTCSeconds(), который извлекает из объекта Date now число минут на момент создания var now:Date = new Date(); trace(now.getUTCSeconds()); parse Преобразует строку, представляющую дату, в число, равное количеству миллисекунд с полуночи 1 января 1970 года по Гринвичу (UTC).Число, выражающее количество миллисекунд, прошедшее с 1 января 1970 года по всемирному скоординированному времени (UTC). NumberdateStringСтрока, представляющая дату, соответствующую выходному формату Date.toString(). Формат выводимой даты Date.toString() выглядит следующим образом:
     Day Mon DD HH:MM:SS TZD YYYY
     

Например:

     Wed Apr 12 15:30:17 GMT-0700 2006
     

Идентификатор временного пояса (TZD) всегда представлен в формате GMT-ЧЧMM или UTC-ЧЧMM, указывающем на сдвиг часов и минут, относящийся к среднему времени по Гринвичу (GMT), которое сейчас называют также всемирным скоординированным временем (UTC). Месяц и день разделяются в году косой чертой (/) или пробелом, но никогда дефисом (-). В число других поддерживаемых форматов входят следующие (можно включить частичные представления этих форматов, то есть месяц, день и год).

     MM/DD/YYYY HH:MM:SS TZD
     HH:MM:SS TZD Day Mon/DD/YYYY 
     Mon DD YYYY HH:MM:SS TZD
     Day Mon DD HH:MM:SS TZD YYYY
     Day DD Mon HH:MM:SS TZD YYYY
     Mon/DD/YYYY HH:MM:SS TZD
     YYYY/MM/DD HH:MM:SS TZD
     
Преобразует строку, представляющую дату, в число, равное количеству миллисекунд с полуночи 1 января 1970 года по Гринвичу (UTC). В следующем примере строка с данными присваивается параметру dateParsed, который соответствует 30 ноября 1974 г. Затем вызывается метод Date.parse(), преобразующий эту дату в число миллисекунд, прошедших с 1 января 1970 г. var dateParsed:String = "Sat Nov 30 1974"; var milliseconds:Number = Date.parse(dateParsed); trace(milliseconds); // 155030400000
Date.toString()
setDate Задает день месяца по местному времени и возвращает новое время в миллисекундах.Новое время в миллисекундах. NumberdayNumberЦелое число от 1 до 31. Задает день месяца по местному времени и возвращает новое время в миллисекундах. Местное время определяется операционной системой, в которой запущена среда выполнения Flash. В следующем примере создается новый объект Date someBirthday с параметрами year (1974), month (10 = ноябрь), day (30), hour (1) и minute (20). Затем вызывается метод getDate(), определяющий день месяца. Вызывается метод setDate() с параметром day, которому присваивается значение 20, а затем снова выполняется вызов метода getDate(), определяющего недавно выбранное число месяца. var someBirthday:Date = new Date(1974, 10, 30, 1, 20); trace(someBirthday); // Sat Nov 30 01:20:00 GMT-0800 1974 trace(someBirthday.getDate()); // 30 someBirthday.setDate(20); trace(someBirthday.getDate()); // 20 setFullYear Задает год по местному времени и возвращает новое время в миллисекундах.Новое время в миллисекундах. NumberyearNumberЧетырехзначное число, определяющее год. Двухзначные числа не представляют четырехзначные; например, 99 соответствует не 1999, а 99 году. monthNumberЦелое число от 0 (январь) до 11 (декабрь). dayNumberЧисло от 1 до 31. Задает год по местному времени и возвращает новое время в миллисекундах. Если указаны параметры month и day, им присваивается местное время. Местное время определяется операционной системой, в которой запущена среда выполнения Flash.

Вызов этого метода не приводит к изменению других полей объекта Date, но методы Date.getUTCDay() и Date.getDay() могут указывать новое значение, если день недели изменяется в результате вызова этого метода.

В следующем примере создается новый объект Date someBirthday с параметрами year (1974), month (10 = ноябрь), day (30), hour (1) и minute (20). После этого вызывается метод getFullYear(), который извлекает четырехзначное обозначение года. Затем вызывается метод setFullYear() с параметром year, которому присваивается значение 2000, а затем снова выполняется вызов метода getFullYear(), определяющего недавно выбранный год. var someBirthday:Date = new Date(1974, 10, 30, 1, 20); trace(someBirthday); // Sat Nov 30 01:20:00 GMT-0800 1974 trace(someBirthday.getFullYear()); // 1974 someBirthday.setFullYear(2000); trace(someBirthday.getFullYear()); // 2000
getUTCDay()getDay()
setHours Задает час по местному времени и возвращает новое время в миллисекундах.Новое время в миллисекундах. NumberhourNumberЦелое число от 0 (полночь) до 23 (11 часов вечера). minuteNumberЦелое число от 0 до 59. secondNumberЦелое число от 0 до 59. millisecondNumberЦелое число от 0 до 999. Задает час по местному времени и возвращает новое время в миллисекундах. Местное время определяется операционной системой, в которой запущена среда выполнения Flash. В следующем примере создается новый объект Date someBirthday с параметрами year (1974), month (10 = ноябрь), day (30), hour (1) и minute (20). Затем вызываются методы getHours() и getMinutes(), определяющие часы и минуты. После этого выполняется вызов метода setHours() с параметром hour, которому присваивается значение 12, а затем методы getHours() и getMinutes() вызываются снова, определяя только что установленное время в часах и минутах. var someBirthday:Date = new Date(1974, 10, 30, 15, 20); trace(someBirthday); // Sat Nov 30 15:20:00 GMT-0800 1974 trace(someBirthday.getHours() + ":" + someBirthday.getMinutes()); // 15:20 someBirthday.setHours(12); trace(someBirthday.getHours() + ":" + someBirthday.getMinutes()); // 12:20 setMilliseconds Задает количество миллисекунд по местному времени и возвращает новое время в миллисекундах.Новое время в миллисекундах. NumbermillisecondNumberЦелое число от 0 до 999. Задает количество миллисекунд по местному времени и возвращает новое время в миллисекундах. Местное время определяется операционной системой, в которой запущена среда выполнения Flash. В следующем примере создается новый объект Date now без параметров. Затем вызывается метод getMilliseconds(), который извлекает значение миллисекунд на момент создания объекта now. Затем снова вызывается новый объект Date before. При этом выполняется дополнительный вызов метода setMilliseconds(), где параметру millisecond присвоено значение 4 и метода getMilliseconds(), извлекающего недавно установленное значение в миллисекундах. var now:Date = new Date(); trace(now); trace(now.getMilliseconds()); var before:Date = new Date(now.setMilliseconds(4)); trace(before); trace(before.getMilliseconds()); setMinutes Задает количество минут по местному времени и возвращает новое время в миллисекундах.Новое время в миллисекундах. NumberminuteNumberЦелое число от 0 до 59. secondNumberЦелое число от 0 до 59. millisecondNumberЦелое число от 0 до 999. Задает количество минут по местному времени и возвращает новое время в миллисекундах. Местное время определяется операционной системой, в которой запущена среда выполнения Flash. В следующем примере создается новый объект Date now без параметров. Затем вызывается метод getMinutes(), который извлекает значение миллисекунд на момент создания объекта now. Затем снова вызывается новый объект Date before. При этом выполняется дополнительный вызов метода setMinutes(), где параметру minute присвоено значение 0 и метода getMinutes(), извлекающего недавно установленное значение в минутах. var now:Date = new Date(); trace(now); trace(now.getMinutes()); var before:Date = new Date(now.setMinutes(0)); trace(before); trace(before.getMinutes()); setMonth Задает месяц и (при необходимости) день месяца по местному времени и возвращает новое время в миллисекундах.Новое время в миллисекундах. NumbermonthNumberЦелое число от 0 (январь) до 11 (декабрь). dayNumberЦелое число от 1 до 31. Задает месяц и (при необходимости) день месяца по местному времени и возвращает новое время в миллисекундах. Местное время определяется операционной системой, в которой запущена среда выполнения Flash. В следующем примере создается новый объект Array monthLabels с элементами от January до December и новый объект месяца now без параметров. Затем вызывается метод getMonth(), который извлекает значение месяца на момент создания объекта now. Затем вызывается метод setMonth() с параметром month, которому присваивается значение 0, а затем снова выполняется вызов метода getMonth(), определяющего недавно выбранный месяц. var monthLabels:Array = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); var now:Date = new Date(); trace(now.getMonth()); trace(monthLabels[now.getMonth()]); now.setMonth(0); trace(now.getMonth()); // 0 trace(monthLabels[now.getMonth()]); // January setSeconds Задает количество секунд по местному времени и возвращает новое время в миллисекундах.Новое время в миллисекундах. NumbersecondNumberЦелое число от 0 до 59. millisecondNumberЦелое число от 0 до 999. Задает количество секунд по местному времени и возвращает новое время в миллисекундах. Местное время определяется операционной системой, в которой запущена среда выполнения Flash. В следующем примере создается новый объект Date now без параметров. Затем вызывается метод getseconds(), который извлекает значение секунд на момент создания объекта now. Затем вызывается метод setSeconds(), где параметр second принимает значения 0, а после этого снова вызывается метод getSeconds(), определяющий недавно установленное время в секундах. var now:Date = new Date(); trace(now.getSeconds()); now.setSeconds(0); trace(now.getSeconds()); // 0 setTime Задает дату в миллисекундах с полуночи 1 января 1970 года и возвращает новое время в миллисекундах.Новое время в миллисекундах. NumbermillisecondNumberЦелое число, для которого 0 означает полночь 1 января по универсальному времени (UTC). Задает дату в миллисекундах с полуночи 1 января 1970 года и возвращает новое время в миллисекундах. В следующем примере создается новый объект Date now без параметров. Затем вызывается метод setTime(), где параметру millisecond присвоено значение -1292601600000, который устанавливает время Tue Jan 15 00:00:00 GMT-0800 1929. var now:Date = new Date(); trace(now); now.setTime(-1292601600000); trace(now); // Tue Jan 15 00:00:00 GMT-0800 1929 setUTCDate Задает день месяца по Гринвичу (UTC) и возвращает новое время в миллисекундах.Новое время в миллисекундах. NumberdayNumberЦелое число от 1 до 31. Задает день месяца по Гринвичу (UTC) и возвращает новое время в миллисекундах. Вызов этого метода не приводит к изменению других полей объекта Date, но методы Date.getUTCDay() и Date.getDay() могут указывать новое значение, если день недели изменяется в результате вызова этого метода. В следующем примере создается новый объект Date someBirthday с параметрами year (1974), month (10 = ноябрь), day (30), hour (1) и minute (20). Вызывается метод getUTCDate(), правильно возвращающий день месяца. Затем вызывается метод setUTCDate(), где параметру day присвоено значение 1, а инструкция trace() подтверждает правильность установки даты. var someBirthday:Date = new Date(1974, 10, 30, 1, 20); trace(someBirthday); // Sat Nov 30 01:20:00 GMT-0800 1974 trace(someBirthday.getUTCDate()); // 30 someBirthday.setUTCDate(1); trace(someBirthday); // Fri Nov 1 01:20:00 GMT-0800 1974 getUTCDay()getDay()setUTCFullYear Задает год по Гринвичу (UTC) и возвращает новое время в миллисекундах.Целое число. NumberyearNumberЦелое число, которое представляет собой год в полном четырехзначном формате (например, 2000). monthNumberЦелое число от 0 (январь) до 11 (декабрь). dayNumberЦелое число от 1 до 31. Задает год по Гринвичу (UTC) и возвращает новое время в миллисекундах.

При желании этот метод может установить также месяц и день месяца. Вызов этого метода не приводит к изменению других полей, но методы Date.getUTCDay() и Date.getDay() могут указывать новое значение, если день недели изменяется в результате вызова этого метода.

В следующем примере создается новый объект Date someBirthday с параметрами year (1974), month (10 = ноябрь), day (30), hour (1) и minute (20). Вызывается метод getUTCFullYear(), который правильно возвращает четырехзначный год. Затем вызывается метод setUTCFullYear(), где параметру year присвоено значение 1975, а инструкция trace() подтверждает правильность установки года. var someBirthday:Date = new Date(1974, 10, 30, 1, 20); trace(someBirthday); // Sat Nov 30 01:20:00 GMT-0800 1974 trace(someBirthday.getUTCFullYear()); // 1974 someBirthday.setUTCFullYear(1975); trace(someBirthday); // Thu Nov 30 01:20:00 GMT-0800 1975
getUTCDay()getDay()
setUTCHours Задает час по Гринвичу (UTC) и возвращает новое время в миллисекундах.Новое время в миллисекундах. NumberhourNumberЦелое число от 0 (полночь) до 23 (11 часов вечера). minuteNumberЦелое число от 0 до 59. secondNumberЦелое число от 0 до 59. millisecondNumberЦелое число от 0 до 999. Задает час по Гринвичу (UTC) и возвращает новое время в миллисекундах. При желании можно также указать минуты, секунды и миллисекунды. В следующем примере создается новый объект Date someBirthday с параметрами year (1974), month (10 = ноябрь), day (30), hour (1) и minute (20). Затем вызываются методы getHours(), getMinutes(), getUTCHours и getUTCMinutes, определяющие часы и минуты. После этого вызывается метод setUTCHours() с параметром hour, для которого выбрано значение 12. И, наконец, повторно вызываются методы getHours(), getMinutes(), getUTCHours() и getUTCMinutes() и правильно показывается обновленное время в часах. var someBirthday:Date = new Date(1974, 10, 30, 15, 20); trace(someBirthday); // Sat Nov 30 15:20:00 GMT-0800 1974 trace(someBirthday.getHours() + ":" + someBirthday.getMinutes()); // 15:20 trace(someBirthday.getUTCHours() + ":" + someBirthday.getUTCMinutes()); // 23:20 someBirthday.setUTCHours(12); trace(someBirthday.getHours() + ":" + someBirthday.getMinutes()); // 4:20 trace(someBirthday.getUTCHours() + ":" + someBirthday.getUTCMinutes()); // 12:20 setUTCMilliseconds Задает количество миллисекунд по Гринвичу (UTC) и возвращает новое время в миллисекундах.Новое время в миллисекундах. NumbermillisecondNumberЦелое число от 0 до 999. Задает количество миллисекунд по Гринвичу (UTC) и возвращает новое время в миллисекундах. В следующем примере создается новый объект Date now без параметров. Затем вызывается метод getUTCMilliseconds(), который извлекает значение миллисекунд (UTC) на момент создания объекта now. Затем снова вызывается новый объект Date before. При этом выполняется дополнительный вызов метода setUTCMilliseconds(), где параметру millisecond присвоено значение 4 и метода getUTCMilliseconds(), извлекающего недавно установленное значение в миллисекундах. var now:Date = new Date(); trace(now); trace(now.getUTCMilliseconds()); var before:Date = new Date(now.setUTCMilliseconds(4)); trace(before); trace(before.getUTCMilliseconds()); setUTCMinutes Задает количество минут по Гринвичу (UTC) и возвращает новое время в миллисекундах.Новое время в миллисекундах. NumberminuteNumberЦелое число от 0 до 59. secondNumberЦелое число от 0 до 59. millisecondNumberЦелое число от 0 до 999. Задает количество минут по Гринвичу (UTC) и возвращает новое время в миллисекундах. При желании можно указать секунды и миллисекунды. В следующем примере создается новый объект Date now без параметров. Затем вызывается метод getUTCMinutes(), который извлекает значение минут (UTC) на момент создания объекта now. Затем снова вызывается новый объект Date before. При этом выполняется дополнительный вызов метода setUTCMinutes(), где параметру minute присвоено значение 0 и метода getUTCMinutes(), извлекающего недавно установленное значение в минутах. var now:Date = new Date(); trace(now); trace(now.getUTCMinutes()); var before:Date = new Date(now.setUTCMinutes(0)); trace(before); trace(before.getUTCMinutes()); setUTCMonth Задает месяц и (при необходимости) день месяца по Гринвичу (UTC) и возвращает новое время в миллисекундах.Новое время в миллисекундах. NumbermonthNumberЦелое число от 0 (январь) до 11 (декабрь). dayNumberЦелое число от 1 до 31. Задает месяц и (при необходимости) день месяца по Гринвичу (UTC) и возвращает новое время в миллисекундах. Вызов этого метода не приводит к изменению других полей, но методы Date.getUTCDay() и Date.getDay() могут указывать новое значение, если день недели изменяется в результате вызова этого метода. В следующем примере создается новый объект Array UTCMonthLabels с элементами от January до December и новый объект UTCMonth now без параметров. Затем вызывается метод getUTCMonth(), который извлекает значение месяца (UTC) на момент создания объекта now. После этого вызывается метод setUTCMonth() с параметром month, которому присваивается значение 0, а затем снова выполняется вызов метода getUTCMonth(), определяющего недавно выбранный месяц. var UTCMonthLabels:Array = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); var now:Date = new Date(); trace(now.getUTCMonth()); trace(UTCMonthLabels[now.getUTCMonth()]); now.setUTCUTCMonth(0); trace(now.getUTCMonth()); // 0 trace(UTCMonthLabels[now.getUTCMonth()]); // January getDay()setUTCSeconds Задает количество секунд и (при необходимости) миллисекунд по Гринвичу (UTC) и возвращает новое время в миллисекундах.Новое время в миллисекундах. NumbersecondNumberЦелое число от 0 до 59. millisecondNumberЦелое число от 0 до 999. Задает количество секунд и (при необходимости) миллисекунд по Гринвичу (UTC) и возвращает новое время в миллисекундах. В следующем примере создается новый объект Date now без параметров. Затем вызывается метод getUTCSeconds(), который извлекает значение секунд на момент создания объекта now. После этого вызывается метод setUTCSeconds(), где параметр second принимает значение 0, а потом снова вызывается метод getUTCSeconds(), определяющий недавно установленное время в секундах. var now:Date = new Date(); trace(now.getUTCSeconds()); now.setUTCSeconds(0); trace(now.getUTCSeconds()); // 0 toDateString Возвращает строковое представление дня и даты без времени или часового пояса.Строковое представление дня и даты. String Возвращает строковое представление дня и даты без времени или часового пояса. Сравните это с указанными ниже методами.
  • Date.toTimeString(), который возвращает только время и часовой пояс.
  • Date.toString(), который возвращает не только день и дату, но также время и часовой пояс.
В следующем примере создается новый объект Date now без параметров, а затем вызываются следующие методы в операторе trace().
  • toString: показывает все параметры now на момент создания объекта now.
  • toDateString(): показывает значения параметров day, month и year на момент создания объекта now.
var now:Date = new Date(); trace(now); trace(now.toDateString());
toString()
toLocaleDateString Возвращает строковое представление дня и даты без времени или часового пояса.Представление дня и даты типа String. String Возвращает строковое представление дня и даты без времени или часового пояса. Этот метод возвращает то же значение, что и Date.toDateString. Сравните это с указанными ниже методами.
  • Date.toTimeString(), который возвращает только время и часовой пояс.
  • Date.toString(), который возвращает не только день и дату, но также время и часовой пояс.
toDateString()toTimeString()toString()
toLocaleString Возвращает строковое представление дня, даты и времени по местному времени.Строковое представление объекта Date в местном часовом поясе. String Возвращает строковое представление дня, даты и времени по местному времени. Сравните это с методом Date.toString(), возвращающим ту же информацию (а также часовой пояс), относящуюся к году, указанному в конце строки. toLocaleTimeString Возвращает строковое представление времени без дня, даты, года или часового пояса.Строковое представление времени и часового пояса. String Возвращает строковое представление времени без дня, даты, года или часового пояса. Сравните это с методом Date.toTimeString(), который возвращает время и часовой пояс. toTimeString()toString Возвращает строковое представление дня, даты, времени и часового пояса.Строковое представление объекта Date. String Возвращает строковое представление дня, даты, времени и часового пояса. Формат выводимой даты:
     Day Mon Date HH:MM:SS TZD YYYY
     

Например:

     Wed Apr 12 15:30:17 GMT-0700 2006
     
В следующем примере создается новый объект Date now без параметров, а затем вызывается метод toString в инструкции trace(), который показывает параметры объекта now на момент создания now. var now:Date = new Date(); trace(now);
toTimeString Возвращает строковое представление времени и часового пояса без дня и даты.Строковое представление времени и часового пояса. String Возвращает строковое представление времени и часового пояса без дня и даты. Сравните это с методом Date.toDateString(), который возвращает только день и дату. toDateString()toUTCString Возвращает строковое представление дня, даты и времени по Гринвичу (UTC).Строковое представление объекта Date по всемирному скоординированному времени. String Возвращает строковое представление дня, даты и времени по Гринвичу (UTC). Например, дата 1 февраля 2005 г. выглядит как Tue Feb 1 00:00:00 2005 UTC. toString()valueOf Возвращает для объекта Date число миллисекунд с полуночи 1 января 1970 года по всемирному скоординированному времени.Количество миллисекунд с 1 января 1970 г., выражаемое объектом Date. Number Возвращает для объекта Date число миллисекунд с полуночи 1 января 1970 года по всемирному скоординированному времени. В следующем примере создается новый объект Date now без параметров. Затем вызывается метод getTime(), который определяет количество миллисекунд между временем создания now и полуночью 1 января 1970 г. После этого вызывается метод valueOf(), определяющий то же самое. var now:Date = new Date(); trace(now.getTime()); trace(now.valueOf()); dateUTC День месяца (целое число от 1 до 31) по всемирному скоординированному времени (UTC) из объекта Date.Number День месяца (целое число от 1 до 31) по всемирному скоординированному времени (UTC) из объекта Date. getUTCDate()setUTCDate()date День месяца по местному времени (целое число от 1 до 31), заданный объектом Date.Number День месяца по местному времени (целое число от 1 до 31), заданный объектом Date. Местное время определяется операционной системой, в которой запущена среда выполнения Flash. getDate()setDate()dayUTC День недели (0 – воскресенье, 1 – понедельник и т. д.) по всемирному скоординированному времени (UTC) из объекта Date.Number День недели (0 – воскресенье, 1 – понедельник и т. д.) по всемирному скоординированному времени (UTC) из объекта Date. getUTCDay()day День недели по местному времени (0 – воскресенье, 1 – понедельник и т. д.), заданный объектом Date.Number День недели по местному времени (0 — воскресенье, 1 — понедельник и т. д.), заданный объектом Date. Местное время определяется операционной системой, в которой запущена среда выполнения Flash. getDay()fullYearUTC Четырехзначный год по всемирному скоординированному времени (UTC) из объекта Date.Number Четырехзначный год по всемирному скоординированному времени (UTC) из объекта Date. getUTCFullYear()setUTCFullYear()fullYear Полный год (четырехзначное число, например 2000) объекта Date по местному времени.Number Полный год (четырехзначное число, например 2000) объекта Date по местному времени. Местное время определяется операционной системой, в которой запущена среда выполнения Flash. getFullYear()setFullYear()hoursUTC Час дня (целое число от 0 до 23) по всемирному скоординированному времени (UTC) из объекта Date.Number Час дня (целое число от 0 до 23) по всемирному скоординированному времени (UTC) из объекта Date. getUTCHours()setUTCHours()hours Час дня по местному времени (целое число от 0 до 23) из объекта Date.Number Час дня по местному времени (целое число от 0 до 23) из объекта Date. Местное время определяется операционной системой, в которой запущена среда выполнения Flash. getHours()setHours()millisecondsUTC Число миллисекунд (целое число от 0 до 999) по всемирному скоординированному времени (UTC) из объекта Date.Number Число миллисекунд (целое число от 0 до 999) по всемирному скоординированному времени (UTC) из объекта Date. getUTCMilliseconds()setUTCMilliseconds()milliseconds Число миллисекунд по местному времени (целое число от 0 до 999) из объекта Date.Number Число миллисекунд по местному времени (целое число от 0 до 999) из объекта Date. Местное время определяется операционной системой, в которой запущена среда выполнения Flash. getMilliseconds()setMilliseconds()minutesUTC Число минут (целое число от 0 до 59) по всемирному скоординированному времени (UTC) из объекта Date.Number Число минут (целое число от 0 до 59) по всемирному скоординированному времени (UTC) из объекта Date. getUTCMinutes()setUTCMinutes()minutes Число минут по местному времени (целое число от 0 до 59) из объекта Date.Number Число минут по местному времени (целое число от 0 до 59) из объекта Date. Местное время определяется операционной системой, в которой запущена среда выполнения Flash. getMinutes()setMinutes()monthUTC Месяц (от 0 [январь] до 11 [декабрь]) по всемирному скоординированному времени (UTC) из объекта Date.Number Месяц (от 0 [январь] до 11 [декабрь]) по всемирному скоординированному времени (UTC) из объекта Date. getUTCMonth()setUTCMonth()month Месяц (0 – январь, 1 – февраль и т. д.) объекта Date по местному времени.Number Месяц (0 — январь, 1 — февраль и т. д.) объекта Date по местному времени. Местное время определяется операционной системой, в которой запущена среда выполнения Flash. getMonth()setMonth()secondsUTC Число секунд (целое число от 0 до 59) по всемирному скоординированному времени (UTC) из объекта Date.Number Число секунд (целое число от 0 до 59) по всемирному скоординированному времени (UTC) из объекта Date. getUTCSeconds()setUTCSeconds()seconds Число секунд по местному времени (целое число от 0 до 59) из объекта Date.Number Число секунд по местному времени (целое число от 0 до 59) из объекта Date. Местное время определяется операционной системой, в которой запущена среда выполнения Flash. getSeconds()setSeconds()time Число миллисекунд с полуночи 1 января 1970 года по всемирному скоординированному времени для объекта Date.Number Число миллисекунд с полуночи 1 января 1970 года по всемирному скоординированному времени для объекта Date. Воспользуйтесь этим методом, чтобы представить определенный момент во времени при сравнении двух и более объектов Date. getTime()setTime()timezoneOffset Разница в минутах между местным временем компьютера и временем по всемирному скоординированному времени (UTC).Number Разница в минутах между местным временем компьютера и временем по всемирному скоординированному времени (UTC). В частности, это значение представляет собой количество минут, которое необходимо добавить к местному времени компьютера, чтобы оно стало равно всемирному. Если время компьютера опережает UTC, значение будет отрицательным. getTimezoneOffset()
Object Класс Object находится в корне иерархии класса среды выполнения ActionScript. Класс Object находится в корне иерархии классов ActionScript. Объекты создаются конструкторами с помощью синтаксиса оператора new, и им можно динамически присвоить свойства. Объекты могут также создаваться путем присвоения литерала объекта (см. ниже): var obj:Object = {a:"foo", b:"bar"}

Все классы, которые не объявляют базовый класс явным образом, расширяют встроенный класс Object.

Класс Object можно использовать для создания массивов ассоциативных элементов. В сущности, массив ассоциативных элементов является экземпляром класса Object, и каждая пара «ключ-значение» представлена свойством и его значением. Еще одна причина объявить массив ассоциативных элементов с помощью типа данных Object состоит в том, что после этого можно использовать литерал объекта, чтобы заполнить массив ассоциативных элементов (но только в тот раз, когда он объявлен). В следующем примере массив ассоциативных элементов создается с помощью литерала объекта, доступ к элементам выполняется как с помощью оператора-точки, так и посредством оператора доступа к массиву, а затем путем создания нового свойства создается новая пара ключ-значение:

var myAssocArray:Object = {fname:"John", lname:"Public"}; trace(myAssocArray.fname); // John trace(myAssocArray["lname"]); // Public myAssocArray.initial = "Q"; trace(myAssocArray.initial); // Q

ActionScript 3.0 имеет два типа наследования: наследование классов и наследование прототипов:

  • Наследование классов — это первичный механизм наследования, поддерживающий наследование фиксированных свойств. Фиксированное свойство — это переменная, константа или метод, объявленные как часть определения класса. Каждое определение класса представлено сейчас особым объектом класса, в котором хранится информация о классе.
  • Наследование прототипов является единственным механизмом наследования в предшествующих версиях ActionScript и альтернативной формой наследования в ActionScript 3.0. Каждый класс имеет связанный объект прототипа, и свойствами объекта прототипа обладают все экземпляры класса. При создании экземпляра класса он имеет ссылку на объект прототипа для этого класса, который служит связующим звеном между экземпляром и связанным объектом прототипа класса. Если во время выполнения в экземпляре класса не найдено свойство, наличие свойства проверяется у делегата, в роли которого выступает объект прототипа класса. Если объект прототипа не содержит свойства, этот процесс выполняется по отношению к делегату объекта прототипа. При этом проверка производится последовательно на все более и более высоких уровнях иерархии до тех пор, пока среда выполнения Flash не найдет свойство.

Наследование классов и наследование прототипов может выполняться одновременно, как показано в следующем примере.

class A { var x = 1 prototype.px = 2 } dynamic class B extends A { var y = 3 prototype.py = 4 } var b = new B() b.x // 1 via class inheritance b.px // 2 via prototype inheritance from A.prototype b.y // 3 b.py // 4 via prototype inheritance from B.prototype B.prototype.px = 5 b.px // now 5 because B.prototype hides A.prototype b.px = 6 b.px // now 6 because b hides B.prototype

Заменив класс функциями, можно создавать пользовательские деревья наследования прототипов. В случае классов дерево наследования прототипов аналогично дереву наследования классов. Однако, поскольку объекты прототипов являются динамическими, можно добавить или удалить свойства, основанные на прототипах во время выполнения.

В следующем примере классы ObjectExample и Circle используются, чтобы продемонстрировать динамический характер класса Object. Кроме того, показывается, как объекты значений могут быть преобразованы в объекты Shape, а затем добавлены в рабочую область с указанными координатами x и y.

В примере создаются объекты значений firstInitObj и secondInitObj. Пользовательский класс Circle принимает объект значения и циклически обрабатывает его, подставляя совпадающие внутренние свойства вместо свойств, определенных в объекте значения.

package { import flash.display.Sprite; public class ObjectExample extends Sprite { public function ObjectExample() { var firstInitObj:Object = new Object(); firstInitObj.bgColor = 0xFF0000; firstInitObj.radius = 25; firstInitObj.xCenter = 25; firstInitObj.yCenter = 25; var firstCircle:Circle = new Circle(firstInitObj); addChild(firstCircle); firstCircle.x = 50; firstCircle.y = 50; var secondInitObj:Object = {bgColor:0xCCCCCC, radius:50, xCenter:50, yCenter:50}; var secondCircle:Circle = new Circle(secondInitObj); addChild(secondCircle); secondCircle.x = 100; secondCircle.y = 100; } } } import flash.display.Shape; class Circle extends Shape { public var bgColor:Number = 0xFFFFFF; public var radius:Number = 0; public var xCenter:Number = 0; public var yCenter:Number = 0; public function Circle(initObj:Object) { for(var i:String in initObj) { this[i] = initObj[i]; } draw(); } public function draw():void { graphics.beginFill(bgColor); graphics.drawCircle(xCenter, yCenter, radius); graphics.endFill(); } }
prototypeObject Создает объект Object и сохраняет ссылку на метод конструктора объекта в свойстве constructor объекта. Создает объект Object и сохраняет ссылку на метод конструктора объекта в свойстве constructor объекта. hasOwnProperty Показывает, определено ли заданное свойство для объекта.Если у целевого объекта есть свойство, указанное параметром name, выбирается значение true. В противном случае выбирается false. BooleannameStringСвойство объекта. Показывает, определено ли заданное свойство для объекта. Этот метод возвращает значение true, если у целевого объекта есть свойство, совпадающее со строкой, указанной параметром name. В противном случае указывается значение false. Следующие типы свойств заставляют метод возвращать значение true для объектов, которые являются экземплярами классов (в отличие от объектов класса):
  • фиксированные свойства экземпляра — переменные, константы или методы, определенные классом объекта и не являющиеся статическими;
  • унаследованные фиксированные свойства экземпляра — переменные, константы или методы, унаследованные классом объекта;
  • динамические свойства — свойства, добавленные в объект после того, как были созданы его экземпляры (за рамками определения класса). Чтобы добавить динамические свойства, определяющий класс объекта должен объявляться с ключевым словом dynamic.

Следующие типы свойств заставляют метод возвращать значение false для объектов, которые являются экземплярами класса:

  • статические свойства — переменные, константы или методы, определенные с помощью статического ключевого слова в определяющем классе объекта или любом из его суперклассов;
  • свойства прототипа — свойства, определенные в отношении объекта прототипа, который принадлежит цепи прототипов объекта. В ActionScript 3.0 цепочка прототипов не используется для наследования классов. Тем не менее, она существует и используется в качестве альтернативного механизма наследования. Например, экземпляр класса Array может вызывать метод valueOf(), поскольку он существует в прототипе Object.prototype, входящем в цепь для класса Array. Хотя метод valueOf() можно использовать по отношению к экземпляру Array, параметр hasOwnProperty("valueOf") принимает для этого экземпляра значение false.

В ActionScript 3.0 тоже есть объекты классов, которые прямо представляют определения классов. Когда метод hasOwnProperty() вызывается по отношению к объектам класса, то значение true присваивается только в том случае, если свойство является статическим и определено в данном объекте класса. Например, если создается подкласс Array под названием CustomArray и в CustomArray определяется статическое свойство с именем foo, вызов CustomArray.hasOwnProperty("foo") возвращает значение true. Однако для статического свойства DESCENDING, определенного в классе Array, вызов CustomArray.hasOwnProperty("DESCENDING") возвращает значение false.

Примечание. Методы класса Object динамически создаются в прототипе Object. Чтобы переопределить этот метод в подклассе Object, не используйте ключевое слово override. Например, в подклассе Object вместо переопределения базового класса применяется function hasOwnProperty():Boolean.

isPrototypeOf Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.Если объект находится в цепи прототипов объекта, указанного параметром theClass, выбирается значение true. В противном случае устанавливается значение false. BooleantheClassObjectКласс, на который может ссылаться указанный объект. Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. Этот метод возвращает значение true, если объект находится в цепи прототипов объекта, указанного параметром theClass. Метод возвращает значение false, если целевой объект отсутствует в цепи прототипов объекта theClass, а параметр theClass не является объектом.

Примечание. Методы класса Object динамически создаются в прототипе Object. Чтобы переопределить этот метод в подклассе Object, не используйте ключевое слово override. Например, в подклассе Object вместо переопределения базового класса применяется function isPrototypeOf():Boolean.

propertyIsEnumerable Показывает наличие заданного свойства и его перечисляемость.Если свойство, указанное параметром name, перечисляемо, появляется значение true. В противном случае присваивается значение false. BooleannameStringСвойство объекта. Показывает наличие заданного свойства и его перечисляемость. Значение true указывает на то, что свойство существует и может быть перечислено в цикле for..in. Это свойство должно существовать в целевом объекте, поскольку этот метод не проверяет цепи прототипов целевого объекта.

Созданные пользователем свойства перечисляемы, а встроенные свойства, как правило, нет.

Примечание. Методы класса Object динамически создаются в прототипе Object. Чтобы переопределить этот метод в подклассе Object, не используйте ключевое слово override. Например, в подклассе Object вместо переопределения базового класса применяется function propertyIsEnumerable():Boolean.

setPropertyIsEnumerable Задает доступность динамического свойства для операций цикла.nameStringСвойство объекта. isEnumBooleantrue Если выбрано значение false, динамическое свойство не появляется в циклах for..in, а метод propertyIsEnumerable() возвращает значение false. Задает доступность динамического свойства для операций цикла. Это свойство должно существовать в целевом объекте, поскольку этот метод не проверяет цепи прототипов целевого объекта. propertyIsEnumerable()toLocaleString Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали.Строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали. String Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали.

Внедрение по умолчанию для этого метода не выполняет специфичное для локали форматирование и возвращает ту же самую строку как toString(). Для подклассов должно предоставляться их собственное внедрение с учетом локали, когда это применимо.

Примечание. Методы класса Object динамически создаются в прототипе Object. Чтобы переопределить этот метод в подклассе Object, не используйте ключевое слово override. Например, в подклассе Object вместо переопределения базового класса применяется function toLocaleString():String.

Object.toString()
toString Возвращает строковое представление заданного объекта.Строковое представление объекта. String Возвращает строковое представление заданного объекта.

Примечание. Методы класса Object динамически создаются в прототипе Object. Чтобы переопределить этот метод в подклассе Object, не используйте ключевое слово override. Например, в подклассе Object вместо переопределения базового класса применяется function toString():String.

valueOf Возвращает элементарное значение заданного объекта.Элементарное значение данного объекта или самого объекта. Object Возвращает элементарное значение заданного объекта. Если у объекта нет элементарного значения, возвращается объект как таковой.

Примечание. Методы класса Object динамически создаются в прототипе Object. Чтобы переопределить этот метод в подклассе Object, не используйте ключевое слово override. Например, в подклассе Object вместо переопределения базового класса применяется function valueOf():Object.

Object.toString()
constructor Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.Object Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. Если объект представляет собой экземпляр класса, в свойстве constructor содержится ссылка на объект класса. Если объект создается с помощью функции конструктора, свойство constructor содержит ссылку на эту функцию конструктора. Функцию конструктора не следует путать с методом конструктора для класса. Функция конструктора — это объект Function, используемый для создания объектов и применяемый при определении классов наряду с ключевым словом class.

Если ключевое слово class используется для определения класса, объекту прототипа класса присваивается свойство constructor, в котором содержится ссылка на объект класса. Экземпляр класса наследует это свойство из объекта прототипа. Например, следующий код создает новый класс A и экземпляр класса myA:

dynamic class A {} trace(A.prototype.constructor); // [class A] trace(A.prototype.constructor == A); // true var myA:A = new A(); trace(myA.constructor == A); // true

Опытные пользователи могут выбрать ключевое слово function вместо слова class, чтобы определить объект Function, который можно использовать в качестве шаблона при создании объектов. Такая функция называется функцией конструктора, поскольку ее можно применять в сочетании с оператором new для создания объектов. Если ключевое слово function используется для создания функции конструктора, объекту прототипа класса присваивается свойство constructor, в котором содержится ссылка на функцию конструктора. Если затем функция конструктора используется для создания объекта, объект наследует свойство constructor из объекта прототипа функции конструктора. Например, следующий код создает новую функцию конструктора f и объект с именем myF:

function f() {} trace(f.prototype.constructor); // function Function() {} trace(f.prototype.constructor == f); // true var myF = new f(); trace(myF.constructor == f); // true

Примечание. Свойство constructor является записываемым. Это означает, что код пользователя может изменить его значение с помощью инструкции присваивания. Не рекомендуется изменять значение свойства constructor, но если создается код, зависящий от значения свойства constructor, необходимо убедиться, что это значение не сброшено. Значение может изменяться только тогда, когда доступ к данному свойству выполняется с помощью объекта прототипа (например, className.prototype.constructor).

При выполнении доступа к свойству constructor и компиляции в строгом режиме во время компиляции выводится ошибка, так как свойство конструктора зависит от объекта прототипа, который является сущностью среды выполнения. Если используется стандартный режим или если описание класса — «динамический», код выполняется без ошибок.

КлассФункцияprototype
prototype Ссылка на модель объекта класса или функции.Object Ссылка на модель объекта класса или функции. Автоматически создается свойство prototype, которое присваивается любому созданному классу или объекту функции. Это свойство является статическим, так как относится только к созданному классу или функции. Например, если создается класс, значение свойства prototype используется всеми экземплярами класса и доступно только как свойство класса. Экземпляры класса не могут напрямую обращаться к свойству prototype.

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

Примечание. В ActionScript 3.0 наследование прототипов не является основным механизмом наследования. Главный механизм наследования в ActionScript 3.0 — это наследование классов, обеспечивающее наследование фиксированных свойств в определениях классов.

URIError Исключение URIError выбрасывается, если способ использования одной из глобальных функций обработки URI несовместим с ее определением.Error Исключение URIError выбрасывается, если способ использования одной из глобальных функций обработки URI несовместим с ее определением. Это исключение создается, когда указан недействительный URI-адрес для функции, ожидающей действительного URI (например, метод Socket.connect()). flash.net.Socket.connect()URIError Создает новый объект URIError.messageStringСодержит сообщение, связанное с объектом URIError. Создает новый объект URIError. SecurityError Исключение SecurityError создается при каком-либо нарушении защиты.Error Исключение SecurityError создается при каком-либо нарушении защиты.

Примеры ошибок защиты.

  • Несанкционированный доступ к свойству или вызов метода, выполненные из-за границы изолированной программной среды безопасности.
  • Предпринята попытка доступа к URL-адресу, не разрешенному изолированной программной средой безопасности.
  • Предпринята попытка подключения через сокет к порту с несанкционированным номером, например, к порту с номером больше 65535.
  • Предпринята попытка доступа к видеокамере или микрофону пользователя. Пользователь отклонил запрос на доступ к устройству.
В следующем примере показано, как можно вызвать ошибку SecurityError и обработать ее в инструкции try...catch, попытавшись подключиться к порту, номер которого превышает допустимый максимум. package { import flash.display.Sprite; import flash.net.Socket; public class SecurityErrorExample extends Sprite { public function SecurityErrorExample() { try { var host:String = "www.[yourDomain].com"; var socket:Socket = new Socket(); socket.connect(host, 65536); } catch(e:SecurityError) { trace(e); } } } }
SecurityError Создает новый объект SecurityError.messageString Создает новый объект SecurityError.
ReferenceError Исключение ReferenceError появляется при попытке выполнить ссылку на неопределенное свойство для защищенного (нединамического) объекта.Error Исключение ReferenceError появляется при попытке выполнить ссылку на неопределенное свойство для защищенного (нединамического) объекта. Ссылки на неопределенные переменные приведут к появлению исключений ReferenceError, сообщающих о потенциальных ошибках и помогают исправить код приложения.

Однако можно ссылаться на неопределенные свойства динамического класса, не вызывая появление исключения ReferenceError. Дополнительную информацию можно получить, указав ключевое слово dynamic.

В следующем примере показано, как генерируется и обрабатывается исключение ReferenceError в операторе try.. catch. package { import flash.display.Sprite; public class ReferenceErrorExample extends Sprite { public function ReferenceErrorExample() { try { this["someMember"] = true; } catch(e:ReferenceError) { trace(e); } } } }
ключевое слово dynamicReferenceError Создает новый объект ReferenceError.messageStringСодержит сообщение, связанное с объектом ReferenceError. Создает новый объект ReferenceError.
RangeError Исключение RangeError появляется, если числовое значение находится вне допустимого диапазона.Error Исключение RangeError появляется, если числовое значение находится вне допустимого диапазона. При работе с массивами ссылка на позицию в индексе несуществующего элемента массива приводит к возникновению исключения RangeError. Использование методов Number.toExponential(), Number.toPrecision() и Number.toFixed() приводит к появлению исключения RangeError в тех случаях, когда аргументы выходят за пределы допустимого числового диапазона. Во избежание этого исключения можно расширить методы Number.toExponential(), Number.toPrecision() и Number.toFixed().

Среди других ситуаций, вызывающих появление этого исключения, можно назвать следующие:

  • Любой API среды выполнения Flash, ожидающий ввода показателя глубины, вызывается с указанием недействительного числа глубины.
  • Любой API среды выполнения Flash, ожидающий ввода номера кадра, вызывается с указанием недействительного номера кадра.
  • Любой API среды выполнения Flash, ожидающий ввода номера слоя, вызывается с указанием недействительного номера слоя.

В следующем примере показано, как генерируется и обрабатывается исключение RangeError в операторе try..catch. package { import flash.display.Sprite; public class RangeErrorExample extends Sprite { public function RangeErrorExample() { var child:Sprite = new Sprite(); try { addChildAt(child, 1); } catch(e:RangeError) { trace(e); } } } }
Number.toExponential()Number.toPrecision()Number.toFixed()RangeError Создает новый объект RangeError.messageStringСодержит сообщение, связанное с объектом RangeError. Создает новый объект RangeError.
int Класс int позволяет работать с типом данных, представляющим 32-разрядное целое число со знаком.Object Класс int позволяет работать с типом данных, представляющим 32-разрядное целое число со знаком. Диапазон значений, представленных классом int, составляет от -2147483648 (-2 в степени 31) до 2147483647 (2 в степени 31 -1).

Постоянные свойства класса int MAX_VALUE и MIN_VALUE являются статическими. Это означает, что для их использования не требуется объект, поэтому конструктор применять не требуется. Однако сами методы не являются статическими. Следовательно, их использование требует наличия объекта. Объект int можно создать с помощью конструктора класса int или путем объявления переменной типа int и присвоения ей значения литерала.

Тип данных int полезен для счетчиков циклов и других ситуаций, когда не требуется число с плавающей запятой. Он аналогичен типу данных int в языках Java и C++. Значение по умолчанию для переменной, введенной как int, составляет 0

При работе с числами, превышающими int.MAX_VALUE, попробуйте воспользоваться объектом Number.

В следующем примере вызывается метод toString() класса int, который возвращает строку 1234:

var myint:int = 1234; myint.toString();

В следующем примере значение свойства MIN_VALUE присваивается переменной, объявленной без использования конструктора:

 var smallest:int = int.MIN_VALUE;
 
В следующем примере класс IntExample применяется для того, чтобы показать, как работать с типами данных и проверять типы данных int:
  1. В конструкторе объявлены две переменные int (a и b).
  2. Две переменные int добавляются с помощью метода addIntegers().
  3. Третьей переменной int (c) присваивается значение, выводимое методом parseInteger(), который проверяет достоверность переданной ему строки, чтобы убедиться, что это целое значение в приемлемом диапазоне типов данных int и возвращает значение int, которое в случае достоверности строки является целочисленным значением строки.
  4. Переменные int a и c добавляются вместе с помощью addIntegers().
package { import flash.display.Sprite; public class IntExample extends Sprite { public function IntExample() { var a:int = 512; var b:int = -128; trace(addIntegers(a, b)); // 384 var c:int = parseInteger("32"); trace(addIntegers(a, c)); // 544 } public function addIntegers(a:int, b:int):int { return a + b; } public function parseInteger(str:String):int { var num:Number = parseInt(str); if(!isNaN(num) && num <= int.MAX_VALUE && num >= int.MIN_VALUE) { return int(num); } return 0; } } }
uintNumberint Конструктор. Создает новый объект int.numObjectЧисловое значение создаваемого объекта int или значение, которое должно быть преобразовано в число. Если не указан параметр value, значение по умолчанию — 0. Конструктор. Создает новый объект int. При использовании int.toString() и int.valueOf() необходимо применять конструктор int. При использовании свойств объекта int конструктор применять не требуется. Конструктор new int используется в основном в качестве заполнителя. Объект int не аналогичен функции int(), которая преобразует параметр в элементарное значение. Следующий код создает новые объекты int:
	 var n1:int = new int(3.4);
	 var n2:int = new int(-10);
	 
int.toString()int.valueOf()
toExponential Возвращает экспоненциальное строковое представление числа.Выдает исключение, если аргумент fractionDigits выходит за пределы диапазона от 0 до 20. RangeErrorRangeErrorStringfractionDigitsuintЦелое число от 0 до 20 включительно, которое соответствует необходимому количеству регистров после запятой. Возвращает экспоненциальное строковое представление числа. Строка содержит одну цифру перед запятой и до 20 цифр после запятой, как указано в параметре fractionDigits. В следующем примере показано, как toExponential(2) возвращает строку в экспоненциальном представлении. var num:Number = 315003; trace(num.toExponential(2)); // 3.15e+5 toFixed Возвращает строковое представление числа в нотации с фиксированной запятой.Выдает исключение, если аргумент fractionDigits выходит за пределы диапазона от 0 до 20. RangeErrorRangeErrorStringfractionDigitsuintЦелое число от 0 до 20 включительно, которое соответствует необходимому количеству регистров после запятой. Возвращает строковое представление числа в нотации с фиксированной запятой. Представление с фиксированной запятой означает, что строка будет содержать определенное количество цифр после запятой, исходя из значения параметра fractionDigits. Действительный диапазон параметра fractionDigits составляет от 0 до 20. Выбор значения за пределами этого диапазона приводит к созданию исключения. В следующем примере показано, как toFixed(3) возвращает строку, которая округляется до трех цифр после запятой. var num:Number = 7.31343; trace(num.toFixed(3)); // 7.313 В следующем примере показано, как toFixed(2) возвращает строку, добавляющую в конце нули. var num:Number = 4; trace(num.toFixed(2)); // 4.00 toPrecision Возвращает строковое представление числа в нотации с фиксированной запятой либо в экспоненциальной нотации.Выдает исключение, если аргумент precision выходит за пределы диапазона от 1 до 21. RangeErrorRangeErrorStringprecisionuintЦелое число от 1 до 21 включительно, которое представляет необходимое количество цифр в строке результатов. Возвращает строковое представление числа в нотации с фиксированной запятой либо в экспоненциальной нотации. Строка будет содержать количество цифр, указанное в параметре precision. В следующем примере показано, как toPrecision(3) возвращает строку только с тремя цифрами. Эта строка представлена в нотации с фиксированной запятой, поскольку экспоненциальная нотация не требуется. var num:Number = 31.570; trace(num.toPrecision(3)); // 31.6 В следующем примере показано, как toPrecision(3) возвращает строку только с тремя цифрами. Строка представлена в экспоненциальной нотации, поскольку итоговое число не содержит достаточно цифр для нотации с фиксированной запятой. var num:Number = 4000; trace(num.toPrecision(3)); // 4.00e+3 toString Возвращает строковое представление объекта int.Строка. StringradixuintУказывает числовую основу (от 2 до 36), используемую при преобразовании чисел в строку. Если параметр radix не указан, значение по умолчанию равно 10. Возвращает строковое представление объекта int. В следующем примере для параметров radix выбраны значения 2 и 8. При этом возвращается строка с соответствующим представлением числа 9:
	 var myint:int = new int(9);
	 trace(myint.toString(2)); // 1001
	 trace(myint.toString(8)); // 11
	 

Результатом выполнения следующего примера является шестнадцатеричное значение.

	 var r:int = new int(250);
	 var g:int = new int(128);
	 var b:int = new int(114);
	 var rgb:String = "0x"+ r.toString(16)+g.toString(16)+b.toString(16);
	 trace(rgb); // 0xfa8072
	 
valueOf Возвращает элементарное значение заданного объекта int.Значение int. int Возвращает элементарное значение заданного объекта int. В следующем примере результат — элементарное значение объекта numSocks.
	 var numSocks:int = new int(2);
	 trace(numSocks.valueOf()); // 2
	 
MAX_VALUE Наибольшее представимое 32-разрядное целое число со знаком, а именно 2 147 483 647.2147483647int Наибольшее представимое 32-разрядное целое число со знаком, а именно 2 147 483 647. Следующий код ActionScript показывает и записывает наибольший и наименьший представимые объекты int на панели «Вывод» и в файле журнала:
	trace("int.MIN_VALUE = "+int.MIN_VALUE);
	trace("int.MAX_VALUE = "+int.MAX_VALUE);
	

Этот код регистрирует и показывает следующие значения:

	int.MIN_VALUE = -2147483648
	int.MAX_VALUE = 2147483647
	
MIN_VALUE Наименьшее представляемое 32-разрядное целое число со знаком, а именно -2 147 483 648.-2147483648int Наименьшее представляемое 32-разрядное целое число со знаком, а именно -2 147 483 648. Следующий код ActionScript показываети записывает наибольший и наименьший представимые объекты int на панели «Вывод» в файле журнала:
     trace("int.MIN_VALUE = "+int.MIN_VALUE);
     trace("int.MAX_VALUE = "+int.MAX_VALUE);
     

Этот код регистрирует и показывает следующие значения:

	int.MIN_VALUE = -2147483648
	int.MAX_VALUE = 2147483647
     
Number Тип данных, представляющий число IEEE-754 с удвоенной точностью и плавающей запятой.Класс Number представляет собой простую оболочку для типа данных Number. Object Тип данных, представляющий число IEEE-754 с удвоенной точностью и плавающей запятой. Элементарными числовыми значениями можно управлять с помощью методов и свойств, связанных с классом Number. Этот класс идентичен классу JavaScript Number.

Свойства класса Number статичны. При этом для того, чтобы пользоваться ими, не нужен объект, а значит не требуется использовать конструктор.

Тип данных Number относится к стандарту двойной точности IEEE-754.

Тип данных Number полезен, если необходимо использовать значения с плавающей запятой. Среда выполнения Flash обрабатывает типы данных int и uint эффективней, чем Number. Но последний полезен в ситуациях, когда диапазон требуемых значений выходит за пределы действительного диапазона типов данных int и uint. Класс Number можно использовать для представления целых значений, которые находятся далеко за пределами действительного диапазона типов данных int и uint. В типе данных Number для представления целых значений может отводиться до 53 бит в отличие от типов данных int и uint, для которых отводится 32 бита. Значение по умолчанию для переменной, введенной как Number, — NaN (нечисловое).

В следующем примере показано, как число с шестью цифрами после запятой усекается (с округлением) до числа с двумя цифрами после запятой. package { import flash.display.Sprite; public class NumberExample extends Sprite { public function NumberExample() { var num:Number = new Number(10.456345); var str:String = num.toFixed(2); trace(num); // 10.456345 trace(str); // 10.46 } } }
intuintNumber Создает объект Number с заданным значением.numObjectЧисловое значение создаваемого объекта Number или значение, которое должно быть преобразовано в объект Number. Если не указан параметр num, значение по умолчанию — 0. Использование конструктора без указания параметра num отличается от объявления переменной типа Number без присвоенного значения (например, var myNumber:Number), при котором установлено значение по умолчанию NaN. Число без присвоенного значения не определено и является эквивалентом new Number(undefined). Создает объект Number с заданным значением. Создает объект Number с заданным значением. Этот конструктор предназначен для того же, для чего и публичная собственная функция Number(), которая преобразует объект другого типа в элементарное числовое значение. Number.toString()Number.valueOf()toExponential Возвращает экспоненциальное строковое представление числа.Выдает исключение, если аргумент fractionDigits выходит за пределы диапазона от 0 до 20. RangeErrorRangeErrorStringfractionDigitsuintЦелое число от 0 до 20 включительно, которое соответствует необходимому количеству регистров после запятой. Возвращает экспоненциальное строковое представление числа. Строка содержит одну цифру перед запятой и до 20 цифр после запятой, как указано в параметре fractionDigits. В следующем примере показано, как toExponential(2) возвращает строку в экспоненциальном представлении. var num:Number = 315003; trace(num.toExponential(2)); // 3.15e+5 toFixed Возвращает строковое представление числа в нотации с фиксированной запятой.Выдает исключение, если аргумент fractionDigits выходит за пределы диапазона от 0 до 20. RangeErrorRangeErrorStringfractionDigitsuintЦелое число от 0 до 20 включительно, которое соответствует необходимому количеству регистров после запятой. Возвращает строковое представление числа в нотации с фиксированной запятой. Представление с фиксированной запятой означает, что строка будет содержать определенное количество цифр после запятой, исходя из значения параметра fractionDigits. Действительный диапазон параметра fractionDigits составляет от 0 до 20. Выбор значения за пределами этого диапазона приводит к созданию исключения. В следующем примере показано, как toFixed(3) возвращает строку, которая округляется до трех цифр после запятой. var num:Number = 7.31343; trace(num.toFixed(3)); // 7.313 В следующем примере показано, как toFixed(2) возвращает строку, добавляющую в конце нули. var num:Number = 4; trace(num.toFixed(2)); // 4.00 toPrecision Возвращает строковое представление числа в нотации с фиксированной запятой либо в экспоненциальной нотации.Выдает исключение, если аргумент precision выходит за пределы диапазона от 1 до 21. RangeErrorRangeErrorStringprecisionuintЦелое число от 1 до 21 включительно, которое представляет необходимое количество цифр в строке результатов. Возвращает строковое представление числа в нотации с фиксированной запятой либо в экспоненциальной нотации. Строка будет содержать количество цифр, указанное в параметре precision. В следующем примере показано, как toPrecision(3) возвращает строку только с тремя цифрами. Эта строка представлена в нотации с фиксированной запятой, поскольку экспоненциальная нотация не требуется. var num:Number = 31.570; trace(num.toPrecision(3)); // 31.6 В следующем примере показано, как toPrecision(3) возвращает строку только с тремя цифрами. Строка представлена в экспоненциальной нотации, поскольку итоговое число не содержит достаточно цифр для нотации с фиксированной запятой. var num:Number = 4000; trace(num.toPrecision(3)); // 4.00e+3 toString Возвращает строковое представление заданного объекта Number (myNumber).Числовое представление объекта Number в виде строки. StringradixNumber10Указывает числовую основу (от 2 до 36), используемую при преобразовании чисел в строку. Если параметр radix не указан, значение по умолчанию равно 10. Возвращает строковое представление данного объекта Number заданным параметром основания в качестве числовой базы. Возвращает строковое представление заданного объекта Number (myNumber). Если значением объекта Number является десятичное число без ноля в начале (например, ,4), то Number.toString() добавляет 0 (0,4). valueOf Возвращает тип элементарного значения для заданного объекта Number.Элементарный тип значения объекта Number. NumberВозвращает тип элементарного значения для заданного объекта Number. Возвращает тип элементарного значения для заданного объекта Number. MAX_VALUE Наибольшее представимое число (число IEEE-754 с удвоенной точностью).NumberНаибольшее представимое число (число IEEE-754 с удвоенной точностью). Наибольшее представимое число (число IEEE-754 с удвоенной точностью). Это число равно примерно 1,79e+308. MIN_VALUE Наименьшее представимое неотрицательное отличное от нуля число (IEEE-754 двойной точности).NumberНаименьшее представимое число (IEEE-754 двойной точности). Наименьшее представимое неотрицательное отличное от нуля число (IEEE-754 двойной точности). Это число равно примерно 5e-324. В действительности, наименьшим представимым числом является значение параметра -Number.MAX_VALUE. NEGATIVE_INFINITY Задает значение IEEE-754, представляющее минус бесконечность.NumberЗадает значение IEEE-754, представляющее минус бесконечность. Задает значение IEEE-754, представляющее минус бесконечность. Значение этого свойства аналогично значению константы -Infinity.

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

NaN Нечисловое значение IEEE-754 (NaN).NumberНечисловое значение IEEE-754 (NaN). Нечисловое значение IEEE-754 (NaN). isNaN() глобальная функцияPOSITIVE_INFINITY Задает значение IEEE-754, представляющее плюс бесконечность.NumberЗадает значение IEEE-754, представляющее плюс бесконечность. Задает значение IEEE-754, представляющее плюс бесконечность. Значение этого свойства аналогично значению константы Infinity.

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

DefinitionError Класс DefinitionError представляет ошибку, которая возникает при попытке задать пользовательским кодом уже заданный идентификатор.Исключение DefinitionError создается, когда в коде проводится попытка переопределить класс, интерфейс или функцию. Error Класс DefinitionError представляет ошибку, которая возникает при попытке задать пользовательским кодом уже заданный идентификатор. Эта ошибка обычно происходит при переопределении классов, интерфейсов и функций. DefinitionError Создает новый объект DefinitionError.messageString Создает новый объект DefinitionError. Function Функция – это основная единица кода, которую можно вызвать в ActionScript.Класс Function используется для представления встроенных или определяемых пользователем функций. Object Функция — это основная единица кода, которую можно вызвать в ActionScript. Объекты Function, которые являются экземплярами класса Function, представляют в ActionScript как встроенные, так и определяемые пользователем функции.

Методы класса немного отличаются от объектов Function. В отличие от обычного объекта функции метод тесно связан со связанным объектом класса. Поэтому метод или свойство имеют определение, используемое всеми экземплярами одного и того же класса. Из экземпляра можно извлечь методы, обрабатываемые как «связанные» методы (сохраняющие ссылку на исходный экземпляр). В рамках связанного метода ключевое слово this указывает на исходный объект, реализовавший этот метод. В случае функции this указывает на связанный объект на момент вызова функции.

В следующем примере классы FunctionExample, SimpleCollection, EventBroadcaster и EventListener используются для показа различных применений функций в ActionScript. Это можно сделать, выполнив следующие действия:
  1. Конструктор FunctionExample создает локальную переменную simpleColl, которая заполняется массивом целых чисел в диапазоне от 1 до 8.
  2. Объект simpleColl выводится на печать методом trace().
  3. Объект EventListener (listener) добавляется в simpleColl.
  4. При вызове функций insert() и remove() этот прослушиватель отвечает на их события.
  5. Создается второй объект SimpleCollection с именем greaterThanFourColl.
  6. Объекту greaterThanFourColl присваивается результат simpleColl.select() с аргументом 4 и анонимной функцией. Метод выбора объекта SimpleCollection — внутренний итератор, использующий в качестве блока анонимный параметр функции.
package { import flash.display.Sprite; public class FunctionExample extends Sprite { public function FunctionExample() { var simpleColl:SimpleCollection; simpleColl = new SimpleCollection(0, 1, 2, 3, 4, 5, 6, 7, 8); trace(simpleColl); // 0, 1, 2, 3, 4, 5, 6, 7, 8 var listener:EventListener = new EventListener(); simpleColl.addListener(listener); simpleColl.insert(9); // itemInsertedHandler: 9 simpleColl.remove(8); // itemRemovedHandler: 8 trace(simpleColl); // 0, 1, 2, 3, 4, 5, 6, 7, 9 var greaterThanFourColl:SimpleCollection; greaterThanFourColl = simpleColl.select(4, function(item:int, value:int){ return item > value }); trace(greaterThanFourColl); // 5, 6, 7, 9 } } } import flash.display.Sprite; class EventBroadcaster { private var listeners:Array; public function EventBroadcaster() { listeners = new Array(); } public function addListener(obj:Object):void { removeListener(obj); listeners.push(obj); } public function removeListener(obj:Object):void { for(var i:uint = 0; i < listeners.length; i++) { if(listeners[i] == obj) { listeners.splice(i, 1); } } } public function broadcastEvent(evnt:String, ...args):void { for(var i:uint = 0; i < listeners.length; i++) { listeners[i][evnt].apply(listeners[i], args); } } } class SimpleCollection extends EventBroadcaster { private var arr:Array; public function SimpleCollection(... args) { arr = (args.length == 1 && !isNaN(args[0])) ? new Array(args[0]) : args; } public function insert(obj:Object):void { remove(obj); arr.push(obj); broadcastEvent("itemInsertedHandler", obj); } public function remove(obj:Object):void { for(var i:uint = 0; i < arr.length; i++) { if(arr[i] == obj) { var obj:Object = arr.splice(i, 1)[0]; broadcastEvent("itemRemovedHandler", obj); } } } public function select(val:int, fn:Function):SimpleCollection { var col:SimpleCollection = new SimpleCollection(); for(var i:uint = 0; i < arr.length; i++) { if(fn.call(this, arr[i], val)) { col.insert(arr[i]); } } return col; } public function toString():String { var str:String = new String(); for(var i:uint = 0; i < arr.length - 1; i++) { str += arr[i] + ", "; } str += arr[arr.length - 1]; return str; } } class EventListener { public function EventListener() { } public function itemInsertedHandler(obj:Object):void { trace("itemInsertedHandler: " + obj); } public function itemRemovedHandler(obj:Object):void { trace("itemRemovedHandler: " + obj); } }
apply Указывает значение thisObject, используемого в любой функции, вызываемой ActionScript.Любое значение, указанное вызванной функцией. thisArgunknownОбъект, к которому применяется функция. argArrayunknownМассив, элементы которого передаются функции в качестве параметров. Задает экземпляр объекта, для которого вызывается функция. Указывает значение thisObject, используемого в любой функции, вызываемой ActionScript. Этот метод также указывает параметры, передаваемые любой вызванной функции. Поскольку apply() — это метод класса Function, он также является методом любого объекта Function в ActionScript.

Параметры указываются как объект Array в отличие от метода Function.call(), в котором параметры представлены в виде списка, разделенного запятыми. Часто бывает полезно, когда ряд передаваемых параметров неизвестен вплоть до фактического выполнения сценария.

Возвращает значение, которое вызванная функция указывает в качестве возвращаемого значения.

Function.call()
call Вызывает функцию, представленную объектом Function.thisArgunknownОбъект, указывающий значение thisObject в теле функции. argsОдин или несколько параметров, передаваемых функции. Можно указать 0 или несколько параметров. Вызывает эту функцию. Вызывает функцию, представленную объектом Function. Каждая функция в ActionScript представлена объектом Function, и все функции поддерживают этот метод.

Почти всегда вместо этого метода можно прибегнуть к оператору вызова функции (()). Оператор вызова функции создает краткий и легко читаемый код. Этот метод полезен, в основном, тогда, когда параметр thisObject вызова функции необходимо контролировать явным образом. Обычно если функция вызывается как метод объекта, находящегося в теле функции, параметру thisObject присваивается значение myObject, как показано в следующем примере:

myObject.myMethod(1, 2, 3);

В некоторых ситуациях может потребоваться, чтобы thisObject указывал на другой объект (например, если функцию необходимо вызвать как метод объекта, но на самом деле она не сохраняется как метод этого объекта):

myObject.myMethod.call(myOtherObject, 1, 2, 3);

Чтобы вызвать функцию в качестве регулярной функции, а не метода объекта, можно присвоить значение null параметру thisObject. Например, эквивалентны следующие вызовы функции:

Math.sin(Math.PI / 4) Math.sin.call(null, Math.PI / 4)

Возвращает значение, которое вызванная функция указывает в качестве возвращаемого значения.

Function.apply()
SyntaxError Исключение SyntaxError создается при ошибке разбора по одной из следующих причин:Error Исключение SyntaxError создается при ошибке разбора по одной из следующих причин:
  • Класс RegExp выполнил разбор недействительного регулярного выражения.
  • Недействительное содержимое XML разбирается классом XML.
Класс RegExpКласс XMLSyntaxError Создает новый объект SyntaxError.messageStringСодержит сообщение, связанное с объектом SyntaxError. Создает новый объект SyntaxError.
XMLList Класс XMLList содержит методы для работы с одним или несколькими XML-элементами.Object Класс XMLList содержит методы для работы с одним или несколькими XML-элементами. Объект XMLList может представлять один или несколько объектов или элементов XML (включая несколько узлов или атрибутов). Поэтому можно вызывать методы по отношению к элементам в виде группы или к отдельным элементам в коллекции.

Если объект XMLList имеет только один элемент XML, методы класса XML можно применять к объекту XMLList напрямую. В следующем примере example.two — это объект XMLList длиной 1, и для него можно вызвать любой метод XML.

var example2 = <example><two>2</two></example>;

Если вы попытаетесь использовать методы класса XML в отношении объекта XMLList, содержащего более одного объекта XML, возникнет исключение. Вместо этого следует выполнить итерацию в коллекции XMLList (например, с помощью оператора for each..in) и применить эти методы к каждому объекту XML в коллекции.

В следующем примере создается свойство XML books и добавляются несколько элементов с тегами book publisher и name в узел books. Затем вызывается метод showBooksByPublisher(), который обрабатывает XMLList и возвращает все элементы с издателем Addison-Wesley. package { import flash.display.Sprite; public class XMLListExample extends Sprite { private var books:XML; public function XMLListExample() { books = <books> <book publisher="Addison-Wesley" name="Design Patterns" /> <book publisher="Addison-Wesley" name="The Pragmatic Programmer" /> <book publisher="Addison-Wesley" name="Test Driven Development" /> <book publisher="Addison-Wesley" name="Refactoring to Patterns" /> <book publisher="O'Reilly Media" name="The Cathedral & the Bazaar" /> <book publisher="O'Reilly Media" name="Unit Test Frameworks" /> </books>; showBooksByPublisher("Addison-Wesley"); } private function showBooksByPublisher(name:String):void { var results:XMLList = books.book.(@publisher == name); showList(results); } private function showList(list:XMLList):void { var item:XML; for each(item in list) { trace("item: " + item.toXMLString()); } } } }
XMLfor each..inNamespaceQNameXMLList Создает новый объект XMLList.valueObjectЛюбой объект, который может быть преобразован в объект XMLList с помощью функции верхнего уровня XMLList(). Создает новый объект XMLList. функция верхнего уровня XMLList()attribute Вызывает метод attribute() каждого объекта XML и возвращает объект XMLList, состоящий из результатов.Объект XMLList из совпадающих объектов XML или пустой объект XMLList. XMLListattributeNameНазвание атрибута, который требуется включить в объект XMLList. Вызывает метод attribute() каждого объекта XML и возвращает объект XMLList, состоящий из результатов. Результаты соответствуют заданному параметру attributeName. Если совпадения нет, метод attribute() возвращает пустой объект XMLList. XML.attribute()XML.attributes()attributes Вызывает метод attributes() каждого объекта XML и возвращает объект XMLList, состоящий из атрибутов каждого объекта XML.Объект XMLList с атрибутами каждого объекта XML. XMLList Вызывает метод attributes() каждого объекта XML и возвращает объект XMLList, состоящий из атрибутов каждого объекта XML. XML.attribute()XML.attributes()child Вызывает метод child() каждого объекта XML и возвращает объект XMLList, содержащий упорядоченные результаты.Объект XMLList с дочерними узлами, соответствующими введенному параметру. XMLListpropertyNameObjectИмя элемента или целого числа дочернего XML. Вызывает метод child() каждого объекта XML и возвращает объект XMLList, содержащий упорядоченные результаты. XML.child()children Вызывает метод children() каждого объекта XML и возвращает объект XMLList, содержащий результаты.Объект XMLList с дочерними элементами объектов XML. XMLList Вызывает метод children() каждого объекта XML и возвращает объект XMLList, содержащий результаты. XML.children()comments Вызывает метод comments() каждого объекта XML и возвращает объект XMLList, состоящий из комментариев.XMLList с комментариями в объектах XML. XMLList Вызывает метод comments() каждого объекта XML и возвращает объект XMLList, состоящий из комментариев. XML.comments()contains Проверяет наличие в объекте XMLList объекта XML, равного заданному параметру value.Если XMLList содержит объект XML, объявленный в параметреvalue, то присваивается значение true; в противном случае — значение false. BooleanvalueXMLОбъект XML, сравниваемый с текущим объектом XMLList. Проверяет наличие в объекте XMLList объекта XML, равного заданному параметру value. copy Возвращает копию заданного объекта XMLList.Копия объекта XMLList. XMLList Возвращает копию заданного объекта XMLList. Копия — это дубликат всего дерева узлов. Скопированный объект XML не имеет родительского элемента и возвращает null при попытке вызвать метод parent(). descendants Возвращает всех потомков (дочерние элементы всех уровней) объекта XML, обладающих данным параметром name.Объект XMLList совпадающих потомков (дочерних элементов всех уровней) объектов XML в исходном списке. Если потомков не существует, возвращается пустой объект XMLList. XMLListnameObject*Имя совпадающего элемента. Возвращает все дочерние элементы (дочерние элементы всех уровней) объекта XML, обладающие данным параметром name. Параметр name может представлять собой объект QName, тип данных String или любой другой тип данных, который затем преобразуется в тип данных String.

Чтобы показать всех потомков, воспользуйтесь параметром «звездочки» (~~). Если параметр не задан, передается строка «~~» и отображаются все потомки объекта XML.

XML.descendants()
elements Вызывает метод elements() каждого объекта XML.Объект XMLList совпадающих дочерних элементов объектов XML. XMLListnameObject*Имена искомых элементов. Вызывает метод elements() каждого объекта XML. Параметр name передается методу descendants(). Если параметр не задан, строка «~~» передается методу descendants(). XML.elements()hasComplexContent Проверяет наличие в объекте XMLList сложного содержимого.Если объект XMLList содержит сложное содержимое, то выбирается значение true; в противном случае выбирается значение false. Boolean Проверяет наличие в объекте XMLList сложного содержимого. Объект XMLList считается имеющим сложное содержимое, если он не является пустым и верно одно из следующих условий:
  • Объект XMLList содержит один элемент XML, имеющий сложное содержимое.
  • Объект XMLList содержит элементы.
hasSimpleContent()XML.hasComplexContent()XML.hasSimpleContent()
hasOwnProperty Проверяет наличие свойства, заданного параметром p.Если параметр существует, указывается значение true; в противном случае выбирается значение false. BooleanpStringСовпадающее свойство. Проверяет наличие свойства, заданного параметром p. hasSimpleContent Проверяет наличие в объекте XMLList простого содержимого.Если XMLList содержит сложное содержимое, то выбирается значение true; в противном случае выбирается значение false. Boolean Проверяет наличие в объекте XMLList простого содержимого. Объект XMLList считается имеющим сложное содержимое, если выполняется одно или несколько следующих условий:
  • Объект XMLList не является пустым.
  • Объект XMLList содержит один элемент XML, имеющий простое содержимое.
  • Объект XMLList не содержит элементы.
hasComplexContent()XML.hasComplexContent()XML.hasSimpleContent()
length Возвращает число свойств в объекте XMLList.Число свойств в объекте XMLList. int Возвращает число свойств в объекте XMLList. normalize Выполняет слияние смежных текстовых узлов и удаляет пустые текстовые узлы для следующих объектов: всех текстовых узлов в объекте XMLList, всех объектов XML в объекте XMLList, а также потомков всех объектов XML в объекте XMLList.Нормализованный объект XMLList. XMLList Выполняет слияние смежных текстовых узлов и удаляет пустые текстовые узлы для следующих объектов: всех текстовых узлов в объекте XMLList, всех объектов XML в объекте XMLList, а также потомков всех объектов XML в объекте XMLList. parent Возвращает родительский объект для объекта XMLList, если родительский объект у всех элементов в объекте XMLList общий.Возвращает родительский объект XML. Object Возвращает родительский объект для объекта XMLList, если родительский объект у всех элементов в объекте XMLList общий. Если объект XMLList лишен родительского объекта или имеет другие родительские объекты, метод возвращает значение undefined. processingInstructions Если параметр name введен, отображает список всех дочерних объектов для объекта XMLList, содержащих инструкции обработки с данным именем.Объект XMLList содержащий инструкции по обработке для каждого объекта XML. XMLListnameString*Имя совпадающих инструкций по обработке. Если параметр name введен, отображает список всех дочерних объектов для объекта XMLList, содержащих инструкции обработки с данным именем. Если параметры не указаны, метод перечисляет все дочерние объекты объекта XMLList, содержащего инструкции по обработке. XML.processingInstructions()propertyIsEnumerable Проверяет, находится ли p в наборе свойств, которые можно итерировать в операторе for..in, примененном к объекту XMLList.Если это свойство можно итерировать в операторе for..in, выбирается значение true; в противном случае указывается значение false. BooleanpStringИндекс проверяемого свойства. Проверяет, находится ли p в наборе свойств, которые можно итерировать в операторе for..in, примененном к объекту XMLList. Значение true присваивается только в том случае, когда параметр toNumber(p) больше или равен 0 и не превышает длины объекта XMLList. text Вызывает метод text() каждого объекта XML и возвращает объект XMLList, содержащий результаты.Возвращает объект XMLList всех свойств XML объекта XMLList, представляющих текстовые узлы XML. XMLList Вызывает метод text() каждого объекта XML и возвращает объект XMLList, содержащий результаты. XML.text()toString Возвращает строковое представление всех объектов XML в объекте XMLList.Строковое представление объекта XML. String Возвращает строковое представление всех объектов XML в объекте XMLList. Правила этого преобразования зависят от наличия простого или сложного содержимого в объекте XML:
  • Если объект XML имеет простое содержимое, toString() возвращает строковое содержимое объекта XML, за исключением следующих компонентов: начального тега, атрибутов, объявлений пространства имен и конечного тега.
  • Если объект XML имеет сложное содержимое, toString() возвращает строку в формате XML, представляющую весь объект XML, включая начальный тег, атрибуты, объявления пространства имен и конечный тег.

Чтобы каждый раз возвращать весь объект XML, воспользуйтесь методом toXMLString().

В следующем примере показано, что возвращает метод toString(), когда объект XML имеет простое содержимое: var test:XML = <type name="Joe">example</type>; trace(test.toString()); //example В следующем примере показано, что возвращает метод toString(), когда объект XML имеет сложное содержимое: var test:XML = <type name="Joe"> <base name="Bob"></base> example </type>; trace(test.toString()); // <type name="Joe"> // <base name="Bob"/> // example // </type>
hasComplexContent()hasSimpleContent()toXMLString()
toXMLString Возвращает строковое представление всех объектов XML в объекте XMLList.Строковое представление объекта XML. String Возвращает строковое представление всех объектов XML в объекте XMLList. В отличие от метода toString() метод toXMLString() всегда возвращает начальный тег, атрибуты и конечный тег объекта XML независимо от того, имеет ли объект XML простое или сложное содержимое. (Метод toString() приводит к удалению этих компонентов в объектах XML, имеющих простое содержимое.) toString()valueOf Возвращает объект XMLList.Возвращает текущий объект XMLList. XMLList Возвращает объект XMLList.
Boolean Объект Boolean — это тип данных, который используется для логических операций и может иметь одно из двух значений (true или false).Object Объект Boolean — это тип данных, который используется для логических операций и может иметь одно из двух значений (true или false). Используйте класс Boolean, чтобы извлечь элементарный тип данных или строковое представление объекта Boolean.

Чтобы создать объект Boolean, можно воспользоваться конструктором или глобальной функцией либо присвоить значение литерала. Не имеет значения, какой метод использовать; в ActionScript 3.0 все три метода эквивалентны. (Это отличает его от языка JavaScript, где объект Boolean отличается от элементарного типа Boolean.)

Следующие строки кода эквивалентны:

var flag:Boolean = true; var flag:Boolean = new Boolean(true); var flag:Boolean = Boolean(true);
В следующем примере выполняются переключение и показ всех соответствующих значений объекта Boolean. package { import flash.display.Sprite; public class BooleanExample extends Sprite { private var flag:Boolean; public function BooleanExample() { trace(flag); // false toggle(); trace(flag); // true toggle(); trace(flag); // false } private function toggle():void{ flag = !flag; } } }
Boolean Создает объект Boolean с заданным значением.expressionObjectfalseЛюбое выражение. Создает объект Boolean с заданным значением. Если параметр expression пропущен, объект Boolean инициализируется со значением false. Если параметру expression присвоено значение, метод оценивает его и возвращает результат в виде логического значения согласно правилам в глобальной функции Boolean(). Следующий код создает новый объект Boolean, инициализируемый со значением false и именем myBoolean: var myBoolean:Boolean = new Boolean(); Глобальная функция Boolean()toString Возвращает строковое представление (true или false) объекта Boolean.Строка true или false. String Возвращает строковое представление (true или false) объекта Boolean. Выводимая информация не локализуется и принимает значение true или false независимо от языка системы. В этом примере создается переменная типа Boolean, а затем метод toString() применяется для преобразования значения в строку для использования в массиве строк: var myStringArray:Array = new Array("yes", "could be"); var myBool:Boolean = 0; myBool.toString(); myStringArray.push(myBool); trace(myStringArray); // yes,could be,false valueOf Возвращает true, если указанный объект Boolean имеет значение true, в противном случае возвращает false.Логическое значение. Boolean Возвращает true, если указанный объект Boolean имеет значение true, в противном случае возвращает false. В следующем примере показано действие этого метода. Кроме того, указано, что значение нового объекта Boolean — false: var myBool:Boolean = new Boolean(); trace(myBool.valueOf());   // false myBool = (6==3+3); trace(myBool.valueOf());   // true
Error Класс Error содержит информацию об ошибке, возникшей в сценарии.Исключение Error создается, когда в сценарии происходит ошибка. Object Класс Error содержит информацию об ошибке, возникшей в сценарии. Когда при разработке приложений на языке ActionScript 3.0 скомпилированный код выполняется в отладочной версии среды выполнения Flash, появляется диалоговое окно с исключениями типа Error или подкласса, помогающее устранить ошибки кода. Объект Error создается с помощью функции конструктора Error. Как правило, новый объект Error создается из кодового блока try, данные из которого поступают в кодовый блок catch или finally.

Кроме того, можно создать подкласс класса Error и генерировать экземпляры этого подкласса.

В следующем примере используется класс ErrorExample, на примере которого демонстрируется процесс генерации пользовательской ошибки. Это можно сделать, выполнив следующие действия:
  1. Объявляется локальная переменная nullArray типа Array, но обратите внимание, что новый объект Array никогда не создается.
  2. Конструктор пытается загрузить значение в неинициализированный массив методом push() в сегменте кода для обработки ошибок, который перехватывает пользовательскую ошибку с помощью класса CustomError, который является расширением класса Error.
  3. При создании класса CustomError конструктор регистрирует его, а затем выдает сообщение об ошибке с помощью выражения trace().
package { import flash.display.Sprite; public class ErrorExample extends Sprite { private var nullArray:Array; public function ErrorExample() { try { nullArray.push("item"); } catch(e:Error) { throw new CustomError("nullArray is null"); } } } } class CustomError extends Error { public function CustomError(message:String) { super(message); } }
Error Создает новый объект Error.messageStringСтрока, связанная с объектом Error; этот параметр является необязательным. idint0Ссылочный номер, связываемый с конкретным сообщением об ошибке. Создает новый экземпляр объекта Error с заданным сообщением об ошибке. Создает новый объект Error. Если указано message, его значение присваивается свойству Error.message объекта. В следующем примере создается новый объект Error err, а затем с помощью конструктора Error() строка New Error Message («Новое сообщение об ошибке») присваивается err. var err:Error = new Error(); trace(err.toString()); // Error err = new Error("New Error Message"); trace(err.toString()); // Error: New Error Message statements.html#throwstatements.html#try.. catch..finallygetStackTrace Возвращает стек вызовов для ошибки в виде строки при конструировании ошибки (только для отладочных версий Flash Player и AIR Debug Launcher (ADL); возвращает null, если не используются отладочные версии Flash Player или ADL).Строковое представление списка вызовов. StringВозвращает список вызовов для ошибки в удобочитаемом виде. Возвращает стек вызовов для ошибки в виде строки при конструировании ошибки (только для отладочных версий Flash Player и AIR Debug Launcher (ADL); возвращает null, если не используются отладочные версии Flash Player или ADL). Как показано в следующем примере, первая строка возвращаемого значения представляет собой строковое представление объекта исключения, вслед за которой указываются элементы трассировки стека. TypeError: null cannot be converted to an object at com.xyz.OrderEntry.retrieveData(OrderEntry.as:995) at com.xyz.OrderEntry.init(OrderEntry.as:200) at com.xyz.OrderEntry.$construct(OrderEntry.as:148) toString Возвращает строку Error по умолчанию или значение, содержащееся в свойстве Error.message, если оно определено.Сообщение об ошибке. StringВозвращает сообщение об ошибке либо слово «Error», если сообщение не определено. Возвращает строку Error по умолчанию или значение, содержащееся в свойстве Error.message, если оно определено. В следующем примере создается новый объект Error err, а затем с помощью конструктора Error() строка New Error Message («Новое сообщение об ошибке») присваивается err. В итоге, свойству message присваивается значение Another New Error Message («Еще одно новое сообщение об ошибке»), которое заменяет значение New Error Message («Новое сообщение об ошибке»). var err:Error = new Error(); trace(err.toString()); // Error err = new Error("New Error Message"); trace(err.toString()); // Error: New Error Message err.message = "Another New Error Message"; trace(err.toString()); // Error: Another New Error Message Error.messagestatements.html#throwstatements.html#try.. catch..finallymessage Содержит сообщение, связанное с объектом Error.StringСодержит сообщение об ошибке, связанное с экземпляром Error. Содержит сообщение, связанное с объектом Error. По умолчанию в качестве значения этого свойства выбрано Error. Свойство message можно указать при создании объекта Error, передав строку ошибки функции конструктора Error. statements.html#throwstatements.html#try.. catch..finallyname Содержит имя объекта Error.StringИмя экземпляра Error. Содержит имя объекта Error. По умолчанию в качестве значения этого свойства выбрано Error. statements.html#throwstatements.html#try.. catch..finallyerrorID Содержит номер ссылки, связанный с конкретным сообщением об ошибке.intСодержит номер ошибки. Содержит номер ссылки, связанный с конкретным сообщением об ошибке. Для пользовательского объекта Error это число является значением параметра id, представленным в конструкторе.
TypeError Исключение TypeError возникает, если фактический тип операнда отличается от ожидаемого типа.Error Исключение TypeError возникает, если фактический тип операнда отличается от ожидаемого типа.

Кроме того, оно создается в следующих случаях:

  • Фактический параметр функции или метода не удается принудительно привязать к типу формального параметра.
  • Переменной присваивается значение, которое невозможно привязать к типу переменной.
  • Правая сторона оператора is или instanceof не принадлежит действительному типу.
  • Ключевое слово super используется неправомерно.
  • При поиске свойства найдено более одной привязки, и из-за этого результаты противоречивы.
  • Метод инициирован по отношению к несовместимому объекту. Например, исключение TypeError создается, если метод класса RegExp «прививается» на родовой объект, а затем инициируется.

В следующем примере показано, как генерируется и обрабатывается исключение TypeError в операторе try.. catch. package { import flash.display.DisplayObject; import flash.display.Sprite; public class TypeErrorExample extends Sprite { public function TypeErrorExample() { try { var child:Object = new Object(); addChild(DisplayObject(child)); } catch(e:TypeError) { trace(e); } } } }
оператор isоператор instanceofинструкция superКласс RegExpTypeError Создает новый объект TypeError.messageStringСодержит сообщение, связанное с объектом TypeError. Создает новый объект TypeError.
arguments Объект arguments используется для хранения аргументов функции и доступа к ним.Объект arguments используется для хранения аргументов функции и доступа к ним. Object Объект arguments используется для хранения аргументов функции и доступа к ним. В теле функции объект arguments можно вызывать с помощью переменной локальных аргументов.

Аргументы сохраняются как элементы массива: доступ к первому из них выполняется по имени arguments[0], ко второму – по имени arguments[1] и т.д. Свойство arguments.length означает количество аргументов, переданных функции. Количество переданных аргументов может отличаться от количества, объявленного функцией.

В отличие от предыдущих версий ActionScript в ActionScript 3.0 нет свойства arguments.caller. Чтобы получить ссылку на функцию, которая названа текущей, необходимо передать ссылку на эту функцию в виде аргумента. Случай применения этого метода см. в примере, относящемся к свойству arguments.callee.

ActionScript 3.0 включает новое ключевое слово ...(rest), которое рекомендуется использовать вместо класса arguments.

В следующем примере показано использование различных свойств arguments (например, callee и length). package { import flash.display.Sprite; public class ArgumentsExample extends Sprite { public function ArgumentsExample() { println("Hello World"); } public function println(str:String):void { trace(arguments.callee == this.println); // true trace(arguments.length); // 1 trace(arguments[0]); // Hello World trace(str); // Hello World } } }
...(rest)Функцияcallee Ссылка на функцию, выполняемую в настоящий момент.FunctionСсылка на функцию, выполняемую в настоящий момент. Ссылка на функцию, выполняемую в настоящий момент. В следующем коде показано, как получить ссылку на функцию, которая вызывает функцию secondFunction(). Функции firstFunction() присвоен логический аргумент true, указывающий на то, что secondFunction() успешно вызывает firstFunction(), и предотвращающий появление бесконечного цикла поочередного вызова функциями друг друга.

Поскольку параметру callSecond присвоено значение true, firstFunction() вызывает secondFunction() и передает себе ссылку в качестве единственного аргумента. Функция secondFunction() получает аргумент и сохраняет его с помощью параметра caller, который относится к типу данных Function. В secondFunction() используется параметр caller для вызова функции firstFunction, но на этот раз аргументу callSecond присваивается значение false.

Когда в ходе выполнения возвращается firstFunction(), выполняется выражение trace(), поскольку callSecond имеет значение false.

package { import flash.display.Sprite; public class ArgumentsExample extends Sprite { private var count:int = 1; public function ArgumentsExample() { firstFunction(true); } public function firstFunction(callSecond:Boolean) { trace(count + ": firstFunction"); if(callSecond) { secondFunction(arguments.callee); } else { trace("CALLS STOPPED"); } } public function secondFunction(caller:Function) { trace(count + ": secondFunction\n"); count++; caller(false); } } }
length Число аргументов, переданных функции.NumberЧисло параметров, переданных функции. Число аргументов, переданных функции. Оно может быть выше или ниже объявленного функцией.
String Класс String является типом данных, представляющим строку символов.Object Класс String является типом данных, представляющим строку символов. Класс String обладает методами и свойствами, позволяющими оперировать типами элементарных строковых значений. Значение любого объекта можно преобразовать в объект типа данных String с помощью функции String().

Поскольку все индексы строк начинаются с нуля, индекс последнего символа любой строки x равняется x.length - 1.

Можно вызвать любой метод класса String. При этом для создания новой строковой переменной можно воспользоваться методом конструктора new String() или просто присвоить строковое литеральное значение. В отличие от предыдущих версий ActionScript не имеет значения, используется ли конструктор, глобальная функция или просто присваивается значение строкового литерала. Следующие строки кода эквивалентны:

var str:String = new String("foo"); var str:String = "foo"; var str:String = String("foo");

При выборе для строковой переменной значения undefined среды выполнения Flash принудительно заменяет значение undefined значением null. Поэтому выражение:

 var s:String = undefined;
устанавливает значение null вместо undefined. Воспользуйтесь функцией String(), если необходимо использовать значение undefined.
В следующем примере классы StringExample и StringHelper используются для того, чтобы продемонстрировать порядок применения различных методов класса String. Это можно сделать, выполнив следующие действия:
  1. Конструктор для StringExample объявляет несколько локальных экземпляров String, которые инициализируются с помощью различных строк и нового объекта StringHelper.
  2. Класс StringHelper имеет ряд методов.
    • replace(): вызывает методы split() и join() класса String, чтобы удалить подстроку строки, переданную с новой подстрокой.
    • trim(): вызывает одновременно методы trimBack() и trimFront() с помощью переданных строк и возвращает обновленную строку.
    • trimFront(): рекурсивно удаляет все символы, которые совпадают с параметром char, начиная с переднего конца строки назад вплоть до первого символа в строке, не совпадающего с параметром char, и возвращает обновленную строку.
    • trimBack(): рекурсивно удаляет все символы, которые совпадают с параметром char, начиная с заднего конца строки вперед вплоть до последнего символа в строке, не совпадающего с параметром char и возвращает обновленную строку.
    • stringToCharacter(): возвращает первый символ переданной строки.
  3. Затем создаются три строки с помощью объявленных строковых переменных с вызовом метода replace(), использованного для создания второй строки, и метода trim() для создания третьей строки.
package { import flash.display.Sprite; public class StringExample extends Sprite { public function StringExample() { var companyStr:String = new String(" Company X"); var productStr:String = "Product Z Basic "; var emptyStr:String = " "; var strHelper:StringHelper = new StringHelper(); var companyProductStr:String = companyStr + emptyStr + productStr; trace("'" + companyProductStr + "'"); // ' Company X Product Z Basic ' companyProductStr = strHelper.replace(companyProductStr, "Basic", "Professional"); trace("'" + companyProductStr + "'"); // ' Company X Product Z Professional ' companyProductStr = strHelper.trim(companyProductStr, emptyStr); trace("'" + companyProductStr + "'"); // 'Company X Product Z Professional' } } } class StringHelper { public function StringHelper() { } public function replace(str:String, oldSubStr:String, newSubStr:String):String { return str.split(oldSubStr).join(newSubStr); } public function trim(str:String, char:String):String { return trimBack(trimFront(str, char), char); } public function trimFront(str:String, char:String):String { char = stringToCharacter(char); if (str.charAt(0) == char) { str = trimFront(str.substring(1), char); } return str; } public function trimBack(str:String, char:String):String { char = stringToCharacter(char); if (str.charAt(str.length - 1) == char) { str = trimBack(str.substring(0, str.length - 1), char); } return str; } public function stringToCharacter(str:String):String { if (str.length == 1) { return str; } return str.slice(0, 1); } }
Глобальная функция String()String Создает новый объект String, инициализированный для заданной строки.valStringНачальное значение нового объекта String. Создает новый объект String, инициализированный для заданной строки.

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

charAt Возвращает символ в позиции, заданной параметром индекса.Символ в указанном индексе. Пустая строка, если указанный индекс выходит за пределы диапазона индексов для этой строки. StringindexNumber0Целое число, указывающее на позицию символа в строке. Первый символ обозначается 0, а последний символ – my_str.length - 1. Возвращает символ в позиции, заданной параметром индекса. Если index не является числом от 0 до string.length - 1, возвращается пустая строка.

Этот метод напоминает String.charCodeAt(), за исключением того, что возвращаемое значение является символом, а не 16-разрядным целочисленным кодом символа.

charCodeAt()
charCodeAt Возвращает числовой код символа Юникод для символа в заданном индексе.Числовой код символа Юникод для символа в заданном индексе. Или NaN, если индекс выходит за пределы диапазона строковых индексов.

Значения Юникод определены в спецификации Базы данных символов Юникод.

Number
indexNumber0Целое число, указывающее на позицию символа в строке. Первый символ обозначается 0, а последний символ – my_str.length - 1.
Возвращает числовой код символа Юникод для символа в заданном индексе. Если индекс не является числом от 0 до string.length - 1, возвращается NaN.

Этот метод напоминает метод String.charAt(),, за исключением того, что возвращаемое значение является 16-разрядным целочисленным кодом символа, а не фактическим символом.

charAt()
concat Добавляет переданные аргументы к концу объекта String, при необходимости преобразуя их в строки, затем возвращает получившуюся строку.Новая строка, состоящая из этой строки и указанных параметров. StringargsНеобходимо добавить 0 или более параметров. Добавляет переданные аргументы к концу объекта String, при необходимости преобразуя их в строки, затем возвращает получившуюся строку. Первоначальное значение исходного объекта String остается неизменным. fromCharCode Возвращает строку с символами, представленными в параметрах кодами Юникод.Строковое значение указанных кодов Юникод. StringcharCodesСерия целых десятичных чисел, представляющих собой значения Юникод.

Значения Юникод определены в спецификации Базы данных символов Юникод.

Возвращает строку с символами, представленными в параметрах кодами Юникод.
indexOf Выполняет поиск строки и возвращает позицию первого вхождения параметра val, обнаруженного после элемента startIndex (включая этот элемент), в пределах вызывающей строки.Индекс первого вхождения указанной подстроки или -1. intvalStringИскомая подстрока. startIndexNumber0Необязательное целое число, указывающее начальный индекс поиска. Выполняет поиск строки и возвращает позицию первого вхождения параметра val, обнаруженного после элемента startIndex (включая этот элемент), в пределах вызывающей строки. Этот индекс начинается с нуля. Это означает, что первый символ в строке имеет индекс 0, а не 1. Если значение val не найдено, метод возвращает «-1». lastIndexOf()lastIndexOf Выполняет поиск строки справа налево и возвращает индекс последнего вхождения параметра val, обнаруженного перед элементом startIndex.Позиция последнего вхождения указанной подстроки или «-1», если она не найдена. intvalStringИскомая строка. startIndexNumber0x7FFFFFFFНеобязательное целое число, указывающее начальный индекс, с которого начинается поиск val. Значение по умолчанию – максимально допустимое значение индекса. Если startIndex не указан, поиск начинается с последнего элемента в строке. Выполняет поиск строки справа налево и возвращает индекс последнего вхождения параметра val, обнаруженного перед элементом startIndex. Этот индекс начинается с нуля. Это означает, что первый символ имеет индекс 0, а последний – string.length - 1. Если значение val не найдено, метод возвращает -1. indexOf()localeCompare Сравнивает порядок сортировки двух или более строк и возвращает результат сравнения в виде целого числа.Значение 0, если строки равны. В противном случае отрицательное целое число, если исходная строка предшествует аргументу строки, или положительное целое число, если аргумент строки предшествует исходной строке. В обоих случаях абсолютное значение числа выражает разницу между двумя строками. intotherStringСравниваемая строковая величина. valuesНеобязательный набор дополнительных сравниваемых строк. Сравнивает порядок сортировки двух или более строк и возвращает результат сравнения в виде целого числа. Хотя этот метод предназначен для проведения регионального сравнения, реализация ActionScript 3.0 не приводит к появлению другого результата при сравнении других строк, например, операторов равенства (==) или неравенства (! =). Если строки эквивалентны, возвращается значение 0. Если исходное строковое значение предшествует строковому значению, указанному в параметре other, возвращается отрицательное целое число, абсолютное значение которого отражает количество символов, разделяющих два этих строковых значения. Если исходное строковое следует за параметром other, возвращается положительное целое число, абсолютное значение которого отражает количество символов, разделяющих два этих строковых значения. match Сопоставляет заданный pattern со строкой.Массив строк, состоящий из всех подстрок в строке, которая совпадает с заданным шаблоном.

Если шаблон является регулярным выражением, необходимо установить в нем флаг g (global), чтобы вернуть массив с более, чем одной совпадающей подстрокой:

  • Если флаг g (global) не установлен, возвращаемый массив будет содержать не более одного совпадения, а свойство lastIndex регулярного оператора останется неизменным.
  • Если флаг g (global) установлен, метод начинает поиск с начала строки (позиция в индексе 0). Если совпадающая подстрока является пустой строкой (это может происходить в регулярном выражении типа /x~~/), метод добавляет пустую строку в массив совпадений, а затем продолжает поиск со следующей позиции индекса. Свойство lastIndex регулярного выражения приравнивается 0 после завершения выполнения метода.

Если совпадения не найдено, метод возвращает пустой массив. Если значение не передано (или является неопределенным) как параметр pattern, метод возвращает null.

Array
patternИскомый шаблон, в роли которого может выступать любой тип объекта. Как правило, это строка или регулярное выражение. Если pattern не является регулярным выражением или строкой, то перед выполнением этот метод преобразует его в строку.
Сопоставляет заданный pattern со строкой.
RegExp
replace Сопоставляет заданный шаблон со строкой и возвращает новую строку, в которой первое совпадение шаблона заменяется содержимым, заданным параметром repl.Строка, которая получается в результате. Учтите, что исходная строка остается неизменной. StringpatternИскомый шаблон, в роли которого может выступать любой тип объекта. Как правило, это строка или регулярное выражение. Если указать параметр pattern, который представляет собой любой объект, отличающийся от строки или регулярного выражения, метод toString() применяется к параметру, а метод replace() выполняется с использованием итоговой строки в качестве параметра pattern. replObjectКак правило, строка, которая вставляется вместо совпадающего содержимого. Однако в качестве этого параметра можно также указать функцию. Если указать функцию, строка, возвращаемая этой функцией, вставляется вместо совпадающего содержимого.

Если в качестве параметра repl указывается строка, а в качестве регулярного выражения – параметр pattern, можно воспользоваться следующими специальными кодами замены $ в параметре repl:

$ Code Замещающий текст $$ $ $& Совпавшая подстрока. $` Часть строки, предшествующая совпавшей подстроке. Учтите, что в этом коде используется прямая левая одинарная кавычка (`), а не одинарный символ прямой кавычки (') или одинарный символ левой фигурной кавычки (‘). $' Часть строки, которая следует за совпавшей подстрокой. Учтите, что в этом коде используется прямая одинарная кавычка. ('). $n Зарегистрированное совпадение группы в скобках n, где n — это цифра от 1 до 9, а за $n не следует десятичное число. $nn Зарегистрированное совпадение группы в скобках nn, где nn десятичное двузначное число (от 01 до 99). Если запись nn не определена, в качестве замещающего текста используется пустая строка.

Например, ниже показано применение замещающих кодов $2 и $1, представляющих первую и вторую зарегистрированные совпавшие группы:

var str:String = "flip-flop"; var pattern:RegExp = /(\w+)-(\w+)/g; trace(str.replace(pattern, "$2-$1")); // flop-flip

Если в качестве параметра repl указана функция, метод replace()передает этой функции следующие параметры:

  • Совпадающая часть строки.
  • Любые зарегистрированные совпадения групп в скобках предоставляются в качестве следующих аргументов. Количество переданных таким образом аргументов варьируется в зависимости от количества совпадений в скобках. Количество совпадений в скобках можно определить, проверив значение параметра arguments.length - 3 в коде функции.
  • Позиция в индексе в строке, где начинается совпадение.
  • Строка полностью.

Например, рассмотрите один из следующих вариантов.

var str1:String = "abc12 def34"; var pattern:RegExp = /([a-z]+)([0-9]+)/; var str2:String = str1.replace(pattern, replFN); trace (str2); // 12abc 34def function replFN():String { return arguments[2] + arguments[1]; }

Вызов метода replace() использует функцию в качестве параметра repl. Регулярное выражение (/([a-z]([0-9]/g) совпадает дважды. В первый раз шаблон совпадает с подстрокой abc12, а функции передается следующий список аргументов:

{"abc12", "abc", "12", 0, "abc12 def34"}

Во второй раз шаблон совпадает с подстрокой def23, а функции передается следующий список аргументов:

{"def34", "def", "34", 6, "abc123 def34"}
Сопоставляет заданный шаблон со строкой и возвращает новую строку, в которой первое совпадение шаблона заменяется содержимым, заданным параметром repl. Параметр pattern может быть представлен строкой или регулярным выражением. Параметр repl может быть строкой или функцией; если он является функцией, возвращаемая функцией строка вставляется вместо совпадения. Исходная строка не изменяется.

В следующем примере заменяется только первый экземпляр «sh» (зависит от регистра).

var myPattern:RegExp = /sh/; var str:String = "She sells seashells by the seashore."; trace(str.replace(myPattern, "sch")); // She sells seaschells by the seashore.

В следующем примере заменяются все экземпляры «sh» (зависит от регистра), поскольку в регулярном выражении установлен флаг g (global):

var myPattern:RegExp = /sh/g; var str:String = "She sells seashells by the seashore."; trace(str.replace(myPattern, "sch")); // She sells seaschells by the seaschore.

В следующем примере заменяются все экземпляры «sh», поскольку в регулярном выражении установлен флаг g (global), а совпадения не зависят от регистра, так как установлен флаг i (ignoreCase):

var myPattern:RegExp = /sh/gi; var str:String = "She sells seashells by the seashore."; trace(str.replace(myPattern, "sch")); // sche sells seaschells by the seaschore.
RegExp
search Выполняет поиск заданного шаблона и возвращает индекс первой совпадающей подстроки.Индекс первой совпадающей подстроки или -1, если совпадений не найдено. Учтите, что если строка начинается нулевого индекса, первый символ строки имеет индекс 0, а последний – string.length - 1. intpatternИскомый шаблон, в роли которого может выступать любой тип объекта. Как правило, это строка или регулярное выражение. Если pattern не является регулярным выражением или строкой, то перед выполнением этот метод преобразует его в строку. Учтите, что если регулярное выражение указано, метод игнорирует глобальный флаг (g) регулярного выражения и свойство lastIndex (оставляя его без изменений). Если передать неопределенное значение (или не передавать значение), метод возвращает -1. Выполняет поиск заданного шаблона и возвращает индекс первой совпадающей подстроки. Если совпадающей подстроки нет, метод возвращает -1. RegExpslice Возвращает строку с символом startIndex и все символы вплоть до символа endIndex (но не включая его).Подстрока, основанная на заданных индексах. StringstartIndexNumber0Индекс начальной позиции среза, начинающийся с нуля. Если startIndex – отрицательное число, срез создается справа налево, а последнему символу присваивается значение «-1». endIndexNumber0x7fffffffЦелое число, которое больше индекса конечной позиции среза. Символ, индексированный параметром endIndex, не включен в извлеченную строку. Если параметру endIndex присвоено отрицательное число, конечная позиция определяется путем отсчета от конца строки, где последний символ имеет позицию «-1». Значение по умолчанию — максимально допустимое значение индекса. Если этот параметр пропустить, используется параметр String.length. Возвращает строку с символом startIndex и все символы вплоть до символа endIndex (но не включая его). Исходный объект String не изменяется. Если параметр endIndex не указан, то конец подстроки считается концом строки. Если позиция символа, индексированного с помощью параметра startIndex, совпадает или находится справа от символа, индексированного параметром endIndex, метод возвращает пустую строку. substr()substring()split Преобразует объект String в массив подстрок путем разделения объекта каждый раз, когда встречается заданный параметр delimiter.Массив подстрок. ArraydelimiterШаблон, который указывает место разделения строки. В роли шаблона может выступать любой тип объекта. Как правило, это строка или регулярное выражение. Если delimiter не является регулярным выражением или строкой, то метод перед выполнением преобразует его в строку. limitNumber0x7fffffffМаксимальное количество элементов, включаемых в массив. Максимально допустимое значение является значением по умолчанию. Преобразует объект String в массив подстрок путем разделения объекта каждый раз, когда встречается заданный параметр delimiter.

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

var str:String = "ab"; var results:Array = str.split(/a~~?/); // results == ["","b"] results = str.split(/a~~/); // results == ["","b"].)

Если параметр delimiter – это регулярное выражение, содержащее скобки для группы, то при каждом совпадении параметра delimiter результаты (включая любые неопределенные результаты) группировки в скобках разделены в выходном массиве. Например

var str:String = "Thi5 is a tricky-66 example."; var re:RegExp = /(\d+)/; var results:Array = str.split(re); // results == ["Thi","5"," is a tricky-","66"," example."]

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

Если delimiter является пустой строкой, в качестве элемента массива выдается пустое регулярное выражение либо регулярное выражение, которое может соответствовать пустой строке. Каждый отдельный символ в строке выдается в качестве элемента массива.

Если параметр delimiter не определен, в качестве первого элемента возвращаемого массива включается вся строка.

Array.join()RegExp
substr Возвращает подстроку из символов, начинающихся с заданного элемента startIndex. Длина этой строки определяется параметром len.Подстрока, основанная на заданных параметрах. StringstartIndexNumber0Целое число, которое указывает на индекс первого символа, который используется для создания подстроки. Если параметру startIndex присвоено отрицательное число, начальный индекс определяется, начиная с конца строки, где последний символ имеет позицию -1. lenNumber0x7fffffffКоличество символов в создаваемой подстроке. Максимально допустимое значение является значением по умолчанию. Если параметр len не указан, подстрока включает все символы, начиная с startIndex до конца строки. Возвращает подстроку из символов, начинающихся с заданного элемента startIndex. Длина этой строки определяется параметром len. Исходная строка не менялась. substring Возвращает строку из символа, заданного startIndex, и всех символов вплоть до позиции endIndex - 1.Подстрока, основанная на заданных параметрах. StringstartIndexNumber0Целое число, указывающее на индекс первого символа, который используется для создания подстроки. Действительные значения параметра startIndex находятся в диапазоне от 0 до String.length. Если в качестве startIndex выбрано отрицательное значение, используется 0 . endIndexNumber0x7fffffffЦелое число, которое больше индекса последнего символа в извлеченной подстроке. Действительные значения параметра endIndex лежат в диапазоне от 0 до String.length. Символ с позицией endIndex не включен в подстроку. Значение по умолчанию — максимально допустимое значение индекса. Если этот параметр пропустить, используется параметр String.length. Если для этого параметра выбрано отрицательное значение, используется 0. Возвращает строку из символа, заданного startIndex, и всех символов вплоть до позиции endIndex - 1. Если параметр endIndex не указан, используется параметр String.length. Если значение startIndex равняется значению endIndex, метод возвращает пустую строку. Если значение startIndex превышает значение endIndex, параметры автоматически заменяются перед выполнением функции. Исходная строка не менялась. toLocaleLowerCase Возвращает копию этой строки с преобразованием всех прописных символов в строчные.Копия этой строки с преобразованием всех прописных символов в строчные. String Возвращает копию этой строки с преобразованием всех прописных символов в строчные. Исходная строка не менялась. Хотя этот метод предназначается для обработки регионального преобразования, реализация ActionScript 3.0 не приводит к результатам, отличным от результатов метода toLowerCase(). toLowerCase()toLocaleUpperCase Возвращает копию этой строки с преобразованием всех строчных символов в прописные.Копия этой строки с преобразованием всех строчных символов в прописные. String Возвращает копию этой строки с преобразованием всех строчных символов в прописные. Исходная строка не менялась. Хотя этот метод предназначается для обработки регионального преобразования, реализация ActionScript 3.0 не приводит к результатам, отличным от результатов метода toUpperCase(). toUpperCase()toLowerCase Возвращает копию этой строки с преобразованием всех прописных символов в строчные.Копия этой строки с преобразованием всех прописных символов в строчные. String Возвращает копию этой строки с преобразованием всех прописных символов в строчные. Исходная строка не менялась.

Этот метод преобразует все символы (не только в диапазоне от A до Z), для которых существуют строчные эквиваленты в Юникоде:

var str:String = " JOSÉ BARÇA"; trace(str.toLowerCase()); // josé barça

Соответствия регистров определены в спецификации Базы данных символов Юникод.

toUpperCase()
toUpperCase Возвращает копию этой строки с преобразованием всех строчных символов в прописные.Копия этой строки с преобразованием всех строчных символов в прописные. String Возвращает копию этой строки с преобразованием всех строчных символов в прописные. Исходная строка не менялась.

Этот метод преобразует все символы (не только в диапазоне от A до Я), для которых существуют прописные эквиваленты в Юникоде:

var str:String = "José Barça"; trace(str.toUpperCase()); // JOSÉ BARÇA

Соответствия регистров определены в спецификации Базы данных символов Юникод.

toLowerCase()
valueOf Возвращает элементарное значение экземпляра String.Значение строки. String Возвращает элементарное значение экземпляра String. Этот метод разработан для преобразования объекта String в элементарное строковое значение. Поскольку среда выполнения Flash автоматически вызывает при необходимости valueOf(), вызывать этот метод образом приходится нечасто. length Целое число, определяющее количество символов в заданном объекте String.int Целое число, определяющее количество символов в заданном объекте String.

Поскольку все индексы строк начинаются с нуля, индекс последнего символа любой строки x равняется x.length - 1.

Class Для каждого определения класса в программе создается объект Class.Object Для каждого определения класса в программе создается объект Class. Каждый объект Class – это экземпляр класса Class. Объект Class содержит статические свойства и методы класса. Объект класса создает экземпляры класса, когда вызывается с помощью оператора new.

Некоторые методы, например flash.net.getClassByAlias(), возвращают объект типа Class. Другие методы (например, flash.net.registerClassAlias()) могут иметь параметр типа Class.

Имя класса – это ссылка на объект Class, как показано в данном примере:

 
 class Foo {
 }
 

Инструкция class Foo{} является определением класса, создающим объект Class с именем Foo. Кроме того, инструкция new Foo() создаст новый экземпляр класса Foo. Результат также будет принадлежать типу Foo.

Для объявления классов воспользуйтесь инструкцией class. Объекты Class полезны в случае применения таких расширенных методов, как присвоение классов существующему объекту экземпляра при исполнении (см. раздел «Примеры» ниже).

Любые статические свойства и методы класса, относящиеся к текущему объекту Class класса. Сам класс при этом объявляет прототип.

Как правило, объявлять или создавать переменные типа Class вручную не требуется. Однако в следующем коде класс присваивается в качестве свойства общедоступного класса circleClass, и на это свойство можно ссылаться как на свойство основного класса Library:

package { import flash.display.Sprite; public class Library extends Sprite { public var circleClass:Class = Circle; public function Library() { } } } import flash.display.Shape; class Circle extends Shape { public function Circle(color:uint = 0xFFCC00, radius:Number = 10) { graphics.beginFill(color); graphics.drawCircle(radius, radius, radius); } }

Другой SWF-файл может загрузить итоговый файл Library.swf, а затем создать экземпляры объектов типа Circle. В следующем примере показан способ получения доступа к ресурсам нижестоящего элемента SWF-файла. (Помимо этого можно выбрать flash.utils.getDefnitionByName() или импортировать определения заглушек нижестоящего элемента SWF-файла).

package { import flash.display.Sprite; import flash.display.Shape; import flash.display.Loader; import flash.net.URLRequest; import flash.events.Event; public class LibaryLoader extends Sprite { public function LibaryLoader() { var ldr:Loader = new Loader(); var urlReq:URLRequest = new URLRequest("Library.swf"); ldr.load(urlReq); ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded); } private function loaded(event:Event):void { var library:Object = event.target.content; var circle:Shape = new library.circleClass(); addChild(circle); } } }

В ActionScript 3.0 можно создавать встроенные классы для внешних ресурсов (например, изображений, звуков или шрифтов), которые компилируются в SWF-файлы. В более ранних версиях ActionScript эти ресурсы связывались с помощью идентификатора связи с методом MovieClip.attachMovie(). В ActionScript 3.0 каждый встроенный ресурс представлен уникальным встроенным классом ресурсов. Поэтому можно воспользоваться оператором new, чтобы создать экземпляр связанного класса ресурса, а затем вызвать методы и свойства по отношению к этому ресурсу.

Например, при использовании компилятора MXML для создания SWF-файлов встроенный класс будет создаваться следующим образом:

[Embed(source="bratwurst.jpg")] public var imgClass:Class;

А для создания его экземпляра будет использоваться следующая строка:

var myImg:Bitmap = new imgClass();
В следующем примере показано, как использовать объекты Class, чтобы отложить до момента выполнения выбор класса, для которого следующим образом создаются экземпляры:
  1. Объявите два класса как ClassA и ClassB.
  2. Объявите одну переменную типа Class classToConstruct, а другую типа Boolean chooseClassA, для которой в данном случае выбрано значение true. Однако в вашем коде может применяться пользовательское тестовое выражение, устанавливающее значение этой переменной.
package { import flash.display.Sprite; public class ClassExample extends Sprite { public function ClassExample() { var classToConstruct:Class; var classInstance:Object; classToConstruct = ClassA; classInstance = new classToConstruct(); trace(classInstance); // [object ClassA] classToConstruct = ClassB; classInstance = new classToConstruct(); trace(classInstance); // [object ClassB] } } } class ClassA { } class ClassB { }
Object.prototypeоператор new
Namespace Класс Namespace содержит методы и свойства, позволяющие задавать пространства имен и работать с ними.Класс Namespace содержит методы и свойства, позволяющие определять пространства имен объектов XML и работать с ними. Object Класс Namespace содержит методы и свойства, позволяющие задавать пространства имен и работать с ними. Существует три сценария применения пространства имен.
  • Пространства имен объектов XML. В пространствах имен префикс пространства имен связан с универсальным идентификатором ресурса (URI), который их определяет. Префикс – это строка, используемая при создании ссылки на пространство имен в объекте XML. Если префикс не определен, когда XML-файл преобразуется в строку, он генерируется автоматически.
  • Пространство имен для различения методов Пространства имен могут разграничивать одноименные методы, которым предстоит выполнять разные задачи. Если два метода названы одинаково, но их пространства имен различны, они могут выполнять разные задачи.
  • Пространства имен для контроля доступа Пространства имен могут применяться для управления доступом к группе свойств и методов в рамках класса. Если свойства и методы поместить в частное пространство имен, они станут недоступны для любого кода, не имеющего доступа к данному пространству имен. Можно предоставить доступ к группе свойств и методов, передав пространство имен другим классам, методам или функциям.

В этом классе показаны два вида метода конструктора, поскольку каждый из них поддерживает разные параметры.

В этом классе (а также в классах XML, XMLList и QName) реализованы мощные стандарты обработки XML, определенные в сценарии ECMAScript для спецификации XML E4X (ECMA-357, второе издание).

В следующем примере показано, как работать с пространствами имен, определенными в объектах XML. Это можно сделать, выполнив следующие действия:
  1. В этом примере определены три объекта Namespace, каждый из которых имеет уникальный URI, определяющий пространство имен.
  2. В примере определяется переменная XML с именем myXML, которая присваивается возвращаемому значению getRSS(). Метод getRSS() применяется для определения объекта XML, содержащего несколько пространств имен и возврата данного объекта.
  3. В примере объявляется и оценивается переменная Array путем вызова метода parseRSS(), которому передается myXML. В parseRSS() пространство имен XML по умолчанию определяется как rss. Переменная XMLList определяется в примере путем присвоения списка объектов item переменной myXML. Создается массив, который заполняется данными о различных узлах, входящих в myXML.item. Затем этот массив возвращается.
  4. Печать элементов массива выполняется с помощью цикла for и трех вызовов выражения trace().
package { import flash.display.Sprite; public class NamespaceExample extends Sprite { private var rss:Namespace = new Namespace("http://purl.org/rss/1.0/"); private var rdf:Namespace = new Namespace("http://www.w3.org/1999/02/22-rdf-syntax-ns#"); private var dc:Namespace = new Namespace("http://purl.org/dc/elements/1.1/"); public function NamespaceExample() { var myXML:XML = getRSS(); var rssItems:Array = parseRSS(myXML); var len:uint = rssItems.length; for (var i:uint; i < len; i++) { trace(rssItems[i].title); trace(rssItems[i].creator); trace(rssItems[i].date); // Adobe Flash Developer Center // Adobe // 2005-08-08 // Flex Developer Center // Adobe // 2005-10-16 } } private function parseRSS(rssXML:XML):Array { default xml namespace = rss; var items:XMLList = rssXML.item; var arr:Array = new Array(); var len:uint = items.length(); for (var i:uint; i < len; i++) { arr.push({title:items[i].title, creator:items[i].dc::creator, date:items[i].dc::date}); } return arr; } private function getRSS():XML { var myXML:XML = <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" > <channel rdf:about="http://www.xml.com/cs/xml/query/q/19"> <title>Test RSS</title> <link>http://www.adobe.com/</link> <description>This is a test RSS document.</description> <language>en-us</language> <items> <rdf:Seq> <rdf:li rdf:resource="http://www.adobe.com/devnet/flash/"/> <rdf:li rdf:resource="http://www.adobe.com/devnet/flex/"/> </rdf:Seq> </items> </channel> <item rdf:about="http://www.adobe.com/devnet/flash/"> <title>Adobe Flash Developer Center</title> <link>http://www.adobe.com/devnet/flash/</link> <description>Welcome to the Flash Developer Center</description> <dc:creator>Adobe</dc:creator> <dc:date>2005-08-08</dc:date> </item> <item rdf:about="http://www.adobe.com/devnet/flex/"> <title>Flex Developer Center</title> <link>http://www.adobe.com/devnet/flex/</link> <description>Welcome to the Flex Developer Center</description> <dc:creator>Adobe</dc:creator> <dc:date>2005-10-16</dc:date> </item> </rdf:RDF>; return myXML; } } }
В следующем примере показано, как пространства имен можно использовать для разграничения одноименных методов, выполняющих разные задачи. В данном примере три метода hello() находятся в отдельных пространствах имен, и каждый из них при вызове возвращает разную строку. package { import flash.display.Sprite; public class Namespace_2_Example extends Sprite { public function Namespace_2_Example() { var vocab:MultilingualVocabulary = new MultilingualVocabulary(); trace(vocab.hello()); // hello var languages:Array = vocab.getLanguages(); for (var i:uint; i < languages.length; i++) { var ns:Namespace = languages[i]; if (ns != null) { trace(ns.toString() + ": " + vocab.ns::hello()); // hello // MultilingualVocabulary:Hawaiian: aloha // MultilingualVocabulary:French: bon jour } } } } } class MultilingualVocabulary { public namespace French; public namespace Hawaiian; private var languages:Array; public function MultilingualVocabulary() { languages = new Array(Hawaiian, French); } public function hello():String { return "hello"; } Hawaiian function hello():String { return "aloha"; } French function hello():String { return "bon jour"; } public function getLanguages():Array { return languages; } } В следующем примере имена из пространства имен применяются для выбора подходящего значения переменной. Здесь показано, как сохранять значение пространства имен в виде переменной и использовать ее для ссылок на объекты в этом пространстве имен.

В примере определяются пространства имен и цвета, соответствующие состояниям мыши для прямоугольной кнопки. Каждый раз при создании кнопки в примере применяется подходящий цвет (красный – для курсора за пределами кнопки; желтый – для курсора на кнопке; белый – для нажатия) путем ссылки на переменную bgcolor для соответствующего пространства имен (out, over, down).

package { import flash.display.Sprite; public class Namespace_3_Example extends Sprite { public function Namespace_3_Example() { addChild(new StateButton("Press Me.")); } } } import flash.display.Sprite; import flash.text.TextField; import flash.events.Event; import flash.events.MouseEvent; class StateButton extends Sprite{ private namespace out; private namespace over; private namespace down; private var label:TextField; private var labelTxt:String; private var ns:Namespace; out var bgColor:Number = 0xFF0000; over var bgColor:Number = 0xFFFF00; down var bgColor:Number = 0xFFFFFF; public function StateButton(str:String) { buttonMode = true; labelTxt = str; ns = out; draw(); addLabel(); addListeners(); } private function addLabel():void { label = new TextField(); label.text = labelTxt; label.width = 50; label.height = 20; label.mouseEnabled = false; addChild(label); } private function addListeners():void { addEventListener(MouseEvent.MOUSE_UP, mouseOverHandler); addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler); addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler); addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); } private function mouseOutHandler(e:Event):void { ns = out; draw(); } private function mouseOverHandler(e:Event):void { ns = over; draw(); } private function mouseDownHandler(e:Event):void { ns = down; draw(); } private function draw():void { this.graphics.clear(); this.graphics.beginFill(ns::bgColor); this.graphics.drawRect(0, 0, 60, 20); } }
XMLXMLListQNameСпецификация языка ECMAScript для XML E4X (ECMA-357, второе издание)Namespace Создает объект Namespace, исходя из значений параметров prefixValue и uriValue.prefixValueПрефикс, используемый для пространства имен. uriValueУнифицированный идентификатор ресурса (URI-адрес) пространства имен. Создает объект Namespace при заданных параметрах prefixValue и uriValue. Создает объект Namespace, исходя из значений параметров prefixValue и uriValue. Для этого конструктора обязательны оба параметра.

Значение параметра prefixValue присваивается свойству prefix следующим образом:

  • Если передается undefined, для префикса выбирается значение undefined.
  • Если в качестве значения выбрано действительное имя XML, определенное функцией isXMLName(), оно преобразуется в строку и присваивается свойству prefix.
  • Если в качестве значения выбрано недействительное имя XML, свойству prefix присваивается значение undefined.

Значение параметра uriValue присваивается свойству uri следующим образом:

  • Если передается объект QName, свойству uri присваивается значение свойства uri объекта QName.
  • В противном случае параметр uriValue преобразуется в строку и присваивается свойству uri.

Примечание. В этом классе показаны две записи метода конструктора, поскольку каждая из них поддерживает разные параметры. Режим работы конструктора меняется в зависимости от типа и количества переданных аргументов (см. описание в записях). ActionScript 3.0 не поддерживает переопределение метода или конструктора.

Namespace Создает объект Namespace.uriValueУнифицированный идентификатор ресурса (URI-адрес) пространства имен. Создает объект Namespace при заданном параметре uriValue. Создает объект Namespace. Значения, присвоенные свойствам uri и prefix нового объекта Namespace, зависят от типа значения, переданного параметру uriValue:
  • Если значение не передано, свойствам prefix и uri присваивается пустая строка.
  • Если в качестве значения выбран объект Namespace, создается копия этого объекта.
  • Если в роли значения выступает объект QName, свойство uri принимает значение свойства uri объекта QName.

Примечание. В этом классе показаны две записи конструктора, поскольку каждая из них поддерживает разные параметры. Режим работы конструктора меняется в зависимости от типа и количества переданных параметров (см. описание в записях). ActionScript 3.0 не поддерживает переопределение метода или конструктора.

toString Эквивалент свойства Namespace.uri.Унифицированный идентификатор ресурса (URI) пространства имен в виде строки. StringЭквивалент свойства Namespace.uri. Эквивалент свойства Namespace.uri. valueOf Возвращает значение URI заданного объекта.Унифицированный идентификатор ресурса (URI) пространства имен в виде строки. StringЭквивалент свойства Namespace.uri. Возвращает значение URI заданного объекта. prefix Префикс пространства имен.StringПрефикс пространства имен. Префикс пространства имен. uri Унифицированный идентификатор ресурса (URI-адрес) пространства имен.StringУнифицированный идентификатор ресурса (URI-адрес) пространства имен. Унифицированный идентификатор ресурса (URI-адрес) пространства имен.
XML Класс XML содержит методы и свойства для работы с объектами XML.Object Класс XML содержит методы и свойства для работы с объектами XML. В классе XML (а также в классах XMLList, Namespace и QName) реализованы мощные стандарты обработки XML, определенные в языке ECMAScript для спецификации XML E4X (ECMA-357, второе издание).

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

Примечание. Класс XML (вместе со связанными классами) из ActionScript 2.0 теперь называется XMLDocument и находится в пакете flash.xml. Он включен в ActionScript 3.0 в целях обеспечения обратной совместимости.

В следующем примере сначала создается переменная XML, а затем к ней добавляются узлы. Потом для поиска и печати узлов XML используются свойства XML. Заметьте, что символ «собака» (@) используется в нескольких вызовах trace() для поиска информации по имени атрибута. package { import flash.display.Sprite; public class XmlExample extends Sprite { public function XmlExample() { var employees:XML = <employees> <employee ssn="123-123-1234"> <name first="John" last="Doe"/> <address> <street>11 Main St.</street> <city>San Francisco</city> <state>CA</state> <zip>98765</zip> </address> </employee> <employee ssn="789-789-7890"> <name first="Mary" last="Roe"/> <address> <street>99 Broad St.</street> <city>Newton</city> <state>MA</state> <zip>01234</zip> </address> </employee> </employees>; trace(employees.employee[0].address.zip); // 98765 trace(employees.employee[1].@ssn); // 789-789-7890 trace(employees.employee.name); // <name first="John" last="Doe"/> // <name first="Mary" last="Roe"/> trace(employees..zip[0]); // 98765 trace(employees..@ssn[1]); // 789-789-7890 trace(employees..name); // <name first="John" last="Doe"/> // <name first="Mary" last="Roe"/> trace(employees.employee[0].address.*); // <street>11 Main St.</street> // <city>San Francisco</city> // <state>CA</state> // <zip>98765</zip> var node:String = "zip"; trace(employees.employee[0].address[node]); // 98765 var attribute:String = "ssn"; trace(employees.employee[1].@[attribute]); // 789-789-7890 for each (var num:XML in employees..@ssn) { trace(num); // 123-123-1234 } // 789-789-7890 var ssnToFind:String = "789-789-7890"; trace(employees.employee.(@ssn == ssnToFind).toXMLString()); // <employee ssn="789-789-7890"> // <name first="Mary" last="Roe"/> // <address> // <street>99 Broad St.</street> // <city>Newton</city> // <state>MA</state> // <zip>01234</zip> // </address> // </employee> } } }
NamespaceQNameXMLListXML.toXMLString()Спецификация языка ECMAScript для XML E4X (ECMA-357, второе издание)XML Создает новый объект XML.valueObjectЛюбой объект, который можно преобразовать в формат XML с помощью функции верхнего уровня XML(). Создает новый объект XML. Перед вызовом любых методов класса необходимо использовать конструктор для создания объекта XML.

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

В следующем примере показано, как можно загрузить удаленный XML-документ в ActionScript 3.0 с помощью класса URLLoader во Flash Professional. Пример предоставлен ActionScriptExamples.com. // // Requires: // - TextArea control UI component in the Flash Professional Library. // import fl.controls.TextArea; var xml:XML; var urlRequest:URLRequest = new URLRequest("http://www.helpexamples.com/flash/xml/menu.xml"); var urlLoader:URLLoader = new URLLoader(); urlLoader.addEventListener(Event.COMPLETE, urlLoader_complete); urlLoader.load(urlRequest); var textArea:TextArea = new TextArea(); textArea.move(5, 5); textArea.setSize(stage.stageWidth - 10, stage.stageHeight - 10); addChild(textArea); function urlLoader_complete(evt:Event):void { xml = new XML(evt.currentTarget.data); textArea.text = xml.toXMLString(); } Вот другой вариант, в котором используется только ActionScript. Пример предоставлен ActionScriptExamples.com. var xml:XML; var textArea:TextField = new TextField(); textArea.width = 300; var urlRequest:URLRequest = new URLRequest("http://www.helpexamples.com/flash/xml/menu.xml"); var urlLoader:URLLoader = new URLLoader(); urlLoader.dataFormat = URLLoaderDataFormat.TEXT; urlLoader.addEventListener(Event.COMPLETE, urlLoader_complete); urlLoader.load(urlRequest); function urlLoader_complete(evt:Event):void { xml = new XML(evt.target.data); textArea.text = xml.toXMLString(); addChild(textArea); }
Глобальная функция XML()XML.toXMLString()
addNamespace Добавляет пространство имен в набор внутренних пространств имен для объекта XML.Новый объект XML с добавленным пространством имен. XMLnsObjectПространство имен, добавляемое в объект XML. Добавляет пространство имен в набор внутренних пространств имен для объекта XML. Если пространство имен уже существует во внутренних пространствах имен для объекта XML (с префиксом, соответствующим префиксу заданного параметра), то префиксу существующего пространства имен присваивается значение undefined. Если введенный параметр — это объект Namespace, он используется напрямую. Если это объект QName, для создания нового пространства имен применяется URI введенного параметра. В противном случае он преобразуется в объект String, на основе которого создается пространство имен. В этом примере использовано пространство имен, определенное в одном объекте XML и примененное к другому объекту XML: var xml1:XML = <ns:foo xmlns:ns="www.example.com/ns" />; var nsNamespace:Namespace = xml1.namespace(); var xml2:XML = <bar />; xml2.addNamespace(nsNamespace); trace(xml2.toXMLString()); // <bar xmlns:ns="www.example.com/ns"/> appendChild Добавляет данный дочерний элемент в конце свойств объекта XML.Итоговый объект XML. XMLchildObjectДобавляемый объект XML. Добавляет данный дочерний элемент в конце свойств объекта XML. Метод appendChild() принимает объект XML, объект XMLList или любой другой тип данных, который затем преобразуется в объект String.

Воспользуйтесь оператором delete (XML), чтобы удалить узлы XML.

В этом примере новый элемент добавляется в конец списка дочерних элементов объекта XML: var xml:XML = <body> <p>hello</p> </body>; xml.appendChild(<p>world</p>); trace(xml.p[0].toXMLString()); // <p>hello</p> trace(xml.p[1].toXMLString()); // <p>world</p>
оператор delete (XML)
attribute Возвращает XML-значение атрибута с именем, соответствующим параметру attributeName.Объект XMLList или пустой объект XMLList. Возвращает пустой объект XMLList, когда значение атрибута не определено. XMLListattributeNameИмя атрибута. Возвращает XML-значение атрибута с именем, соответствующим параметру attributeName. Поиск атрибутов выполняется в элементах XML. В следующем примере у элемента есть атрибут gender со значением boy: <first gender="boy">John</first>.

Параметр attributeName может относиться к любому типу данных; однако наиболее часто используется тип данных String. При передаче любого объекта, отличного от объекта QName, параметр attributeName использует метод toString(), чтобы преобразовать этот параметр в строку.

Если необходима ссылка на полное имя, можно передать объект QName. Объект QName определяет пространство имени локальное имя, которые можно использовать для определения полного имени атрибута. Поэтому вызов attribute(qname) отличается от вызова attribute(qname.toString()).

В этом примере показан объект QName, переданный методу attribute(). Свойство localName имеет значение attr, а свойство namespace — значение ns. var xml:XML = <ns:node xmlns:ns = "http://uri" ns:attr = '7' /> var qn:QName = new QName("http://uri", "attr"); trace (xml.attribute(qn)); // 7 Чтобы вернуть атрибут с именем, совпадающим с зарезервированным словом ActionScript, воспользуйтесь методом attribute() вместо оператора идентификатора атрибута (@) (см. пример ниже): var xml:XML = <example class="first" /> trace(xml.attribute("class"));
XML.attributes()QNameNamespaceXML.elements()оператор (&#064;) идентификатора атрибута
attributes Возвращает список значений атрибутов для данного объекта XML.Список значений атрибута. XMLList Возвращает список значений атрибутов для данного объекта XML. Чтобы вернуть имя атрибута, воспользуйтесь методом name() вместе с методом attributes(). xml.attributes() выступает в качестве эквивалента xml.@*. В следующем примере возвращается имя атрибута: var xml:XML=<example id='123' color='blue'/> trace(xml.attributes()[1].name()); //color В этом примере возвращаются имена всех атрибутов: var xml:XML = <example id='123' color='blue'/> var attNamesList:XMLList = xml.@*; trace (attNamesList is XMLList); // true trace (attNamesList.length()); // 2 for (var i:int = 0; i < attNamesList.length(); i++) { trace (typeof (attNamesList[i])); // xml trace (attNamesList[i].nodeKind()); // attribute trace (attNamesList[i].name()); // id and color } XML.attribute()XML.name()&#064; operatorchildIndex Определяет нулевую позицию индекса данного объекта XML в контексте его родительского объекта.Позиция объекта. Возвращает как значение «-1», так и положительные целые числа. int Определяет нулевую позицию индекса данного объекта XML в контексте его родительского объекта. В этом примере демонстрируется применение метода childIndex(): var xml:XML = <foo> <bar /> text <bob /> </foo>; trace(xml.bar.childIndex()); // 0 trace(xml.bob.childIndex()); // 2 child Отображает список дочерних элементов объекта XML.Объект XMLList с дочерними узлами, соответствующими введенному параметру. XMLListpropertyNameObjectИмя элемента или целого числа дочернего XML. Отображает список дочерних элементов объекта XML. Дочерний элемент XML — это элемент XML, текстовый узел, комментарий или инструкция по обработке.

Чтобы перечислить содержимое конкретного дочернего элемента XML, воспользуйтесь параметром propertyName. Например, чтобы вернуть содержимое дочернего элемента <first>, укажите child.name("first"). Те же результаты можно получить, воспользовавшись номером индекса дочернего элемента. Номер индекса указывает на положение дочернего элемента в списке других дочерних элементов XML. Например, name.child(0) возвращает первый дочерний элемент в списке.

Укажите «звездочку» (~~), чтобы вывести все дочерние объекты в документе XML. Например, doc.child("~~").

Воспользуйтесь методом length() с параметром «звездочки» (~~) метода child(), чтобы вывести общее число дочерних объектов. Например, numChildren = doc.child("~~").length().

В этом примере показано применение метода child() для обнаружения дочерних элементов с указанным именем: var xml:XML = <foo> <bar>text1</bar> <bar>text2</bar> </foo>; trace(xml.child("bar").length()); // 2 trace(xml.child("bar")[0].toXMLString()); // <bar>text1</bar> trace(xml.child("bar")[1].toXMLString()); // <bar>text2</bar>
XML.elements()Класс XMLListXML.length()
children Отображает список дочерних элементов объекта XML в порядке их расположения.Объект XMLList дочерних элементов объекта XML. XMLList Отображает список дочерних элементов объекта XML в порядке их расположения. Дочерний элемент XML — это элемент XML, текстовый узел, комментарий или инструкция по обработке. В этом примере демонстрируется применение метода children(): XML.ignoreComments = false; XML.ignoreProcessingInstructions = false; var xml:XML = <foo id="22"> <bar>44</bar> text <!-- comment --> <?instruction ?> </foo>; trace(xml.children().length()); // 4 trace(xml.children()[0].toXMLString()); // <bar>44</bar> trace(xml.children()[1].toXMLString()); // text trace(xml.children()[2].toXMLString()); // <!-- comment --> trace(xml.children()[3].toXMLString()); // <?instruction ?> comments Отображает список свойств объекта XML, содержащих XML-комментарии.Объект XMLList свойств, содержащих комментарии. XMLList Отображает список свойств объекта XML, содержащих XML-комментарии. В этом примере демонстрируется применение метода comments(): XML.ignoreComments = false; var xml:XML = <foo> <!-- example --> <!-- example2 --> </foo>; trace(xml.comments().length()); // 2 trace(xml.comments()[1].toXMLString()); // <!-- example2 --> contains Сравнивает объект XML с данным параметром value.Если объект XML совпадает с параметром value, выбирается значение true. В противном случае возвращается false. BooleanvalueXMLЗначение, сравниваемое с текущим объектом XML. Сравнивает объект XML с данным параметром value. В этом примере демонстрируется применение метода contains(): var xml:XML = <order> <item>Rice</item> <item>Kung Pao Shrimp</item> </order>; trace(xml.item[0].contains(<item>Rice</item>)); // true trace(xml.item[1].contains(<item>Kung Pao Shrimp</item>)); // true trace(xml.item[1].contains(<item>MSG</item>)); // false copy Возвращает копию данного объекта XML.Копия объекта. XML Возвращает копию данного объекта XML. Копия — это дубликат всего дерева узлов. Скопированный объект XML не имеет родительского элемента и возвращает null при попытке вызвать метод parent(). В этом примере показано, что метод copy() приводит к созданию нового экземпляра объекта XML. При модификации копии оригинал остается неизменным: var xml1:XML = <foo />; var xml2:XML = xml1.copy(); xml2.appendChild(<bar />); trace(xml1.bar.length()); // 0 trace(xml2.bar.length()); // 1 defaultSettings Возвращает объект со значениями по умолчанию для следующих свойств: ignoreComments, ignoreProcessingInstructions, ignoreWhitespace, prettyIndent и prettyPrinting.Объект, свойствам которого присвоены настройки по умолчанию. Object Возвращает объект со значениями по умолчанию для следующих свойств: ignoreComments, ignoreProcessingInstructions, ignoreWhitespace, prettyIndent и prettyPrinting. Значения по умолчанию таковы:
  • ignoreComments = true
  • ignoreProcessingInstructions = true
  • ignoreWhitespace = true
  • prettyIndent = 2
  • prettyPrinting = true

Примечание. Этот метод не применяется к экземпляру класса XML; его следует применять к XML так, как указано в следующем коде: var df:Object = XML.defaultSettings().

В следующем примере показано, как применять ряд значений по умолчанию (для включения комментариев и инструкций по обработке) перед настройкой объекта XML, как вернуть настройки по умолчанию перед переходом к другому объекту XML и затем, как снова установить пользовательские настройки для работы с другими объектами XML: XML.ignoreComments = false; XML.ignoreProcessingInstructions = false; var customSettings:Object = XML.settings(); var xml1:XML = <foo> <!-- comment --> <?instruction ?> </foo>; trace(xml1.toXMLString()); // <foo> // <!-- comment --> // <?instruction ?> // </foo> XML.setSettings(XML.defaultSettings()); var xml2:XML = <foo> <!-- comment --> <?instruction ?> </foo>; trace(xml2.toXMLString());
XML.ignoreCommentsXML.ignoreProcessingInstructionsXML.ignoreWhitespaceXML.prettyIndentXML.prettyPrintingXML.setSettings()XML.settings()
descendants Возвращает всех потомков (дочерние элементы всех уровней) объекта XML, обладающих данным параметром name.Объект XMLList совпадающих потомков. Если потомков не существует, возвращается пустой объект XMLList. XMLListnameObject*Имя совпадающего элемента. Возвращает все дочерние элементы (дочерние элементы всех уровней) объекта XML, обладающие данным параметром name. Параметр name является необязательным. Параметр name может представлять собой объект QName, тип данных String или любой другой тип данных, который затем преобразуется в тип данных String.

Чтобы показать всех потомков, воспользуйтесь параметром (~~). Если параметр не задан, передается строка «~~» и отображаются все потомки объекта XML.

Чтобы вернуть потомков, имена которых совпадают с зарезервированными словами ActionScript, воспользуйтесь методом descendants() вместо оператора descendant (..), как показано в следующем примере. var xml:XML = <enrollees> <student id="239"> <class name="Algebra" /> <class name="Spanish 2"/> </student> <student id="206"> <class name="Trigonometry" /> <class name="Spanish 2" /> </student> </enrollees> trace(xml.descendants("class")); В следующем примере указано, что метод descendants() возвращает объект XMLList, содержащий все объекты дочерних элементов любого уровня: XML.ignoreComments = false; var xml:XML = <body> <!-- comment --> text1 <a> <b>text2</b> </a> </body>; trace(xml.descendants("*").length()); // 5 trace(xml.descendants("*")[0]); // // <!-- comment --> trace(xml.descendants("*")[1].toXMLString()); // text1 trace(xml.descendants("a").toXMLString()); // <a><b>text2</b></a> trace(xml.descendants("b").toXMLString()); // <b>text2</b>
доступ к дочерним элементам (..) оператор
elements Отображает список элементов объекта XML.Объект XMLList содержимого элемента. Содержимое элемента находится между начальным и конечным тегом. Если для вызова всех элементов используется «звездочка» (~~), возвращаются как теги элемента, так и содержимое. XMLListnameObject*Имя элемента. Имя элемента в угловых кавычках. Например, first является name в примере <first></first>. Отображает список элементов объекта XML. Элемент состоит из начального и конечного тега; например, <first></first>. Параметр name является необязательным. Параметр name может представлять собой объект QName, тип данных String или любой другой тип данных, который затем преобразуется в тип данных String. Параметр name используется для включения определенного элемента в список. Например, элемент "first" возвращает "John" в примере <first>John</first>.

Чтобы включить в список все элементы, воспользуйтесь параметром «звездочки» (~~). Звездочка также является параметром по умолчанию.

Воспользуйтесь методом length() с параметром звездочки, чтобы вывести общее количество элементов. Например, numElement = addressbook.elements("~~").length().

В следующем примере показано, как метод elements() возвращает список, состоящий только из элементов, без комментариев, свойств текста или инструкций по обработке: var xml:XML = <foo> <!-- comment --> <?instruction ?> text <a>1</a> <b>2</b> </foo>; trace(xml.elements("*").length()); // 2 trace(xml.elements("*")[0].toXMLString()); // <a>1</a> trace(xml.elements("b").length()); // 1 trace(xml.elements("b")[0].toXMLString()); // <b>2</b> Чтобы вернуть элементы, имена которых совпадают с зарезервированными словами ActionScript, воспользуйтесь методом elements() вместо оператора XML dot (.), как показано в следующем примере. var xml:XML = <student id="206"> <class name="Trigonometry" /> <class name="Spanish 2" /> </student> trace(xml.elements("class"));
XML.child()Класс XMLListXML.length()XML.attribute()XML dot (.) оператор
hasComplexContent Проверяет наличие в объекте XML сложного содержимого.Если объект XML имеет сложное содержимое, возвращается значение true. В противном случае возвращается false. Boolean Проверяет наличие в объекте XML сложного содержимого. Объект XML имеет сложное содержимое, если у него есть дочерние элементы. Объекты XML, которые представляют собой атрибуты, комментарии, инструкции обработки и текстовые узлы, не имеют сложного содержимого. Однако объект, в котором они содержатся, может считаться имеющим сложное содержимое (если у него есть дочерние элементы). В следующем примере показан объект XML, первое свойство a которого имеет простое содержимое, а второе свойство a — сложное содержимое. var xml:XML = <foo> <a> text </a> <a> <b/> </a> </foo>; trace(xml.a[0].hasComplexContent()); // false trace(xml.a[1].hasComplexContent()); // true trace(xml.a[0].hasSimpleContent()); // true trace(xml.a[1].hasSimpleContent()); // false XML.hasSimpleContent()hasOwnProperty Проверяет наличие у объекта свойства, заданного параметром p.Если свойство существует, указывается значение true; в противном случае выбирается значение false. BooleanpStringСовпадающее свойство. Проверяет наличие у объекта свойства, заданного параметром p. В следующем примере используется метод hasOwnProperty(), позволяющий убедиться в том, что свойство (b) существует перед оценкой выражения (b == "11"), в котором используется этот параметр: var xml:XML = <foo> <a /> <a> <b>10</b> </a> <a> <b>11</b> </a> </foo>; trace(xml.a.(hasOwnProperty("b") && b == "11")); Flash Player создает исключение, поскольку первый элемент с именем a не имеет свойства b, если последняя строка в данном примере выглядит следующим образом:

trace(xml.a.(b == "11"));

В следующем примере используется метод hasOwnProperty(), позволяющий убедиться в том, что свойство (item) существует перед оценкой выражения (item.contains("toothbrush")), в котором применяется этот параметр: var xml:XML = <orders> <order id='1'> <item>toothbrush</item> <item>toothpaste</item> </order> <order> <returnItem>shoe polish</returnItem> </order> </orders>; trace(xml.order.(hasOwnProperty("item") && item.contains("toothbrush")));
hasSimpleContent Поверяет наличие в объекте XML простого содержимого.Если объект XML имеет простое содержимое, возвращается значение true. В противном случае возвращается false. Boolean Поверяет наличие в объекте XML простого содержимого. Объект XML имеет простое содержимое, если он представляет текстовый узел, узел атрибута или элемент XML, лишенный дочерних элементов. Объекты XML, представляющие комментарии и инструкции обработки, не имеют простого содержимого. В следующем примере показан объект XML, первое свойство a которого имеет простое содержимое, а второе свойство a — сложное содержимое. var xml:XML = <foo> <a> text </a> <a> <b/> </a> </foo>; trace(xml.a[0].hasComplexContent()); // false trace(xml.a[1].hasComplexContent()); // true trace(xml.a[0].hasSimpleContent()); // true trace(xml.a[1].hasSimpleContent()); // false XML.hasComplexContent()inScopeNamespaces Отображает список пространств имен объекта XML на основе родительского объекта.Массив объектов Namespace. Array Отображает список пространств имен объекта XML на основе родительского объекта. insertChildAfter Вставляет данный параметр child2 после параметра child1 в этом объекте XML и возвращает полученный объект.Итоговый объект XML или значение undefined. child1ObjectОбъект в исходном объекте, который вставляется перед child2. child2ObjectВставляемый объект. Вставляет данный параметр child2 после параметра child1 в этом объекте XML и возвращает полученный объект. Если параметру child1 присвоено значение null, метод вставляет содержимое child2 перед всеми дочерними объектами объекта XML (иными словами, после none). Если указан параметр child1, но он не существует в объекте XML, объект XML не изменяется и возвращается значение undefined.

Если этот метод вызывается по отношению к дочернему объекту XML, который не относится к числу элементов (текст, атрибуты, комментарии, число «пи» и т.д.), возвращается значение undefined.

Воспользуйтесь оператором delete (XML), чтобы удалить узлы XML.

В следующем примере в конец списка дочерних элементов объекта XML добавляется элемент: var xml:XML = <menu> <item>burger</item> <item>soda</item> </menu>; xml.insertChildAfter(xml.item[0], <saleItem>fries</saleItem>); trace(xml); Метод trace() выводит следующее:
 <menu>
     <item>burger</item>
     <saleItem>fries</saleItem>
     <item>soda</item>
 </menu>
XML.insertChildBefore()оператор delete (XML)
insertChildBefore Вставляет данный параметр child2 перед параметром child1 в этом объекте XML и возвращает полученный объект.Итоговый объект XML или значение undefined. child1ObjectОбъект в исходном объекте, который вставляется после child2. child2ObjectВставляемый объект. Вставляет данный параметр child2 перед параметром child1 в этом объекте XML и возвращает полученный объект. Если параметру child1 присвоено значение null, метод вставляет содержимое child2 после всех дочерних объектов объекта XML (иными словами, перед none). Если указан параметр child1, но он не существует в объекте XML, объект XML не изменяется и возвращается значение undefined.

Если этот метод вызывается по отношению к дочернему объекту XML, который не относится к числу элементов (текст, атрибуты, комментарии, число «пи» и т.д.), возвращается значение undefined.

Воспользуйтесь оператором delete (XML), чтобы удалить узлы XML.

В следующем примере в конец списка дочерних элементов объекта XML добавляется элемент: var xml:XML = <menu> <item>burger</item> <item>soda</item> </menu>; xml.insertChildBefore(xml.item[0], <saleItem>fries</saleItem>); trace(xml); Метод trace() выводит следующее:
 <menu>
     <saleItem>fries</saleItem>
     <item>burger</item>
     <item>soda</item>
 </menu>
XML.insertChildAfter()оператор delete (XML)
length Для объектов XML этот метод всегда возвращает целое число 1.Всегда возвращает 1 для любого объекта XML. int Для объектов XML этот метод всегда возвращает целое число 1. Метод length() класса XMLList возвращает значение 1 для объекта XMLList, который содержит только одно значение. localName Выдает часть полного имени объекта XML, содержащую локальное имя.В качестве локального имени выбирается String или null. Object Выдает часть полного имени объекта XML, содержащую локальное имя. В следующем примере демонстрируется использование метода localName(): var xml:XML = <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body xmlns:wx = "http://example.com/weather"> <wx:forecast> <wx:city>Quito</wx:city> </wx:forecast> </soap:Body> </soap:Envelope>; trace(xml.localName()); // Envelope name Выдает полное имя объекта XML.В качестве полного имени указывается QName или null. Object Выдает полное имя объекта XML. Следующий пример служит иллюстрацией применения метода name() для получения полного имени объекта XML: var xml:XML = <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body xmlns:wx = "http://example.com/weather"> <wx:forecast> <wx:city>Quito</wx:city> </wx:forecast> </soap:Body> </soap:Envelope>; trace(xml.name().localName); // Envelope trace(xml.name().uri); // "http://www.w3.org/2001/12/soap-envelope" В следующем примере показано, как метод name() вызывается по отношению к свойству XML, текстовому элементу и атрибуту: var xml:XML = <foo x="15" y="22"> text </foo>; trace(xml.name().localName); // foo trace(xml.name().uri == ""); // true trace(xml.children()[0]); // text trace(xml.children()[0].name()); // null trace(xml.attributes()[0]); // 15 trace(xml.attributes()[0].name()); // x XML.attributes()идентификатор атрибутаnamespaceDeclarations Отображает список объявлений пространств имен, связанных с объектом XML в контексте его родительского объекта.Массив объектов Namespace. Array Отображает список объявлений пространств имен, связанных с объектом XML в контексте его родительского объекта. В следующем примере выводятся объявления пространств имен для объекта XML. var xml:XML = <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://purl.org/rss/1.0/"> <!-- ... --> </rdf:RDF>; for (var i:uint = 0; i < xml.namespaceDeclarations().length; i++) { var ns:Namespace = xml.namespaceDeclarations()[i]; var prefix:String = ns.prefix; if (prefix == "") { prefix = "(default)"; } trace(prefix + ":" , ns.uri); } Метод trace() выводит следующее:
rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#
 dc: http://purl.org/dc/elements/1.1/
 (default): http://purl.org/rss/1.0/
XML.namespace()
namespace Если параметр не предусмотрен, выдает пространство имен, связанное с полным именем этого объекта XML.Возвращает null, undefined или пространство имен. prefixStringnullСовпадающий префикс. Если параметр не предусмотрен, выдает пространство имен, связанное с полным именем этого объекта XML. Если указан параметр prefix, метод возвращает пространство имен, которое совпадает с параметром prefix и является внутренним для объекта XML. Если такого пространства имен не существует, метод возвращает значение undefined. В следующем примере метод namespace() используется для определения пространства имен объекта XML и его присвоения объекту Namespace с именем soap, который затем применяется для идентификации свойства объекта xml (xml.soap::Body[0]): var xml:XML = <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body xmlns:wx = "http://example.com/weather"> <wx:forecast> <wx:city>Quito</wx:city> </wx:forecast> </soap:Body> </soap:Envelope>; var soap:Namespace = xml.namespace(); trace(soap.prefix); // soap trace(soap.uri); // http://www.w3.org/2001/12/soap-envelope var body:XML = xml.soap::Body[0]; trace(body.namespace().prefix); // soap trace(xml.namespace().uri); // http://www.w3.org/2001/12/soap-envelope trace(body.namespace("wx").uri); // "http://example.com/weather" В следующем примере метод namespace() используется для того, чтобы определить пространство имен по умолчанию для узла, а также пространство имен для конкретного префикса ("dc"): var xml:XML = <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://purl.org/rss/1.0/"> <!-- ... --> </rdf:RDF>; trace(xml.namespace()); // http://www.w3.org/1999/02/22-rdf-syntax-ns# trace(xml.namespace("dc")); // http://purl.org/dc/elements/1.1/ trace(xml.namespace("foo")); // undefined nodeKind Задает тип узла: текст, комментарий, инструкцию обработки, атрибут или элемент.Используемый тип узла. String Задает тип узла: текст, комментарий, инструкцию обработки, атрибут или элемент. В этом примере отслеживаются все пять типов узлов: XML.ignoreComments = false; XML.ignoreProcessingInstructions = false; var xml:XML = <example id="10"> <!-- this is a comment --> <?test this is a pi ?> and some text </example>; trace(xml.nodeKind()); // element trace(xml.children()[0].nodeKind()); // comment trace(xml.children()[1].nodeKind()); // processing-instruction trace(xml.children()[2].nodeKind()); // text trace(xml.@id[0].nodeKind()); // attribute идентификатор атрибутаnormalize Для объекта XML и всех объектов XML, которые являются его потомками, выполняет слияние смежных текстовых узлов и удаляет пустые текстовые узлы.Итоговый нормализованный объект XML. XML Для объекта XML и всех объектов XML, которые являются его потомками, выполняет слияние смежных текстовых узлов и удаляет пустые текстовые узлы. В следующем примере показан эффект вызова метода normalize(): var xml:XML = <body></body>; xml.appendChild("hello"); xml.appendChild(" world"); trace(xml.children().length()); // 2 xml.normalize(); trace(xml.children().length()); // 1 parent Возвращает родительский объект для объекта XML.Ссылка XML на родительский узел или значение undefined, если родительский объект отсутствует для объекта XML. Возвращает родительский объект для объекта XML. Если объект XML не имеет родительского объекта, этот метод возвращает значение undefined. В следующем примере метод parent() используется для определения родительского элемента конкретного элемента в структуре XML: var xml:XML = <body> <p id="p1">Hello</p> <p id="p2">Test: <ul> <li>1</li> <li>2</li> </ul> </p> </body>; var node:XML = xml.p.ul.(li.contains("1"))[0]; // == <ul> ... </ul> trace(node.parent().@id); // p2 prependChild Вставляет копию введенного дочернего объекта в элемент XML перед любыми существующими свойствами XML для этого элемента.Итоговый объект XML. XMLvalueObjectВставляемый объект. Вставляет копию введенного объекта child объекта в элемент XML перед любыми существующими свойствами XML для этого элемента.

Воспользуйтесь оператором delete (XML), чтобы удалить узлы XML.

В следующем примере метод prependChild() используется для добавления элемента в начало списка дочерних объектов объекта XML: var xml:XML = <body> <p>hello</p> </body>; xml.prependChild(<p>world</p>); trace(xml.p[0].toXMLString()); // <p>world</p> trace(xml.p[1].toXMLString()); // <p>hello</p>
оператор delete (XML)
processingInstructions Если параметр name введен, отображает список всех дочерних объектов для объекта XML, содержащих инструкции обработки с таким параметром.Список совпадающих дочерних объектов. XMLListnameString*Имя совпадающих инструкций по обработке. Если параметр name введен, отображает список всех дочерних объектов для объекта XML, содержащих инструкции обработки с таким name. Если параметры не указаны, метод перечисляет все дочерние объекты объекта XML, содержащего инструкции по обработке. В следующем примере показано применение метода processingInstructions() для получения массива инструкций по обработке для объекта XML: XML.ignoreProcessingInstructions = false; var xml:XML = <body> foo <?xml-stylesheet href="headlines.css" type="text/css" ?> <?instructionX ?> </body>; trace(xml.processingInstructions().length()); // 2 trace(xml.processingInstructions()[0].name()); // xml-stylesheet propertyIsEnumerable Проверяет, находится ли p в наборе свойств, которые можно итерировать в операторе for..in, примененном к объекту XML.Если это свойство можно итерировать в операторе for..in, выбирается значение true; в противном случае указывается значение false. BooleanpStringПроверяемое свойство. Проверяет, находится ли p в наборе свойств, которые можно итерировать в операторе for..in, примененном к объекту XML. Значение true возвращается только тогда, когда toString(p) == "0". В следующем примере показано, что для объекта XML метод propertyNameIsEnumerable() возвращает значение true только при значении 0, тогда как в случае объекта XMLList возвращается значение true для каждого действительного значения индекса, относящегося к объекту XMLList: var xml:XML = <body> <p>Hello</p> <p>World</p> </body>; trace(xml.propertyIsEnumerable(0)); // true trace(xml.propertyIsEnumerable(1)); // false for (var propertyName:String in xml) { trace(xml[propertyName]); } var list:XMLList = xml.p; trace(list.propertyIsEnumerable(0)); // true trace(list.propertyIsEnumerable(1)); // true trace(list.propertyIsEnumerable(2)); // false for (var propertyName:String in list) { trace(list[propertyName]); } removeNamespace Удаляет данное пространство имен для этого объекта и всех его потомков.Копия итогового объекта XML. XMLnsNamespaceУдаляемое пространство имен. Удаляет данное пространство имен для этого объекта и всех его потомков. Метод removeNamespaces() не удаляет пространство имен, если ссылка на него содержится в полном имени объекта или полных именах атрибутов объектов. В следующем примере показано, как объявление пространства имен удаляется из объекта XML. var xml:XML = <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://purl.org/rss/1.0/"> <!-- ... --> </rdf:RDF>; trace(xml.namespaceDeclarations().length); // 3 trace(xml.namespaceDeclarations()[0] is String); // var dc:Namespace = xml.namespace("dc"); xml.removeNamespace(dc); trace(xml.namespaceDeclarations().length); // 2 replace Заменяет свойства, заданные параметром propertyName, на данный параметр value.Итоговый объект XML, у которого заменены совпадающие свойства. XMLpropertyNameObjectМожет являться числовым значением, неполным именем набора элементов XML, полным именем набора элементов XML или подстановочным символом «звездочка» («*»). Воспользуйтесь неполным именем, чтобы определить элементы XML в пространстве имен по умолчанию. valueXMLЗамещающее значение. Им может являться объект XML, объект XMLList или любое значение, которое можно преобразовать с помощью метода toString(). Заменяет свойства, заданные параметром propertyName, на данный параметр value. Если ни одно из свойств не соответствует propertyName, объект XML остается неизменным. В следующем примере показан вызов метода replace() с целым числом в качестве первого параметра: var xml:XML = <body> <p>Hello</p> <p>World</p> <hr/> </body>; xml.replace(1, <p>Bob</p>); trace(xml); Это приводит к следующему выводу trace():

 <body>
     <p>Hello</p>
     <p>Bob</p>
     <hr/>
 </body>
 
В примере ниже метод replace() вызывается со строкой в качестве первого параметра: var xml:XML = <body> <p>Hello</p> <p>World</p> <hr/> </body>; xml.replace("p", <p>Hi</p>); trace(xml); Это приводит к следующему выводу trace():

 <body>
     <p>Hi</p>
     <hr/>
 </body>;
 
В этом примере показан вызов метода replace() с объектом QName в качестве первого параметра: var xml:XML = <ns:body xmlns:ns = "myNS"> <ns:p>Hello</ns:p> <ns:p>World</ns:p> <hr/> </ns:body>; var qname:QName = new QName("myNS", "p"); xml.replace(qname, <p>Bob</p>); trace(xml); Это приводит к следующему выводу trace():

 <ns:body xmlns:ns = "myNS">
     <p>Bob</p>
     <hr/>
 </ns:body>
 
В данном примере демонстрируется вызов метода replace() со строкой "*" в качестве первого параметра: var xml:XML = <body> <p>Hello</p> <p>World</p> <hr/> </body>; xml.replace("*", <img src = "hello.jpg"/>); trace(xml); Это приводит к следующему выводу trace():

 <body>
     <img src="hello.jpg"/>
 </body>
 
setChildren Заменяет свойства дочернего объекта XML заданным набором свойств XML из параметра value.Итоговый объект XML. XMLvalueObjectЗамещающие свойства XML. Может быть единичным объектом XML или объектом XMLList. Заменяет свойства дочернего объекта XML заданным набором свойств XML из параметра value. В следующем примере показан вызов метода setChildren(). Сначала он выполняется с параметром в виде объекта XML, а затем с параметром, для которого выбран объект XMLList: var xml:XML = <body> <p>Hello</p> <p>World</p> </body>; var list:XMLList = xml.p; xml.setChildren(<p>hello</p>); trace(xml); // <body> // <p>hello</p> // </body> xml.setChildren(list); trace(xml); // <body> // <p>Hello</p> // <p>World</p> // </body> setLocalName Изменяет локальное имя объекта XML на заданное значение параметра name.nameStringЗамещающее имя локального имени. Изменяет локальное имя объекта XML на заданное значение параметра name. Метод setLocalName() используется в этом примере для изменения локального имени элемента XML: var xml:XML = <ns:item xmlns:ns="http://example.com"> toothbrush </ns:item>; xml.setLocalName("orderItem"); trace(xml.toXMLString()); // <ns:orderItem xmlns:ns="http://example.com">toothbrush</ns:orderItem> setName Задает имя объекта XML по данному полному имени или имени атрибута.nameStringНовое имя объекта. Задает имя объекта XML по данному полному имени или имени атрибута. Метод setName() используется в этом примере для изменения имени элемента XML: var xml:XML = <item> toothbrush </item>; xml.setName("orderItem"); trace(xml.toXMLString()); // <orderItem>toothbrush</orderItem> setNamespace Задает пространство имен, связанное с объектом XML.nsNamespaceНовое пространство имен. Задает пространство имен, связанное с объектом XML. В следующем примере используется пространство имен soap, определенное в одном из объектов XML, которое применяется к пространству имен другого объекта XML (xml2): var xml1:XML = <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <!-- ... --> </soap:Envelope>; var ns:Namespace = xml1.namespace("soap"); var xml2:XML = <Envelope> <Body/> </Envelope>; xml2.setNamespace(ns); trace(xml2); setSettings Задает значения для следующих свойств XML: ignoreComments, ignoreProcessingInstructions, ignoreWhitespace, prettyIndent и prettyPrinting.restОбъект с каждым из указанных ниже свойств:
  • ignoreComments
  • ignoreProcessingInstructions
  • ignoreWhitespace
  • prettyIndent
  • prettyPrinting
Задает значения для следующих свойств XML: ignoreComments, ignoreProcessingInstructions, ignoreWhitespace, prettyIndent и prettyPrinting. Ниже приводятся настройки по умолчанию, применяемые в том случае, если не указан параметр setObj.
  • XML.ignoreComments = true
  • XML.ignoreProcessingInstructions = true
  • XML.ignoreWhitespace = true
  • XML.prettyIndent = 2
  • XML.prettyPrinting = true

Примечание. Этот метод не применяется к экземпляру класса XML; его следует применять к XML так же, как в следующем коде: XML.setSettings().

В следующем примере показано, как применять ряд значений по умолчанию (для включения комментариев и инструкций по обработке) перед настройкой объекта XML, как вернуть настройки по умолчанию перед переходом к другому объекту XML и затем, как снова установить пользовательские настройки для работы с другими объектами XML: XML.ignoreComments = false; XML.ignoreProcessingInstructions = false; var customSettings:Object = XML.settings(); var xml1:XML = <foo> <!-- comment --> <?instruction ?> </foo>; trace(xml1.toXMLString()); // <foo> // <!-- comment --> // <?instruction ?> // </foo> XML.setSettings(XML.defaultSettings()); var xml2:XML = <foo> <!-- comment --> <?instruction ?> </foo>; trace(xml2.toXMLString());
ignoreCommentsignoreProcessingInstructionsignoreWhitespaceprettyIndentprettyPrintingdefaultSettings()settings()
settings Получает следующие свойства: ignoreComments, ignoreProcessingInstructions, ignoreWhitespace, prettyIndent и prettyPrinting.Объект со следующими свойствами XML:
  • ignoreComments
  • ignoreProcessingInstructions
  • ignoreWhitespace
  • prettyIndent
  • prettyPrinting
Object
Получает следующие свойства: ignoreComments, ignoreProcessingInstructions, ignoreWhitespace, prettyIndent и prettyPrinting. В следующем примере показано, как применять ряд значений по умолчанию (для включения комментариев и инструкций по обработке) перед настройкой объекта XML, как вернуть настройки по умолчанию перед переходом к другому объекту XML и затем, как снова установить пользовательские настройки для работы с другими объектами XML: XML.ignoreComments = false; XML.ignoreProcessingInstructions = false; var customSettings:Object = XML.settings(); var xml1:XML = <foo> <!-- comment --> <?instruction ?> </foo>; trace(xml1.toXMLString()); // <foo> // <!-- comment --> // <?instruction ?> // </foo> XML.setSettings(XML.defaultSettings()); var xml2:XML = <foo> <!-- comment --> <?instruction ?> </foo>; trace(xml2.toXMLString());
XML.ignoreCommentsXML.ignoreProcessingInstructionsXML.ignoreWhitespaceXML.prettyIndentXML.prettyPrintingXML.defaultSettings()XML.setSettings()
text Возвращает объект XMLList всех свойств XML объекта XML, представляющих текстовые узлы XML.Список свойств. XMLList Возвращает объект XMLList всех свойств XML объекта XML, представляющих текстовые узлы XML. В следующем примере метод text() используется для вывода текстовых узлов объекта XML: var xml:XML = <body> text1 <hr/> text2 </body>; trace(xml.text()[0]); // text1 trace(xml.text()[1]); // text2 toString Возвращает строковое представление объекта XML.Строковое представление объекта XML. String Возвращает строковое представление объекта XML. Правила этого преобразования зависят от наличия простого или сложного содержимого в объекте XML:
  • Если объект XML имеет простое содержимое, toString() возвращает строковое содержимое объекта XML, за исключением следующих компонентов: начального тега, атрибутов, объявлений пространства имен и конечного тега.
  • Если объект XML имеет сложное содержимое, toString() возвращает строку в формате XML, представляющую весь объект XML, включая начальный тег, атрибуты, объявления пространства имен и конечный тег.

Чтобы каждый раз возвращать весь объект XML, воспользуйтесь методом toXMLString().

В следующем примере показано, что возвращает метод toString(), когда объект XML имеет простое содержимое: var test:XML = <type name="Joe">example</type>; trace(test.toString()); //example В следующем примере показано, что возвращает метод toString(), когда объект XML имеет сложное содержимое: var test:XML = <type name="Joe"> <base name="Bob"></base> example </type>; trace(test.toString()); // <type name="Joe"> // <base name="Bob"/> // example // </type>
XML.hasSimpleContent()XML.hasComplexContent()XML.toXMLString()
toXMLString Возвращает строковое представление объекта XML.Строковое представление объекта XML. String Возвращает строковое представление объекта XML. В отличие от метода toString() метод toXMLString() всегда возвращает начальный тег, атрибуты и конечный тег объекта XML независимо от того, имеет ли объект XML простое или сложное содержимое. (Метод toString() приводит к удалению этих компонентов в объектах XML, имеющих простое содержимое.) В следующем примере показана разница между использованием метода toString() (который применяется ко всем параметрам метода trace() по умолчанию) и применением метода toXMLString(): var xml:XML = <p>hello</p>; trace(xml); // hello trace(xml.toXMLString()); // <p>hello</p> XML.toString()valueOf Возвращает объект XML.Элементарное значение экземпляра XML. XML Возвращает объект XML. В примере ниже видно, что значение, возвращаемое методом valueOf(), аналогично исходному объекту XML: var xml:XML = <p>hello</p>; trace(xml.valueOf() === xml); // true ignoreComments Определяет, будут ли игнорироваться XML-комментарии при анализе исходных XML-данных объектами XML.Boolean Определяет, будут ли игнорироваться XML-комментарии при анализе исходных XML-данных объектами XML. По умолчанию комментарии игнорируются (значение true). Чтобы включить XML-комментарии, установите для этого свойства значение false. Свойство ignoreComments используется только при разборе XML, а не во время вызова того или иного метода (например, myXMLObject.child(~~).toXMLString()). Если исходный XML включает узлы комментариев, они сохраняются или пропускаются при разборе XML. В этом примере показано, что происходит, если XML.ignoreComments присвоить значения false и true: XML.ignoreComments = false; var xml1:XML = <foo> <!-- comment --> </foo>; trace(xml1.toXMLString()); // <foo><!-- comment --></foo> XML.ignoreComments = true; var xml2:XML = <foo> <!-- example --> </foo>; trace(xml2.toXMLString()); // <foo/> XML.child()XML.toXMLString()ignoreProcessingInstructions Определяет, будут ли игнорироваться инструкции обработки XML при анализе исходных XML-данных объектами XML.Boolean Определяет, будут ли игнорироваться инструкции обработки XML при анализе исходных XML-данных объектами XML. По умолчанию инструкции обработки игнорируются (значение true). Чтобы включить инструкции обработки XML, установите для этого свойства значение false. Свойство ignoreProcessingInstructions используется только при разборе XML, а не во время вызова того или иного метода (например, myXMLObject.child(~~).toXMLString()). Если исходный XML включает узлы инструкций обработки, они сохраняются или пропускаются при разборе XML. В этом примере показано, что происходит, если XML.ignoreProcessingInstructions присвоить значения false и true: XML.ignoreProcessingInstructions = false; var xml1:XML = <foo> <?exampleInstruction ?> </foo>; trace(xml1.toXMLString()); // <foo><?exampleInstruction ?></foo> XML.ignoreProcessingInstructions = true; var xml2:XML = <foo> <?exampleInstruction ?> </foo>; trace(xml2.toXMLString()); // <foo/> XML.child()XML.toXMLString()ignoreWhitespace Определяет, будут ли игнорироваться при анализе разделители в начале и в конце текстовых узлов.Boolean Определяет, будут ли игнорироваться при анализе разделители в начале и в конце текстовых узлов. По умолчанию они игнорируются (значение true). Если текстовый узел на 100% состоит из разделителей, а свойству ignoreWhitespace присвоено значение true, то узел не создается. Чтобы показывать разделители в текстовом узле, присвойте свойству ignoreWhitespace значение false.

Когда создается объект XML, он кэширует текущее значение свойства ignoreWhitespace. Изменение значения ignoreWhitespace не приводит к изменению поведения существующих объектов XML.

В этом примере показано, что происходит, если XML.ignoreWhitespace присвоить значения false и true: XML.ignoreWhitespace = false; var xml1:XML = <foo> </foo>; trace(xml1.children().length()); // 1 XML.ignoreWhitespace = true; var xml2:XML = <foo> </foo>; trace(xml2.children().length()); // 0
prettyIndent Определяет размер отступа, создаваемого методами toString() и toXMLString(), когда для свойства XML.prettyPrinting выбрано значение true.int Определяет размер отступа, создаваемого методами toString() и toXMLString(), когда для свойства XML.prettyPrinting выбрано значение true. Отступ определяется символом пробела, а не табуляции. По умолчанию используется значение 2. В этом примере показан эффект параметра статического свойства XML.prettyIndent: var xml:XML = <foo><bar/></foo>; XML.prettyIndent = 0; trace(xml.toXMLString()); XML.prettyIndent = 1; trace(xml.toXMLString()); XML.prettyIndent = 2; trace(xml.toXMLString()); prettyPrintingtoString()toXMLString()prettyPrinting Определяет, будут ли методы toString() и toXMLString() выполнять нормализацию разделителей между некоторыми тегами.Boolean Определяет, будут ли методы toString() и toXMLString() выполнять нормализацию разделителей между некоторыми тегами. По умолчанию используется значение true. В этом примере показан эффект установки статического свойства XML.prettyPrinting: var xml:XML = <foo><bar/></foo>; XML.prettyPrinting = false; trace(xml.toXMLString()); XML.prettyPrinting = true; trace(xml.toXMLString()); prettyIndenttoString()toXMLString()
Array Создает новый массив.Массив нулевой или большей длины. ArrayargsНельзя передавать аргументы для пустого массива, один целочисленный аргумент для массива фиксированной длины или один объект для создания массива, содержащего один указанный объект. Создает новый массив. Массив может иметь нулевую или большую длину, или может быть заполнен одним указанным объектом.
  • Вызов функции Array() без аргументов возвращает пустой массив.
  • Вызов функции Array() с единственным целочисленным аргументом возвращает массив указанной длины, значения элементов которого, тем не менее, не определены.
  • При вызове функции Array() с указанным объектом возвращается массив с одним элементом указанного объекта.
Использование функции Array() похоже на создание массива с конструктором класса Array, но функция Array() допускает использование только одного или отсутствующего значения параметра. Нельзя использовать функцию Array() для заполнения нового массива несколькими значениями.

Примечание. При попытке использовать функцию Array() для создания нового массива и передаче нескольких значений в качестве параметров для заполнения массива появляется ошибка компилятора. Функция Array() допускает использование только одного параметра. Вместо этого используйте конструктор класса Array для создания и заполнения массива, содержащего несколько значений.

Функция Array() не приводит тип объекта массива. Воспользуйтесь оператором as для явного преобразования или приведения типов, когда аргумент не является элементарным значением. Дополнительную информацию см. в разделе «Пример» данной записи. Если объект передается в качестве параметра в функцию Array(), создается новый массив, содержащий объект в качестве элемента.

В следующем примере демонстрируется поведение функции Array() в том случае, если аргумент не является элементарным значением. Часто возникает ситуация, когда приведение типов к массиву состоит в преобразовании экземпляра Object, сохраняющего свои значения в формате массива. Если функция Array() вызывается с аргументом типа Object или любого другого типа данных, не относящихся к элементарным, ссылка на объект сохраняется в элементе нового массива. Иными словами, если единственный переданный аргумент является объектом, ссылка на этот объект становится первым элементом нового массива. var obj:Object = [ "a", "b", "c" ]; var newArray:Array = Array( obj ); trace(newArray == obj); // false trace(newArray[0] == obj); // true trace(newArray[0][0]) // a trace(newArray[0][1]) // b trace(newArray[0][2]) // c Чтобы привести тип obj к массиву, воспользуйтесь оператором as, который возвращает ссылку на массив, если obj является действительным массивом. В противном случае возвращается null: var obj:Object = [ "a", "b", "c" ]; var newArray:Array = obj as Array; trace(newArray == obj); // true trace(newArray[0]); // a trace(newArray[1]); // b trace(newArray[2]); // c
Класс ArrayОператор as
Boolean Преобразует параметр expression в логическое значение и возвращает его.Результат преобразования в логическое значение. BooleanexpressionObjectВыражение или объект, преобразуемые в логическое значение. Преобразует параметр expression в логическое значение и возвращает его.

Возвращаемое значение зависит от типа данных и значения аргумента (см. таблицу ниже):

Введенное значениеПримерВозвращаемое значение0Boolean(0)falseNaNBoolean(NaN)falseЧисло (не 0 или NaN)Boolean(4)trueПустая строкаBoolean("")falseНепустая строкаBoolean("6")truenullBoolean(null)falseundefinedBoolean(undefined)falseЭкземпляр класса ObjectBoolean(new Object())trueНет аргументаBoolean()false

В отличие от предыдущих версий ActionScript функция Boolean() возвращает те же результаты, что и конструктор класса Boolean.

Number Преобразует данное значение в значение Number.Преобразованное числовое значение NumberexpressionObjectЗначение, преобразуемое в число. Преобразует данное значение в значение Number. В таблице ниже приведены результаты при различных типах ввода. Тип/значение вводаПримерВозвращаемое значениеundefinedNumber(undefined)NaNnullNumber(null)0trueNumber(true)1falseNumber(false)0NaNNumber(NaN)NaNПустая строкаNumber("")0Строка, преобразуемая в значение NumberNumber("5")Число (например, 5)Строка, которая не преобразуется в значение NumberNumber("5a")NaN Object Все значения в ActionScript 3.0 являются объектами. Это означает, что при вызове метода Object() для значения возвращается данное значение.Значение, указанное параметром value. ObjectvalueObjectПреобразуемый объект или число, строка и логическое значение. Все значения в ActionScript 3.0 являются объектами. Это означает, что при вызове метода Object() для значения возвращается данное значение. String Возвращает строковое представление заданного параметра.Строковое представление значения, переданного для параметра expression. StringexpressionObject Выражение, преобразуемое в строку. Возвращает строковое представление заданного параметра.

В таблице ниже приведены результаты при различных типах ввода.

Тип/значение вводаВозвращаемое значениеundefinedundefinednull"null"true"true"false"false"NaN"NaN"StringStringObjectObject.toString()NumberСтроковое представление числа
Vector Создает новый экземпляр вектора, элементы которого являются экземплярами указанного типа данных.Если аргумент sourceArray содержит элемент, который невозможно преобразовать в указанный тип данных. TypeErrorTypeErrorЭкземпляр вектора, заполненный элементами массива sourceArray. sourceArrayObjectЭкземпляр Array или Vector, элементы которого становятся элементами итогового объекта Vector. Если аргумент — это экземпляр вектора, тип данных которого совпадает с указанным типом данных, этот аргумент возвращается в качестве результата функции. Создает новый экземпляр вектора, элементы которого являются экземплярами указанного типа данных. При вызове этой функции указывается тип данных для элементов итогового вектора (базового типа вектора) с помощью параметра типа. В этой функции используется тот же синтаксис, что и при объявлении экземпляра вектора или вызове конструктора new Vector.<T>(): var v:Vector.<String> = Vector.<String>(["Hello", "World"]);

Итоговый вектор заполняется значениями, указанными в элементах аргумента sourceArray. Если аргумент sourceArray уже является экземпляром Vector.<T>, где T это базовый тип, функция возвращает данный вектор. В противном случае итоговый вектор заполняется элементами массива или вектора, представленного аргументом sourceArray.

В любом случае тип данных всех элементов аргумента sourceArray должен совпадать с базовым типом T, который указан в вызове функции.

Если аргумент sourceArray имеет нулевое значение свойства length, функция возвращает пустой вектор.

Если вектор передан как аргумент sourceArray, а его базовый тип — не T, или если передан массив, и не все его элементы имеют тип данных T, выполняется попытка преобразовать значения в базовый тип. Если значения удается автоматически преобразовать, итоговый вектор содержит преобразованные значения. Если преобразование выполнить не удается, происходит ошибка.

Точно так же, если элемент в аргументе sourceArray является экземпляром подкласса базового типа T, вызов выполняется успешно, и элемент добавляется в итоговый вектор. Это происходит даже тогда, когда аргумент sourceArray является вектором, чей базовый тип является подклассом T. Фактически, только так можно преобразовать вектор с базовым типом T в вектор с базовым типом, который является суперклассом T.

Например, следующий код приводит к появлению ошибки компиляции в строгом режиме или ошибки TypeError во время выполнения, поскольку он пытается присвоить Vector.<Sprite> переменной Vector.<DisplayObject> (Sprite — это подкласс DisplayObject).

var v1:Vector.<Sprite> = new Vector.<Sprite>(); v1[0] = new Sprite(); var v2:Vector.<DisplayObject> = v1;

Следующая альтернативная версия кода приводит к успешному копированию элементов экземпляра Vector.<Sprite> в экземпляр Vector.<DisplayObject>.

var v1:Vector.<Sprite> = new Vector.<Sprite>(); v1[0] = new Sprite(); var v2:Vector.<DisplayObject> = Vector.<DisplayObject>(v1);
Класс Vector
XMLList Преобразует объект в объект XMLList.Объект XMLList, содержащий значения, которые записаны в преобразованном объекте. XMLListexpressionObjectОбъект, преобразуемый в объект XMLList Преобразует объект в объект XMLList.

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

Тип параметраВозвращаемое значениеBooleanЗначение сначала преобразуется в строку, а затем — в объект XMLList.NullПроисходит ошибка при выполнении (исключение TypeError).NumberЗначение сначала преобразуется в строку, а затем — в объект XMLList.ObjectПреобразование в XMLList выполняется только тогда, когда значение относится к типам String, Number или Boolean. В противном случае происходит ошибка при выполнении (исключение TypeError).StringЗначение преобразуется в объект XMLListНе определенПроисходит ошибка при выполнении (исключение TypeError).XMLЗначение преобразуется в объект XMLListXMLListВводимое значение возвращается без изменений.
XML()
XML Преобразует объект в объект XML.Объект XML, содержащий значения, которые записаны в преобразуемом объекте. XMLexpressionObjectОбъект, преобразуемый в формат XML. Преобразует объект в объект XML.

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

Тип параметраВозвращаемое значениеBooleanЗначение сначала преобразуется в строку, а затем — в объект XML.NullПроисходит ошибка при выполнении (исключение TypeError).NumberЗначение сначала преобразуется в строку, а затем — в объект XML.ObjectПреобразование в XML выполняется только тогда, когда значение относится к типам String, Number или Boolean. В противном случае происходит ошибка при выполнении (исключение TypeError).StringЗначение преобразуется в XML.Не определенПроисходит ошибка при выполнении (исключение TypeError).XMLВводимое значение возвращается без изменений.XMLListВозвращает объект XML только в том случае, если объект XMLList содержит только одно свойство типа XML. В противном случае происходит ошибка при выполнении (исключение TypeError).
XMLList()
decodeURIComponent Расшифровывает зашифрованный URI-компонент в строку.Строка, все символы в которой были ранее маскированы с помощью функции encodeURIComponent, восстанавливаются в немаскированном представлении. StringuriStringСтрока, закодированная с помощью функции encodeURIComponent. Расшифровывает зашифрованный URI-компонент в строку. Строка, все символы в которой были ранее маскированы с помощью функции encodeURIComponent, восстанавливается в немаскированном представлении.

Отличие этой функции от функции decodeURI() состоит в том, что она предназначена для использования только по отношению к части строки URI, которая называется компонентом URI. Компонент URI — это любой текст, который заключен между специальными символами, названными разделителями компонентов (: / ; ? ). Распространенные примеры компонентов URI: «http» и «www.adobe.com».

Другое важное различие между этой функцией и decodeURI() обусловлено предположением о том, что она обрабатывает компонент URI. При этом специальные символы разделителей (; / ? : @ & = + $ , #) рассматриваются в качестве обычного текста, который следует декодировать.

decodeURI()encodeURI()encodeURIComponent()
decodeURI Расшифровывает зашифрованный URI-адрес в строку.Строка, все символы в которой, ранее маскированные с помощью функции encodeURI, восстанавливаются в немаскированном представлении. StringuriStringСтрока, закодированная с помощью функции encodeURI. Расшифровывает зашифрованный URI-адрес в строку. Строка, все символы в которой были ранее закодированы с помощью функции encodeURI, восстанавливается и выводится в раскодированном представлении.

В следующей таблице показан набор управляющих последовательностей, которые не раскодируются в виде символов функцией decodeURI. Воспользуйтесь методом decodeURIComponent(), чтобы раскодировать управляющие последовательности в этой таблице.

Нераскодированные управляющие последовательностиЭквиваленты символов%23#%24$%26&%2B+%2C,%2F/%3A:%3B;%3D=%3F?%40@
package { import flash.display.Sprite; public class DecodeURIExample extends Sprite { public function DecodeURIExample() { var uri:String = "http://www.example.com/application.jsp?user=<user name='some user'></user>"; var encoded:String = encodeURI(uri); var decoded:String = decodeURI(encoded); trace(uri); // http://www.example.com/application.jsp?user=<user name='some user'></user> trace(encoded); // http://www.example.com/application.jsp?user=%3Cuser%20name='some%20user'%3E%3C/user%3E trace(decoded); // http://www.example.com/application.jsp?user=<user name='some user'></user> } } }
decodeURIComponent()encodeURI()encodeURIComponent()
encodeURIComponent Зашифровывает строку в допустимый URI-компонент.StringuriString Зашифровывает строку в допустимый URI-компонент. Преобразует подстроку URI-адреса в строку, в которой все символы кодируются в виде управляющих последовательностей UTF-8, если не принадлежат к очень ограниченному числу базисных символов.

Отличие функции encodeURIComponent() от функции encodeURI() состоит в том, что она предназначена для использования только по отношению к части строки URI, которая называется компонентом URI. Компонент URI — это любой текст, который заключен между специальными символами, названными разделителями компонентов (: / ; ? ). Распространенные примеры компонентов URI: «http» и «www.adobe.com».

Другое важное различие между этой функцией и encodeURI() обусловлено предположением о том, что она обрабатывает компонент URI. При этом специальные символы разделителей (; / ? : @ & = + $ , #) рассматриваются в качестве обычного текста, который следует закодировать.

В таблице ниже приведены все символы, которые не преобразуются в управляющие последовательности UTF-8 функцией encodeURIComponent.

Символы, которые не кодируются0 1 2 3 4 5 6 7 8 9a b c d e f g h i j k l m n o p q r s t u v w x y zA B C D E F G H I J K L M N O P Q R S T U V W X Y Z- _ . ! ~ ~~ ' ( )
decodeURI()decodeURIComponent()encodeURI()
encodeURI Зашифровывает строку в допустимый URI-адрес (унифицированный идентификатор ресурса).Строка, где определенные символы закодированы в виде управляющих последовательностей UTF-8. StringuriStringСтрока, представляющая весь URI-адрес. Зашифровывает строку в допустимый URI-адрес (унифицированный идентификатор ресурса). Преобразует полный URI-адрес в строку, в которой все символы имеют кодировку UTF-8, если не принадлежат к небольшой группе базисных символов.

В таблице ниже полностью приведен список базисных символов, которые не преобразуются в управляющие последовательности UTF-8 с помощью функции encodeURI.

Символы, которые не кодируются0 1 2 3 4 5 6 7 8 9a b c d e f g h i j k l m n o p q r s t u v w x y zA B C D E F G H I J K L M N O P Q R S T U V W X Y Z; / ? : @ & = + $ , #- _ . ! ~ ~~ ' ( )
package { import flash.display.Sprite; public class EncodeURIExample extends Sprite { public function EncodeURIExample() { var uri:String = "http://www.example.com/application.jsp?user=<user name='some user'></user>"; var encoded:String = encodeURI(uri); var decoded:String = decodeURI(encoded); trace(uri); // http://www.example.com/application.jsp?user=<user name='some user'></user> trace(encoded); // http://www.example.com/application.jsp?user=%3Cuser%20name='some%20user'%3E%3C/user%3E trace(decoded); // http://www.example.com/application.jsp?user=<user name='some user'></user> } } }
decodeURI()decodeURIComponent()encodeURIComponent()
escape Преобразует параметр в строку и кодирует ее в формат кодировки URL-адреса, где большинство символов, не являющихся алфавитно-цифровыми, заменяются шестнадцатеричными последовательностями %.Строка в кодировке URL-адреса StringstrStringВыражение, преобразуемое в строку с кодировкой URL-адреса. Преобразует параметр в строку и кодирует ее в формат кодировки URL-адреса, где большинство символов, не являющихся алфавитно-цифровыми, заменяются шестнадцатеричными последовательностями %. Когда в строке с кодировкой URL-адреса используется символ процента (%), он служит для включения управляющих символов и не эквивалентен оператору модуля (%).

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

Символы, которые не кодируются0 1 2 3 4 5 6 7 8 9a b c d e f g h i j k l m n o p q r s t u v w x y zA B C D E F G H I J K L M N O P Q R S T U V W X Y Z@ - _ . ~~ + /

Примечание. При кодировании используйте функцию encodeURIComponent() вместо функции escape() для обработки специальных символов разделителей (@ + /) как обычного текста.

unescape()encodeURIComponent()
int Преобразует данное числовое значение в целочисленное значение.Преобразованное целочисленное значение. intvalueNumberЗначение, которое необходимо преобразовать в целочисленное. Преобразует данное числовое значение в целочисленное значение. Десятичные значения усекаются до целых чисел. uint()isFinite Возвращает true, если значение является конечным числом, либо false, если значение является бесконечностью или минус бесконечностью.Возвращает true, если оно является конечным числом или false, если это бесконечность или минус бесконечность BooleannumNumberЧисло, оцениваемое как конечное или бесконечное. Возвращает true, если значение является конечным числом, либо false, если значение является Infinity или -Infinity. Присутствие Infinity или -Infinity указывает на возникновение математической ошибки (например, при попытке деления на ноль). isNaN Возвращает true, если значение относится к разряду NaN (нечисловое).Возвращает true при наличии значения NaN (нечисловое) и false в противном случае. BooleannumNumberОцениваемое числовое значение или математическое выражение. Возвращает true, если значение относится к разряду NaN (нечисловое). Функция isNaN() полезна при проверке успешности оценки математического выражения с помощью числа. Как правило, функция isNaN() используется для проверки значения, возвращенного функциями parseInt() и parseFloat(). Значение NaN — это специальный элемент типа данных Number, представляющий значение, которое «не является числом».

Примечание. Значение NaN не принадлежит типам данных int или uint.

В таблице ниже описаны значения, возвращаемые isNaN() при различных типах и значениях ввода. (Если для предупреждений компилятора задан «Строгий режим», некоторые из следующих операций вызовут появление предупреждений компилятора.)

Тип/значение вводаПримерВозвращаемое значение0, разделенный на 0isNaN(0/0)trueЧисло, отличное от ноля, разделенное на 0isNaN(5/0)falseКвадратный корень отрицательного числаisNaN(Math.sqrt(-1))trueАрксинус числа, которое больше 1 или меньше 0isNaN(Math.asin(2))trueСтрока, которую можно преобразовать в тип данных NumberisNaN("5")falseСтрока, которую невозможно преобразовать в тип данных NumberisNaN("5a")true
isXMLName Определяет, является ли заданная строка допустимым именем для элемента или атрибута XML.Возвращает true, если аргументом str является действительное имя XML. В противном случае возвращается false. BooleanstrStringОцениваемая строка. Определяет, является ли заданная строка допустимым именем для элемента или атрибута XML. parseFloat Преобразует строку в число с плавающей запятой.Число или значение NaN (нечисловое). NumberstrStringСтрока, которая считывается и преобразуется в число с плавающей запятой. Преобразует строку в число с плавающей запятой. Эта функция считывает или выполняет анализ чисел, которые возвращаются в виде строки до тех пор, пока не доходит до символа, который не входит в исходное число. Если строка не начинается с числа, которое можно проанализировать, parseFloat() возвращает значение NaN. Символ пробела, указанный перед допустимыми целыми числами, игнорируется так же, как и нечисловые символы после них. parseInt Преобразует строку в целое число.Число или значение NaN (нечисловое). NumberstrStringСтрока, преобразуемая в целое число. radixuint0Целое число, представляющее основание (базу) разбираемого числа. Допускаются значения от 2 до 36. Преобразует строку в целое число. Если указанную в параметрах строку не удается преобразовать в число, функция возвращает NaN. Строки, которые начинаются с 0x, считаются шестнадцатеричными числами. В отличие от предыдущих версий ActionScript целые числа, которые начинаются с 0 не рассматриваются в качестве восьмеричных. Для восьмеричных чисел указывается основание равное 8. Символы пробела и нули, стоящие перед целыми числами, игнорируются так же, как и нечисловые символы. trace Отображает выражения либо выполняет запись в файлы журнала во время отладки.argumentsОдно или несколько выражений для оценки, разделенных запятыми. Если указывается несколько выражений, между выводимыми выражениями вставляются пробелы. Отображает выражения либо выполняет запись в файлы журнала во время отладки. Единичная инструкция trace может поддерживать несколько аргументов. Если любой аргумент инструкции trace включает тип данных, отличающийся от String, функция trace вызывает связанный метод toString() для этого типа данных. Например, если аргумент — это логическое значение, функция trace вызывает метод Boolean.toString() и показывает возвращаемое значение. В следующем примере класс TraceExample используется для того, чтобы показать, как метод trace() можно использовать для печати простой строки. Обычно это сообщение выводится на печать с помощью консоли «Отладка». package { import flash.display.Sprite; public class TraceExample extends Sprite { public function TraceExample() { trace("Hello World"); } } } uint Преобразует данное числовое значение в целочисленное значение без знака.Преобразованное целочисленное значение. uintvalueNumberЗначение, которое необходимо преобразовать в целочисленное. Преобразует данное числовое значение в целочисленное значение без знака. Десятичные значения усекаются до целых чисел.

В таблице ниже описано значение, возвращаемое uint() при различных типах и значениях ввода.

Тип/значение вводаПримерВозвращаемое значениеundefineduint(undefined)0nulluint(null)00uint(0)0NaNuint(NaN)0Положительное число с плавающей запятойuint(5.31)Усеченное целое число без знака (например, 5)Отрицательное число с плавающей запятойuint(-5.78)Усекает целое число, а затем применяет правило для отрицательных целых чиселОтрицательное числоuint(-5)Сумма значения uint.MAX_VALUE и отрицательного целого числа (например, uint.MAX_VALUE + (-5))trueuint(true)1falseuint(false)0Пустая строкаuint("")0Строка, преобразуемая в значение Numberuint("5")ЧислоСтрока, которая не преобразуется в значение Numberuint("5a")0
int()
unescape Вычисляет параметр str как строку, раскодирует строку из формата кодировки URL (с преобразованием всех шестнадцатеричных последовательностей в символы ASCII) и возвращает строку.Строка, полученная в результате раскодирования параметра в кодировке URL-адреса. StringstrStringСтрока, где необходимо маскировать шестнадцатеричные последовательности. Вычисляет параметр str как строку, раскодирует строку из формата кодировки URL (с преобразованием всех шестнадцатеричных последовательностей в символы ASCII) и возвращает строку. -Infinity Специальное значение, представляющее минус бесконечность.Number Специальное значение, представляющее минус Infinity. Значение этой константы совпадает со значением Number.NEGATIVE_INFINITY. Результатом деления на 0 является -Infinity, но лишь тогда, когда делитель — отрицательное число. trace(0 / 0); // NaN trace(7 / 0); // Infinity trace(-7 / 0); // -Infinity Number.NEGATIVE_INFINITYInfinity Специальное значение, представляющее плюс бесконечность.Number Специальное значение, представляющее плюс Infinity. Значение этой константы совпадает со значением Number.POSITIVE_INFINITY. Результатом деления на 0 является Infinity, но лишь тогда, когда делитель — положительное число. trace(0 / 0); // NaN trace(7 / 0); // Infinity trace(-7 / 0); // -Infinity Number.POSITIVE_INFINITYNaN Специальный элемент типа Number, представляющий значение NaN (не число).Number Специальный элемент типа Number, представляющий значение «не число» (NaN). Когда результатом математического выражения является значение, которое невозможно представить в виде числа, ему присваивается обозначение NaN. В списке ниже описаны распространенные выражения, приводящие к появлению значения NaN.
  • В результате деления на 0 NaN указывается только тогда, когда делителем является также 0. Если делитель больше 0, результатом деления на 0 является Infinity. Если делитель меньше 0, результатом деления на 0 является -Infinity;
  • квадратный корень отрицательного числа;
  • арксинус числа за пределами действительного диапазона от 0 до 1;
  • Infinity, отнятая от Infinity;
  • Infinity или -Infinity, деленная на Infinity или -Infinity;
  • Infinity или -Infinity, умноженная на 0;

Значение NaN не принадлежит типам данных int или uint.

Значение NaN не считается равным какому-либо другому значению, включая NaN. По этой причине невозможно проверить с помощью оператора равенства, имеет ли выражение значение NaN. Чтобы определить, является ли число функцией NaN, воспользуйтесь функцией isNaN().

isNaN()Number.NaN
undefined Специальное значение, применяемое к неинициализированным переменным без типа или неинициализированным свойствам динамического объекта. Специальное значение, применяемое к неинициализированным переменным без типа или неинициализированным свойствам динамического объекта. В ActionScript 3.0 только переменные без определенного типа могут сохранять значение undefined в отличие от ActionScript 1.0 и ActionScript 2.0. Например, обе следующие переменные являются undefined, так как для них не определен тип, и они не инициализированы:
  • var foo;
  • var bar:~~;

Значение undefined применяется также к неинициализированным или неопределенным свойствам динамических объектов. Например, если в роли объекта выступает экземпляр класса Object, значением любого динамически добавленного свойства является undefined до тех пор, пока данному свойству не будет присвоено значение.

Если значение undefined используется в сочетании с разными функциями, результаты варьируют:

  • String(undefined) возвращает значение "undefined" (undefined преобразуется в строку).
  • Number(undefined) возвращает значение NaN.
  • int(undefined) и uint(undefined) возвращают 0.
  • Object(undefined) возвращает значение в виде нового экземпляра Object.
  • Если значение undefined присвоено переменной определенного типа, оно преобразуется в значение по умолчанию для этого типа данных.

Не путайте значения undefined и null. Если значения null и undefined сравниваются с оператором равенства (==), они считаются равными. Однако когда значения null и undefined сравниваются с оператором строгого равенства (===), они не рассматриваются как равные.

В следующем примере объявляется, но не инициализируется переменная без типа myVar. Переменная myVar принимает значение undefined, так как не относится к какому-либо типу. Это происходит, когда эта переменная не имеет аннотации с указанием типа или снабжена специальной аннотацией (~~) об отсутствии типа (var myVar:~~;). // trace value of untyped and uninitialized variable var myVar; trace(myVar); // undefined То же самое правило применяется к неинициализированным свойствам динамического объекта. Например, если имеется экземпляр obj динамического класса A, неинициализированному свойству obj.propName экземпляра obj присваивается значение undefined. dynamic class A {} var obj:A = new A() // trace undefined property of obj trace(obj.propName); // undefined
null
uint В классе uint предусмотрены методы для работы с типом данных, представляющим 32-разрядное число без знака.Object В классе uint предусмотрены методы для работы с типом данных, представляющим 32-разрядное число без знака. Поскольку целое число без знака может быть только положительным, его максимальное значение вдвое превышает максимальное значение класса int.

Диапазон значений представленных классом uint составляет от 0 до 4294967295 (2 в степени 32 - 1).

Объект uint можно создать, объявив переменную типа uint и присвоив ей литеральное значение. Значение по умолчанию переменной типа uint составляет 0.

Класс uint в основном используется для значений цветов пикселей (ARGB и RGBA) и других ситуаций, когда данные типа int неэффективны. Например, число 0xFFFFFFFF, представляющее собой значение белого цвета со значением альфа, которое равно 255, не может выражаться данными типа int, потому что оно не находится в действительном диапазоне значений int.

В следующем примере создается объект uint и вызывается метод toString():

 var myuint:uint = 1234;
 trace(myuint.toString()); // 1234
 

В следующем примере значение свойства MIN_VALUE присваивается переменной без использования конструктора:

 var smallest:uint = uint.MIN_VALUE;
 trace(smallest.toString()); // 0
 
В следующем примере объявляется значение uint i в цикле for, который выводит на печать цифры от 0 до 9 (поскольку значение uint по умолчанию равно 0). package { import flash.display.Sprite; public class UintExample extends Sprite { public function UintExample() { for(var i:uint; i < 10; i++) { trace(i); } } } }
intNumberuint Создает новый объект uint.numObjectЧисловое значение создаваемого объекта uint или значение, которое должно быть преобразовано в число. Если значение num не указано, значение по умолчанию равно 0. Создает новый объект uint. Можно создать переменную типа uint и присвоить ей значение литерала. Конструктор new uint() используется в основном в качестве заполнителя. Объект uint не аналогичен функции uint(), которая преобразует параметр в элементарное значение. Следующий код приводит к созданию двух новых объектов uint; первый создается путем присвоения литерального значения, а второй — путем использования функции конструктора:
	 var n1:uint = 3;
	 var n2:uint = new uint(10);
	 
toExponential Возвращает экспоненциальное строковое представление числа.Выдает исключение, если аргумент fractionDigits выходит за пределы диапазона от 0 до 20. RangeErrorRangeErrorStringfractionDigitsuintЦелое число от 0 до 20 включительно, которое соответствует необходимому количеству регистров после запятой. Возвращает экспоненциальное строковое представление числа. Строка содержит одну цифру перед запятой и до 20 цифр после запятой, как указано в параметре fractionDigits. В следующем примере показано, как toExponential(2) возвращает строку в экспоненциальном представлении. var num:Number = 315003; trace(num.toExponential(2)); // 3.15e+5 toFixed Возвращает строковое представление числа в нотации с фиксированной запятой.Выдает исключение, если аргумент fractionDigits выходит за пределы диапазона от 0 до 20. RangeErrorRangeErrorStringfractionDigitsuintЦелое число от 0 до 20 включительно, которое соответствует необходимому количеству регистров после запятой. Возвращает строковое представление числа в нотации с фиксированной запятой. Представление с фиксированной запятой означает, что строка будет содержать определенное количество цифр после запятой, исходя из значения параметра fractionDigits. Действительный диапазон параметра fractionDigits составляет от 0 до 20. Выбор значения за пределами этого диапазона приводит к созданию исключения. В следующем примере показано, как toFixed(3) возвращает строку, которая округляется до трех цифр после запятой. var num:Number = 7.31343; trace(num.toFixed(3)); // 7.313 В следующем примере показано, как toFixed(2) возвращает строку, добавляющую в конце нули. var num:Number = 4; trace(num.toFixed(2)); // 4.00 toPrecision Возвращает строковое представление числа в нотации с фиксированной запятой либо в экспоненциальной нотации.Выдает исключение, если аргумент precision выходит за пределы диапазона от 1 до 21. RangeErrorRangeErrorStringprecisionuintЦелое число от 1 до 21 включительно, которое представляет необходимое количество цифр в строке результатов. Возвращает строковое представление числа в нотации с фиксированной запятой либо в экспоненциальной нотации. Строка будет содержать количество цифр, указанное в параметре precision. В следующем примере показано, как toPrecision(3) возвращает строку только с тремя цифрами. Эта строка представлена в нотации с фиксированной запятой, поскольку экспоненциальная нотация не требуется. var num:Number = 31.570; trace(num.toPrecision(3)); // 31.6 В следующем примере показано, как toPrecision(3) возвращает строку только с тремя цифрами. Строка представлена в экспоненциальной нотации, поскольку итоговое число не содержит достаточно цифр для нотации с фиксированной запятой. var num:Number = 4000; trace(num.toPrecision(3)); // 4.00e+3 toString Возвращает строковое представление объекта uint.Строковое представление объекта uint. StringradixuintУказывает числовую основу (от 2 до 36), используемую при преобразовании чисел в строку. Если параметр radix не указан, значение по умолчанию равно 10. Возвращает строковое представление объекта uint. В следующем примере для параметров radix выбраны значения 2 и 8. При этом возвращается строковое значение с соответствующим представлением цифры 9:
	 var myuint:uint = 9;
	 trace(myuint.toString(2)); // 1001
	 trace(myuint.toString(8)); // 11
	 
В примере ниже создаются шестнадцатеричные значения:
	 var r:uint = 250;
	 var g:uint = 128;
	 var b:uint = 114;
	 var rgb:String = "0x" + r.toString(16) + g.toString(16) + b.toString(16);
	 trace(rgb); // 0xfa8072 
	 
valueOf Возвращает элементарное значение типа uint для заданного объекта uint.Элементарное значение типа uint объекта uint. uint Возвращает элементарное значение типа uint для заданного объекта uint. В следующем примере указано элементарное значение объекта numSocks.
	 var numSocks:uint = 2;
	 trace(numSocks.valueOf()); // 2
	 
MAX_VALUE Наибольшее представимое 32-разрядное целое число без знака, а именно 4 294 967 295.4294967295uint Наибольшее представимое 32-разрядное целое число без знака, а именно 4 294 967 295. Следующий ActionScript показывает самое большое и самое маленькое представимое значение uint:
	trace("uint.MIN_VALUE = " + uint.MIN_VALUE);
	trace("uint.MAX_VALUE = " + uint.MAX_VALUE);
	

Имеются следующие значения:

	uint.MIN_VALUE = 0
	uint.MAX_VALUE = 4294967295
	
MIN_VALUE Наименьшее представимое целое число без знака, а именно 0.0uint Наименьшее представимое целое число без знака, а именно 0. Следующий ActionScript показывает самое большое и самое маленькое представимое значение uint:
	 trace("uint.MIN_VALUE = " + uint.MIN_VALUE);
	 trace("uint.MAX_VALUE = " + uint.MAX_VALUE);
	 

Имеются следующие значения:

	 uint.MIN_VALUE = 0
	 uint.MAX_VALUE = 4294967295
	 
Vector Класс Vector позволяет вызвать и обработать вектор &#8212, массив, элементы которого относятся к одному и тому же типу.Позволяет определять векторы (массивы однотипных данных) Object Класс Vector позволяет открывать и манипулировать векторами (массивами, все элементы которых относятся к одному и тому же типу). Тип данных элементов Vector известен как базовый тип Vector. Базовый тип может принадлежать любому классу, включая встроенные и пользовательские классы. Базовый тип указывается при объявлении переменной Vector, а также при создании экземпляра путем вызова конструктора класса.

Как и в случае с объектом Array, можно использовать оператор доступа к массиву ([]), чтобы задать или определить значение элемента Vector. Несколько методов вектора также имеют механизмы присвоения и определения значений переменных. В их число среди прочих входят методы push(), pop(), shift(), unshift(). Свойства и методы объекта Vector подобны (и в большинстве случаев идентичны) свойствам и методам объекта Array. В большинстве случаев, когда используется объект Array, все элементы которого относятся к одному и тому же типу данных, предпочтительным является экземпляр Vector. Однако экземпляры Vector являются плотными массивами, то есть они должны иметь значение (или null) в каждом индексе. У экземпляров Array нет такого ограничения.

Базовый тип вектора указывается с помощью постфиксного синтаксиса параметров. Синтаксис параметра типа представляет собой последовательность, состоящую из точки (.), открывающей угловой скобки (<), имени класса и закрывающей угловой скобки (>), как показано в примере:

В первой строке примера переменная v объявлена как экземпляр Vector.<String>. Другими словами, он представляет вектор (массив), который может содержать лишь экземпляры String и из которого можно извлечь только них. Вторая строка создает экземпляр того же типа вектора (вектор, все элементы которого являются объектами String) и присваивает его v.

var v:Vector.<String>; v = new Vector.<String>();

Переменная, объявленная вместе с типом данных Vector. <T>, может хранить экземпляр Vector только в том случае, если он создан с идентичным базовым типом T. Например, вектор, созданный путем вызова метода new Vector. <String>() нельзя присвоить переменной, которая объявлена с типом данных Vector.<int>. Базовые типы должны быть полностью идентичны. Например, следующий код не компилируется, поскольку базовый тип объекта отличается от базового типа, объявленного для переменной (несмотря на то, что Sprite — подкласс класса DisplayObject):

// This code doesn't compile even though Sprite is a DisplayObject subclass var v:Vector.<DisplayObject> = new Vector.<Sprite>();

Чтобы преобразовать вектор с базовым типом T в вектор суперкласса T, воспользуйтесь глобальной функцией Vector().

Помимо ограничения, связанного с типом данных, класс Vector имеет другие ограничения, которые отличают его от класса Array:

  • Вектор принадлежит к числу плотных массивов. В отличие от объекта Array, который может иметь значения с индексами 0 и 7 даже в том случае, когда на позициях с 1 по 6 значений нет, Vector должен иметь значения (или значение null) на каждой позиции индекса.
  • Вектор может иметь фиксированную длину. Это означает, что число содержащихся в нем элементов не может изменяться.
  • Доступ к элементам вектора осуществляется с контролем границ. Вам никогда не удастся прочесть значение с индексом, превышающим индекс финального элемента (length - 1). Вам также не удастся задать значение, индекс которого превышает текущий последний индекс (иначе говоря, значение можно присваивать только с существующим индексом или с индексом [length]).

В результате этих ограничений экземпляр Vector имеет три основных преимущества перед экземпляром Array, все элементы которого представляют собой экземпляры одного класса:

  • Производительность: доступ к массиву и итерация осуществляются гораздо быстрее при использовании экземпляра Vector, чем при использовании экземпляра Array.
  • Безопасность типа: в строгом режиме компилятор может выявлять ошибки, связанные с типом данных. К ошибкам типа данных относится присвоение экземпляру Vector значения неверного типа данных или попытка получить неверный тип данных при считывании значения из объекта Vector. Однако следует учесть, что при использовании метода push() или unshift() для добавления значений в экземпляр Vector типы данных для аргументов не проверяются во время компиляции. Вместо этого они проверяются во время выполнения.
  • Надежность: проверка диапазона во время выполнения (или проверка фиксированной длины) значительно увеличивает надежность по сравнению с экземплярам Array.
[] array accessГлобальная функция Vector() Класс ArrayVector Создает вектор с указанным базовым типом.lengthuint0Исходная длина (число элементов) вектора. Если этот параметр больше нуля, создается указанное число элементов вектора со значениями по умолчанию для данного базового типа (для ссылочных типов — null). fixedBooleanfalseНезависимо от того, фиксированная ли длина вектора (true) или ее можно изменять (false). Значение также можно задать с помощью свойства fixed. Создает вектор с указанным базовым типом.

При вызове конструктора Vector.<T>() укажите базовый тип с помощью синтаксиса параметра типа. Синтаксис параметра типа представляет собой последовательность, состоящую из точки (.), открывающей угловой скобки (<), имени класса и закрывающей угловой скобки (>), как показано в примере:

var v:Vector.<String> = new Vector.<String>();

Чтобы создать экземпляр Vector на основе экземпляра Array или другого экземпляра Vector (который, например, имеет другой базовый тип), воспользуйтесь глобальной функцией Vector().

Чтобы создать предварительно заполненный экземпляр Vector, используйте следующий синтаксис вместо перечисленных ниже параметров.

// var v:Vector.<T> = new <T>[E0, ..., En-1 ,]; // For example: var v:Vector.<int> = new <int>[0,1,2,];

К данному синтаксису относится следующая информация.

  • Это поддерживается во Flash Professional CS5, Flash Builder 4 и Flex 4, а также в более поздних версиях этих приложений.
  • Запятую в конце ставить не обязательно.
  • Пустые элементы в массиве не поддерживаются; инструкция, такая как var v:Vector.<int> = new <int>[0,,2,] выдает ошибку компилятора.
  • Для экземпляра Vector нельзя задать длину по умолчанию. Его длина равна числу элементов в списке инициализации.
  • Для экземпляра Vector нельзя задать фиксированную длину. Вместо этого следует использовать свойство fixed.
  • Использование значений, не соответствующих заданному типу, может привести к ошибкам или потере данных. Например:
  • var v:Vector.<int> = new <int>[4.2]; // compiler error when running in strict mode trace(v[0]); //returns 4 when not running in strict mode

fixedГлобальная функция Vector()
concat Указанные в параметрах элементы сцепляются с элементами в векторе, и создается новый вектор.Если какой-либо аргумент не является экземпляром базового типа, и его невозможно преобразовать в базовый тип. TypeErrorTypeErrorВектор с тем же базовым типом, что и данный вектор, содержащий элементы данного вектора, вслед за которыми указываются элементы из параметров. argsОдно или несколько значений базового типа данного вектора Vector, которые сцепляются с новым вектором Vector. Сцепляет элементы, заданные в параметрах. Указанные в параметрах элементы сцепляются с элементами в векторе, и создается новый вектор. Если параметры задают Vector, его элементы сцепляются. Если параметры не передаются, новый экземпляр Vector дублирует исходный Vector (как поверхностный клон). every Выполняет тестовую функцию для каждого элемента вектора, пока не будет достигнут элемент, возвращающий значение false для заданной функции.Логическое значение true, если указанная функция возвращает true при вызове по отношению ко всем элементам вектора. В противном случае возвращается false. BooleancallbackFunctionФункция, выполняемая с каждым элементом вектора. Эта функция вызывается с тремя аргументами: текущим элементом из вектора, индексом элемента и объектом Vector.
function callback(item:T, index:int, vector:Vector.<T>):Boolean {
       // your code here
    }
    

Функция обратного вызова должна возвращать логическое значение.

thisObjectObjectnullОбъект, к которому относится идентификатор this в функции обратного вызова при ее вызове.
Выполняет тестовую функцию для каждого элемента вектора, пока не будет достигнут элемент, возвращающий значение false для заданной функции. Этот метод используется для того, чтобы определить, все ли элементы вектора соответствуют критерию (например, их значения должны быть меньше определенного числа).

Второй параметр этого метода, thisObject, должен иметь значение null, если первый параметр, callback, завершает метод. Чаще всего данный метод используется именно так.

Однако предположим, что вы создаете функцию для кадра на основной временной шкале с помощью Flash Professional, но хотите, чтобы она вызывалась в другом контексте this:

    function myFunction(item:T, index:int, vector:Vector.<T>):Boolean {
       // your code here
    }
    

Допустим, что используется метод every() по отношению к вектору myVector:

    myVector.every(myFunction, someObject);
    

Поскольку функция myFunction принадлежит к основному классу этого SWF-файла, ее нельзя выполнить с другим контекстом this. Среды выполнения Flash выдают исключение при выполнении этого кода. Этой ошибки при выполнении можно избежать, присвоив функцию переменной следующим образом:

    var myFunction:Function = function(item:T, index:int, vector:Vector.<T>):Boolean {
        //your code here
    };
    myVector.every(myFunction, someObject);
    
Vector.some()
filter Выполняет тестовую функцию для каждого элемента вектора и формирует новый вектор из всех элементов, возвращающих значение true для заданной функции.Новый вектор, содержащий все элементы исходного вектора, для которого функция callback возвратила значение true. callbackFunctionФункция, выполняемая с каждым элементом вектора. Эта функция вызывается с тремя аргументами: текущим элементом из вектора, индексом элемента и объектом Vector.
function callback(item:T, index:int, vector:Vector.<T>):Boolean;
thisObjectObjectnullОбъект, к которому относится идентификатор this в функции обратного вызова при ее вызове.
Выполняет тестовую функцию для каждого элемента вектора и формирует новый вектор из всех элементов, возвращающих значение true для заданной функции. Если элемент возвращает значение false, он не включается в получившийся вектор. Базовый тип возвращаемого вектора совпадает с базовым типом вектора, по которому вызывается метод.

Второй параметр этого метода, thisObject, должен иметь значение null, если первый параметр, callback, завершает метод. Чаще всего данный метод используется именно так.

Однако предположим, что вы создаете функцию для кадра на основной временной шкале с помощью Flash Professional, но хотите, чтобы она вызывалась в другом контексте this:

     function myFunction(item:T, index:int, vector:Vector.<T>):Boolean {
        // your code here
     }
     

Допустим, что используется метод filter() по отношению к вектору myVector:

     var result:Vector.<T> = myVector.filter(myFunction, someObject);
     

Поскольку функция myFunction принадлежит к основному классу этого SWF-файла, ее нельзя выполнить с другим контекстом this. Среды выполнения Flash выдают исключение при выполнении этого кода. Этой ошибки при выполнении можно избежать, присвоив функцию переменной следующим образом:

     var myFunction:Function = function(item:T, index:int, vector:Vector.<T>):Boolean {
         //your code here
     };
     myVector.filter(myFunction, someObject);
     
Vector.map()
forEach Выполняет функцию для каждого элемента вектора.callbackFunctionФункция, выполняемая с каждым элементом вектора. Эта функция вызывается с тремя аргументами: текущим элементом из вектора, индексом элемента и объектом Vector.
function callback(item:T, index:int, vector:Vector.<T>):void;

Любое возвращаемое в результате вызова функции значение пропускается.

thisObjectObjectnullОбъект, к которому относится идентификатор this в функции обратного вызова при ее вызове.
Выполняет функцию для каждого элемента вектора.

Второй параметр этого метода, thisObject, должен иметь значение null, если первый параметр, callback, завершает метод. Чаще всего данный метод используется именно так.

Однако предположим, что вы создаете функцию для кадра на основной временной шкале с помощью Flash Professional, но хотите, чтобы она вызывалась в другом контексте this:

     function myFunction(item:T, index:int, vector:Vector.<T>):void {
        // your code here
     }
     

Допустим, что используется метод forEach() по отношению к вектору myVector:

     myVector.forEach(myFunction, someObject);
     

Поскольку функция myFunction принадлежит к основному классу этого SWF-файла, ее нельзя выполнить с другим контекстом this. Среды выполнения Flash выдают исключение при выполнении этого кода. Этой ошибки при выполнении можно избежать, присвоив функцию переменной следующим образом:

     var myFunction:Function = function(item:T, index:int, vector:Vector.<T>):void {
         //your code here
     };
     myVector.forEach(myFunction, someObject);
     
indexOf Выполняет поиск элемента в векторе и возвращает позицию индекса элемента.Позиция индекса, начинающегося с нуля, для элемента вектора. Если аргумент searchElement не найден, возвращается значение «-1». intsearchElementЭлемент, который нужно найти в векторе. fromIndexint0Место в векторе, с которого начинается поиск элемента. Если этот параметр имеет отрицательное значение, он воспринимается как length + fromIndex. Это означает, что поиск начинается с -fromIndex элементов с конца и продолжается с этой позиции вплоть до конца вектора. Выполняет поиск элемента в векторе и возвращает позицию индекса элемента. Этот элемент сравнивается с элементами вектора с помощью строгого равенства (===). Vector.lastIndexOf()=== (строгое равенство)join Преобразует элементы вектора в строки, вставляет указанный разделитель между элементами, сцепляет их и возвращает получившуюся строку.Строка, состоящая из элементов вектора, преобразованных в строки и разделенных указанной строкой. StringsepString,Символ или строка, которые разделяют элементы вектора в возвращенной строке. Если этот параметр пропустить, в качестве разделителя по умолчанию используется запятая. Преобразует элементы вектора в строки. Преобразует элементы вектора в строки, вставляет указанный разделитель между элементами, сцепляет их и возвращает получившуюся строку. Вложенный вектор всегда разделяется запятой (,), а не разделителем, переданным методу join(). String.split()lastIndexOf Поиск элемента в векторе, выполняемый в обратном направлении от указанной позиции индекса, и возврат позиции индекса совпадающего элемента.Позиция индекса, начинающегося с нуля, для элемента вектора. Если аргумент searchElement не найден, возвращается значение «-1». intsearchElementЭлемент, который нужно найти в векторе. fromIndexint0x7fffffffМесто в векторе, с которого начинается поиск элемента. Значением по умолчанию является максимально разрешенное значение индекса, что означает, что поиск начинается с последнего элемента вектора.

Если этот параметр имеет отрицательное значение, он воспринимается как length + fromIndex. При этом поиск начинается с -fromIndex элементов с конца и выполняется с этой позиции в обратном направлении до индекса 0.

Поиск элемента в векторе, выполняемый в обратном направлении от указанной позиции индекса, и возврат позиции индекса совпадающего элемента. Этот элемент сравнивается с элементами вектора с помощью строгого равенства (===).
Vector.indexOf()=== (строгое равенство)
map Выполняет функцию, относящуюся к каждому элементу вектора, и возвращает новый вектор, состоящий из элементов, соответствующих результатам вызова функции, которая выполняется для каждого элемента данного вектора.Новый вектор, который содержит результаты вызова функции для каждого элемента данного вектора. Итоговый вектор имеет тот же базовый тип и length, что и исходный. callbackFunctionФункция, выполняемая с каждым элементом вектора. Эта функция вызывается с тремя аргументами: текущим элементом из вектора, индексом элемента и объектом Vector.
function callback(item:T, index:int, vector:Vector.<T>):T;
thisObjectObjectnullОбъект, к которому относится идентификатор this в функции обратного вызова при ее вызове.
Выполняет функцию, относящуюся к каждому элементу вектора, и возвращает новый вектор, состоящий из элементов, соответствующих результатам вызова функции, которая выполняется для каждого элемента данного вектора. Итоговый вектор имеет тот же базовый тип и length, что и исходный. Элемент с индексом i в получаемом векторе является результатом вызова элемента с индексом i в исходном векторе.

Второй параметр этого метода, thisObject, должен иметь значение null, если первый параметр, callback, завершает метод. Чаще всего данный метод используется именно так.

Однако предположим, что вы создаете функцию для кадра на основной временной шкале с помощью Flash Professional, но хотите, чтобы она вызывалась в другом контексте this:

     function myFunction(item:Object, index:int, vector:Vector.<T>):T {
        // your code here
     }
     

Допустим, что используется метод map() по отношению к вектору myVector:

     myVector.map(myFunction, someObject);
     

Поскольку функция myFunction принадлежит к основному классу этого SWF-файла, ее нельзя выполнить с другим контекстом this. Среды выполнения Flash выдают исключение при выполнении этого кода. Этой ошибки при выполнении можно избежать, присвоив функцию переменной следующим образом:

     var myFunction:Function = function(item:T, index:int, vector:Vector.<T>):void {
         //your code here
     };
     myVector.map(myFunction, someObject);
     
Vector.filter()
pop Удаляет последний элемент из вектора и возвращает его.Если метод вызывается при значении true параметра fixed. RangeErrorRangeErrorЗначение последнего элемента в указанном векторе. Удаляет последний элемент из вектора и возвращает его. Значение свойства length этого вектора уменьшается на 1 при вызове этой функции. Vector.push()Vector.shift()Vector.unshift()push Добавляет один или несколько элементов в конец вектора и возвращает новую длину вектора.Если какой-либо аргумент не является экземпляром базового типа T вектора. TypeErrorTypeErrorЕсли метод вызывается при значении true параметра fixed. RangeErrorRangeErrorДлина вектора после добавления новых элементов. uintargsОдно или несколько значений, добавляемых в вектор. Добавляет один или несколько элементов в конец вектора и возвращает новую длину вектора.

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

Vector.pop()Vector.shift()Vector.unshift()
reverse Меняет порядок элементов вектора на обратный.Вектор, элементы которого представлены в обратном порядке. Меняет порядок элементов вектора на обратный. Этот метод изменяет вектор, для которого он вызывается. shift Удаляет последний элемент из вектора и возвращает этот элемент.Если fixed принимает значение true. RangeErrorRangeErrorПервый элемент вектора. Удаляет последний элемент из вектора и возвращает этот элемент. Оставшиеся элементы вектора перемещаются с исходной позиции «i» на позицию «i-1». Vector.pop()Vector.push()Vector.unshift()slice Возвращает новый вектор, состоящий из диапазона элементов исходного вектора, не модифицируя исходный вектор.Вектор, состоящий из диапазона элементов исходного вектора. startIndexint0Число, указывающее на индекс начальной позиции среза. Если startIndex — отрицательное число, начальной позицией становится конец вектора, последнему элементу которого присваивается позиция «-1». endIndexint16777215Число, указывающее на индекс конечной позиции среза. Если этот параметр пропустить, срез включает все элементы от начальной позиции до конца вектора. Если endIndex — отрицательное число, конечная позиция указывается с конца вектора, последнему элементу которого присваивается позиция «-1». Возвращает новый вектор, состоящий из диапазона элементов исходного вектора. Возвращает новый вектор, состоящий из диапазона элементов исходного вектора, не модифицируя исходный вектор. Возвращенный вектор включает элемент startIndex и все элементы вплоть до него, исключая элемент endIndex.

Если параметры не передаются, новый экземпляр Vector дублирует исходный Vector (как поверхностный клон). Если для обоих параметров передано значение 0, создается новый пустой экземпляр Vector того же типа, что и исходный массив Vector.

some Выполняет тестовую функцию для каждого элемента вектора, пока не будет достигнут элемент, возвращающий значение true.Логическое значение true присваивается, если какие-либо элементы в векторе возвращают значение true для указанной функции; в противном случае присваивается значение false. BooleancallbackFunctionФункция, выполняемая с каждым элементом вектора. Эта функция вызывается с тремя аргументами: текущим элементом из вектора, индексом элемента и объектом Vector.
function callback(item:T, index:int, vector:Vector.<T>):Boolean

Функция обратного вызова должна возвращать логическое значение.

thisObjectObjectnullОбъект, к которому относится идентификатор this в функции обратного вызова при ее вызове.
Выполняет тестовую функцию для каждого элемента вектора, пока не будет достигнут элемент, возвращающий значение true. Этот метод используется для того, чтобы определить, все ли элементы вектора соответствуют критерию (например, их значения должны быть меньше определенного числа).

Второй параметр этого метода, thisObject, должен иметь значение null, если первый параметр, callback, завершает метод. Чаще всего данный метод используется именно так.

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

     function myFunction(item:Object, index:int, vector:Vector.<T>):Boolean {
        // your code here
     }
     

Допустим, что используется метод some() по отношению к вектору myVector:

     myVector.some(myFunction, someObject);
     

Поскольку функция myFunction принадлежит к основному классу этого SWF-файла, ее нельзя выполнить с другим контекстом this. Среды выполнения Flash выдают исключение при выполнении этого кода. Этой ошибки при выполнении можно избежать, присвоив функцию переменной следующим образом:

     var myFunction:Function = function(item:T, index:int, vector:Vector.<T>):Boolean {
         //your code here
     };
     myVector.some(myFunction, someObject);
     
every()
sort Сортирует элементы вектора.Этот вектор, элементы которого расположены в новом порядке. compareFunctionFunctionМетод сравнения, определяющий поведение при сортировке.

Указанный метод должен взять два аргумента базового типа (T) вектора и возвратить число:

function compare(x:T, y:T):Number {}

Логика функции compareFunction такова, что при наличии двух элементов x и y функция возвращает одно из следующих трех значений:

  • отрицательное число, если x стоит перед y после сортировки;
  • 0, если x равно y;
  • положительное число, если элемент x должен следовать за y в отсортированной последовательности.
Сортирует элементы вектора. Этот метод выполняет сортировку согласно функции, которая указана в параметре compareFunction.
splice Добавляет и удаляет элементы из вектора.Если аргументы startIndex и deleteCount указывают подлежащий удалению индекс, который находится за границами вектора. RangeErrorRangeErrorЕсли этот метод вызывается, когда свойству fixed присвоено значение true, а операция splice() приводит к изменению length вектора. RangeErrorRangeErrorВектор, содержащий элементы, удаленные из исходного вектора. startIndexintЦелое число, указывающее индекс элемента в векторе, откуда начинается вставка или удаление. Чтобы указать позицию относительно конца вектора, можно использовать отрицательное число (например, «-1» — это последний элемент вектора). deleteCountuint4294967295Целое число, указывающее количество удаляемых элементов. Это число включает элемент, указанный в параметре startIndex. Если значение параметра deleteCount не указано, метод удаляет все значения, начиная с элемента startIndex до последнего элемента в векторе. (По умолчанию используется значение uint.MAX_VALUE.) Если значение равно 0, элементы не удаляются. itemsНеобязательный список, состоящий из одного или нескольких значений, разделенных запятыми, которые вставляется в вектор на позиции, указанной параметром startIndex. Добавляет и удаляет элементы из вектора. Этот метод изменяет вектор, не создавая копии.

Примечание. Чтобы переопределить этот метод в подклассе Vector, укажите для параметров значение ...args как показано в примере:

     public override function splice(...args) {
       // your statements here
     }
     
toLocaleString Возвращает строку, представляющую элементы указанного вектора.Строка с элементами вектора. String Возвращает строку, представляющую элементы указанного вектора. Каждый элемент в векторе, начиная с индекса 0 и заканчивая наибольшим индексом, преобразуется в сцепленную строку, разделенную запятыми. В рамках ActionScript 3.0 этот метод возвращает то же значение, что и метод Vector.toString(). Vector.toString()toString Возвращает строку, представляющую элементы вектора.Строка с элементами вектора. String Возвращает строку, представляющую элементы вектора. Каждый элемент в векторе, начиная с индекса 0 и заканчивая наибольшим индексом, преобразуется в сцепленную строку, разделенную запятыми. Чтобы указать пользовательский разделитель, примените метод Vector.join(). String.split()Vector.join()unshift Добавляет один или несколько элементов в начало вектора и возвращает новую длину вектора.Если какой-либо аргумент не является экземпляром базового типа T вектора. TypeErrorTypeErrorЕсли метод вызывается при значении true параметра fixed. RangeErrorRangeErrorЦелое число, выражающее новую длину вектора. uintargsОдин или несколько экземпляров базового типа вектора, которые вставляются в начало вектора. Добавляет один или несколько элементов в начало вектора и возвращает новую длину вектора. Другие элементы вектора перемещаются с исходной позиции (i) на позицию (i + количество новых элементов).

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

Vector.pop()Vector.push()Vector.shift()
fixed Указывает, можно ли изменить свойство length вектора.Boolean Указывает, можно ли изменить свойство length вектора. Если присвоено значение true, свойство length невозможно изменить. Это означает, что если свойству fixed присвоено значение true, следующие операции не разрешены:
  • установка свойства length напрямую;
  • присвоение значения позиции индекса length;
  • вызов метода, изменяющего свойство length, включая
    • pop(),
    • push(),
    • shift(),
    • unshift(),
    • splice() (если вызов метода splice() приводит к изменению length вектора).
length Диапазон действительных индексов, которые доступны в векторе.uintЕсли это свойство изменяется, когда свойству fixed присвоено значение true. RangeErrorRangeErrorЕсли этому свойству присваивается значение, превышающее максимально допустимый индекс (232). RangeErrorRangeError Диапазон действительных индексов, которые доступны в векторе. Экземпляр вектора обладает позициями индекса вплоть до значения length, но не включает само это значение.

Каждому элементу вектора всегда присваивается либо экземпляр базового типа, либо значение null. Когда свойству length присваивается значение, которое превышает предыдущее значение, создаются дополнительные элементы, которые заполняются значениями по умолчанию, соответствующими базовому типу (null для ссылочных типов).

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