Символические операторы - это знаки, указывающие на то, каким образом объединять, сравнивать или изменять значения выражения.
| Арифметические |
---|
| + | addition | Складывает числовые выражения. |
| -- | decrement | Вычитает 1 из значения операнда. |
| / | division | Делит expression1 на expression2 . |
| ++ | increment | Прибавляет 1 к выражению. |
| % | modulo | Вычисляет остаток от деления выражения expression1 на выражение expression2 . |
| * | multiplication | Перемножает два числовых выражения. |
| - | subtraction | Используется для отрицания или вычитания. |
| Арифметическое составное присваивание |
---|
| += | addition assignment | Присваивает выражению expression1 значение выражения expression1 + expression2 . |
| /= | division assignment | Присваивает выражению expression1 значение выражения expression1 / expression2 . |
| %= | modulo assignment | Присваивает выражению expression1 значение выражения expression1 % expression2 . |
| *= | multiplication assignment | Присваивает выражению expression1 значение выражения expression1 * expression2 . |
| -= | subtraction assignment | Присваивает выражению expression1 значение выражения expression1 - expression2 . |
| Присваивание |
---|
| = | assignment | Присваивает значение выражения expression2 (операнд справа) переменной, элементу массива или свойству в выражении expression1 . |
| Побитовые |
---|
| & | bitwise AND | Преобразует выражения expression1 и expression2 в 32-разрядные целые числа без знака и выполняет логическую операцию AND для каждого бита целочисленных параметров. |
| << | bitwise left shift | Преобразует выражение expression1 и shiftCount в 32-разрядные целые числа и сдвигает все биты в выражении expression1 влево на число позиций, заданное целым числом, полученным в результате преобразования выражения shiftCount . |
| ~ | bitwise NOT | Преобразует expression в 32-разрядное целое число со знаком, затем применяет побитовое дополнение до единицы. |
| | | bitwise OR | Преобразует expression1 и expression2 в 32-разрядные целые числа без знака и ставит 1 в позиции каждого бита, где соответствующие биты в expression1 или expression2 являются 1. |
| >> | bitwise right shift | Преобразует выражения expression и shiftCount в 32-разрядные целые числа и сдвигает все биты в выражении expression вправо на число позиций, заданное целым числом, полученным в результате преобразования выражения shiftCount . |
| >>> | bitwise unsigned right shift | Аналогичен оператору побитового сдвига вправо (>> ) за исключением того, что он не сохраняет знак исходного выражения, поскольку биты слева всегда заполняются нулями (0). |
| ^ | bitwise XOR | Преобразует expression1 и expression2 в 32-разрядные целые числа без знака и ставит 1 в позиции каждого бита, где соответствующие биты в expression1 или expression2 (но не в обоих выражениях) равны 1. |
| Побитовое составное присваивание |
---|
| &= | bitwise AND assignment | Присваивает выражению expression1 значение выражения expression1 & expression2 . |
| <<= | bitwise left shift and assignment | Выполняет побитовый сдвиг влево (<<= ) и сохраняет содержимое как результат в выражении expression1 . |
| |= | bitwise OR assignment | Присваивает выражению expression1 значение выражения expression1 | expression2 . |
| >>= | bitwise right shift and assignment | Выполняет побитовый сдвиг вправо и сохраняет результат в выражении expression . |
| >>>= | bitwise unsigned right shift and assignment | Выполняет побитовый сдвиг вправо без знака и сохраняет результат в выражении expression . |
| ^= | bitwise XOR assignment | Присваивает выражению expression1 значение выражения expression1 ^ expression2 . |
| Примечание |
---|
| /*..*/ | block comment delimiter | Отделяет одну или несколько строк комментариев в сценарии. |
| // | line comment delimiter | Указывает на начало примечания сценария. |
| Сравнение |
---|
| == | equality | Проверяет равенство двух выражений. |
| > | greater than | Сравнивает два выражения. Если выражение expression1 больше выражения expression2 , то результатом будет значение true . |
| >= | greater than or equal to | Сравнивает два выражения. Если выражение expression1 больше или равно выражению expression2 , то результатом будет значение true , а если выражение expression1 меньше выражения expression2 , то результатом будет значение false . |
| != | inequality | Проверяет на прямую противоположность оператору равенства (== ). |
| < | less than | Сравнивает два выражения. Если выражение expression1 меньше выражения expression2 , то результатом будет значение true . |
| <= | less than or equal to | Сравнивает два выражения. Если выражение expression1 меньше или равно выражению expression2 , то результатом будет значение true . |
| === | strict equality | Проверяет равенство двух выражений, но не выполняет автоматическое преобразование данных. |
| !== | strict inequality | Проверяет на прямую противоположность оператору строгого равенства (=== ). |
| Логические |
---|
| && | logical AND | Возвращает выражение expression1 , если оно имеет значение false или может быть преобразовано в false , в противном случае возвращает выражение expression2 . |
| &&= | logical AND assignment | Присваивает выражению expression1 значение выражения expression1 && expression2 . |
| ! | logical NOT | Инвертирует логическое значение переменной или выражения. |
| || | logical OR | Возвращает выражение expression1 , если оно имеет значение true или может быть преобразовано в true , в противном случае возвращает выражение expression2 . |
| ||= | logical OR assignment | Присваивает выражению expression1 значение выражения expression1 || expression2 . |
| Другие |
---|
| [] | array access | Инициализирует новый массив или многомерный массив с заданными элементами (a0 и т. д.) или обращается к элементам массива. |
| | as | Проверяет, относится ли выражение, заданное первым операндом, к типу данных, заданному вторым операндом. |
| , | comma | Вычисляет expression1 , затем expression2 и т. д. |
| ?: | conditional | Вычисляет expression1 , и если значение expression1 равно true , результатом будет значение expression2 ; в противном случае результатом будет значение expression3 . |
| | delete | Удаляет свойство объекта, заданное параметром reference . Результатом является значение true , если свойство не существует после завершения операции, в противном случае - false . |
| . | dot | Обеспечивает доступ к переменным и методам класса, определяет и задает свойства объектов и разделяет импортированные пакеты или классы. |
| | in | Проверяет, является ли свойство частью определенного объекта. |
| | instanceof | Проверяет, содержит ли цепочка прототипов выражения объект-прототип для function . |
| | is | Проверяет совместимость объекта с определенным типом данных, классом или интерфейсом. |
| :: | name qualifier | Определяет пространство имен свойства, метода, свойства XML или атрибута XML. |
| | new | Создает экземпляр класса. |
| {} | object initializer | Создает новый объект и инициализирует его с заданными парами свойств name и value . |
| () | parentheses | Группирует один или несколько параметров, последовательно вычисляет выражения или обрамляет один или несколько параметров и передает их в качестве аргументов функции, предшествующей круглым скобкам. |
| / | RegExp delimiter | При использовании перед символами и после них указывает на то, что символы имеют литеральное значение и считаются регулярным выражением (RegExp), а не переменной, строкой или другим элементом ActionScript. |
| : | type | Используется для назначения типа данных; данный оператор указывает тип переменной, тип возвращаемого функцией значения или тип параметра функции. |
| | typeof | Вычисляет выражение expression и возвращает строку, в которой указан тип данных выражения. |
| | void | Вычисляет выражение и удаляет его значение, возвращая undefined . |
| Строка |
---|
| + | concatenation | Сцепляет (объединяет) строки. |
| += | concatenation assignment | Присваивает выражению expression1 значение выражения expression1 + expression2 . |
| " | string delimiter | При использовании перед символами и после них указывает на то, что символы имеют литеральное значение и считаются строкой, а не переменной, числовым значением или другим элементом ActionScript. |
| XML |
---|
| @ | attribute identifier | Определяет атрибуты объекта XML или XMLList. |
| { } | braces (XML) | Вычисляет выражение, которое используется в инициализаторе XML или XMLList. |
| [ ] | brackets (XML) | Обращается к свойству или атрибуту объекта XML или XMLList. |
| + | concatenation (XMLList) | Сцепляет (объединяет) значения XML или XMLList дл образования объекта XMLList. |
| += | concatenation assignment (XMLList) | Присваивает выражению expression1 , которое является объектом XMLList, значение выражения expression1 + expression2 . |
| | delete (XML) | Удаляет элементы или атрибуты XML, заданные параметром reference . |
| .. | descendant accessor | Обеспечивает навигацию к потомкам объекта XML или XMLList, либо (в сочетании с оператором @) находит соответствующие атрибуты потомков. |
| . | dot (XML) | Обеспечивает навигацию к дочерним элементам объекта "XML" или "XMLList", либо (в сочетании с оператором @) возвращает атрибуты объекта "XML" или "XMLList". |
| ( ) | parentheses (XML) | Вычисляет выражение в конструкции E4X XML. |
| < > | XML literal tag delimiter | Определяет тег XML в литерале XML. |
Применение | expression1 + expression2 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Складывает числовые выражения. Если оба выражения являются целыми числами, их сумма также будет выражена целым числом; если одно из выражений или оба выражения являются числами с плавающей запятой, их сумма также будет выражена числом с плавающей запятой.
Если одно выражение является строкой, все другие выражения преобразуются в строки и сцепляются, а не суммируются. В противном случае, если выражение не является числом, проигрыватель Flash® Player преобразует его в число.
Операнд | expression1:Number —
Складываемое число.
|
| expression2:Number —
Складываемое число.
|
Результат | Number — Целое число или число с плавающей запятой. |
Пример Как пользоваться примерами Данная инструкция складывает целые числа 2 и 3:
Данная инструкция складывает числа с плавающей запятой 2,5 и 3,25:
trace(2.5 + 3.25); // 5.75
Данный пример показывает, что если одно выражение является строкой, все другие выражения преобразуются в строки и сцепляются:
trace("Number " + 8 + 0); // Number 80
Переменные, связанные с динамическими и текстовыми полями ввода относятся к типу данных String. В следующем примере переменная deposit
является текстовым полем ввода в рабочей области. После того, как пользователь вводит сумму вклада, сценарий пытается сложить deposit
с oldBalance
. Однако из-за того, что переменная deposit
относится к типу String, сценарий сцепляет (объединяет в одну строку) значения переменных вместо их суммирования.
var oldBalance:Number = 1345.23;
var currentBalance = deposit_txt.text + oldBalance;
trace(currentBalance);
Например, при вводе пользователем числа 475 в текстовое поле вклада инструкция trace()
отправит на панель "Вывод" значение 4751345,23. Чтобы исправить это, используйте функцию Number()
для преобразования строки в число, как показано ниже:
var oldBalance:Number = 1345.23;
var currentBalance:Number = Number(deposit_txt.text) + oldBalance;
trace(currentBalance);
См. также
Применение | expression1 += expression2 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Присваивает выражению expression1
значение выражения expression1 + expression2
. Например, следующие две инструкции имеют одинаковый результат:
x += y;
x = x + y;
Все правила оператора сложения (+) применимы и к оператору сложения с присваиванием (
+=
).
ОперандРезультатПример Как пользоваться примерами Следующий пример иллюстрирует использование оператора сложения с присваиванием (
+=
) с числами:
var x:Number = 5;
var y:Number = 10;
x += y;
trace(x); // 15
См. также
Применение | myArray = [a0, a1,...aN]
myArray[i] = value
myObject[propertyName]
|
Версии среды выполнения: | Flash Player 9 |
Инициализирует новый массив или многомерный массив с заданными элементами (a0
и т. д.) или обращается к элементам массива. Оператор доступа к массиву позволяет динамически задавать и извлекать имена экземпляров, переменных и объектов. Он также позволяет получить доступ к свойствам объектов.
Применение 1: Массив представляет собой объект, свойства которого называются элементами, каждый из которых имеет числовой идентификатор, называемый индексом. При создании массива его элементы заключаются в квадратные скобки оператора доступа к массиву ([]). Массив может содержать элементы различных типов. Например, следующий массив с именем employee
состоит из трех элементов; первый элемент является числом, а остальные два - строками (внутри кавычек):
var employee:Array = [15, "Barbara", "Jay"];
Квадратные скобки можно вкладывать для моделирования многомерных массивов. Глубина вложения массивов может достигать 256 уровней. Следующий код создает массив с именем
ticTacToe
, состоящий из трех элементов; каждый элемент также является массивом, состоящим из трех элементов:
var ticTacToe:Array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
/* Выберите "Отладка" > "Создать список переменных" в тестовом режиме,
чтобы просмотреть список элементов массива.*/
Применение 2: Заключите индекс каждого элемента в квадратные скобки ([]) для прямого доступа к нему; можно добавить новый элемент в массив или изменить или извлечь значение существующего элемента. Первый индекс массива всегда 0, как показано в следующем примере:
var my_array:Array = new Array();
my_array[0] = 15;
my_array[1] = "Hello";
my_array[2] = true;
При помощи квадратных скобок можно добавить четвертый элемент, как показано в следующем примере:
Квадратные скобки можно использовать для доступа к элементу в многомерном массиве. Первый набор квадратных скобок определяет элемент исходного массива, а второй набор скобок - элемент вложенного массива. Следующая инструкция
trace()
находит третий элемент (индекс 2) второго массива (индекс 1).
var ticTacToe:Array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
trace(ticTacToe[1][2]); // 6
Применение 3: Оператор доступа к массиву позволяет динамически задавать и извлекать значения свойства объекта.
var obj:Object = new Object();
obj.prop1 = "foo";
trace(obj["prop" + 1]); // foo
obj.prop2 = "bar";
for (j in obj) {
trace(obj[j]);
}
/* Вывод цикла for:
foo
bar */
Операнд | myArray:Object —
Имя массива.
|
| a0, a1,...aN:Object —
Элементы массива; любой собственный тип или экземпляр объекта, включая вложенные массивы.
|
| i:Number —
Целочисленный индекс больше или равный 0.
|
| myObject:Object —
Имя объекта.
|
| propertyName:String —
Строка, называющая свойство объекта.
|
Результат | Object — Применение 1: Ссылка на массив. Применение 2: Значение из массива; собственный тип или экземпляр объекта (включая экземпляр Array). Применение 3: Свойство объекта; собственный тип или экземпляр объекта (включая экземпляр Array). |
Пример Как пользоваться примерами Следующий пример иллюстрирует два способа создания нового пустого объекта Array; в первой строке используются квадратные скобки:
var my_array:Array = [];
var my_array:Array = new Array();
В следующем примере создается массив с именем employee_array
, состоящий из трех элементов, и изменяется третий элемент этого массива.
var employee_array = ["Barbara", "George", "Mary"];
trace(employee_array); // Barbara,George,Mary
employee_array[2] = "Sam";
trace(employee_array); // Barbara,George,Sam
В следующем примере вычисляется выражение в квадратных скобках, а результат используется в качестве имени переменной, которую нужно извлечь из объекта
obj
:
var obj:Object = new Object();
obj.prop1 = "foo";
obj.prop2 = "bar";
for (var i:int = 1;i < 3;i++) {
trace(obj["prop"+i]);
}
/* Вывод цикла for:
foo
bar */
См. также
ПрименениеЯзык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Проверяет, относится ли выражение, заданное первым операндом, к типу данных, заданному вторым операндом. Если первый операнд относится к этому типу данных, результатом будет первый операнд. В противном случае результатом будет значение null
.
Выражение, используемое в качестве второго операнда, должно относиться к типу данных.
Операнд | expression:* —
Значение, сверяемое с указанным типом данных.
|
| datatype:Class —
Тип данных, используемый для вычисления операнда expression . Специальный тип *, который значит, что тип не присвоен, использовать нельзя.
|
Результат | Object — Результатом является expression , если expression относится к типу данных, заданному в datatype . В противном случае результатом будет значение null . |
Пример Как пользоваться примерами
В следующем примере создается простой массив с именем
myArray
и используется оператор
as
с различными типами данных.
public var myArray:Array = ["one", "two", "three"];
trace(myArray as Array); // one,two,three
trace(myArray as Number); // null
trace(myArray as int); // null
См. также
Применение | expression1 = expression2 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Присваивает значение выражения expression2
(операнд справа) переменной, элементу массива или свойству в выражении expression1
. Присваивание может быть либо по значению, либо по ссылке. При присваивании по значению копируется фактическое значение выражения expression2
и сохраняется в выражении expression1
. Присваивание по значению используется, когда выражение expression2
является примитивным значением, т. е. относится к типу данных Boolean, Number, int, uint или String. При присваивании по ссылке ссылка на выражение expression2
сохраняется в выражении expression1
. Присваивание по ссылке обычно используется с оператором new
. Оператор new
создает объект в памяти, а ссылка на это местоположение в памяти присваивается переменной.
Примечание. В ActionScript 3.0 все значения (включая примитивные) являются объектами, и присваивание всегда выполняется по ссылке, но для примитивных объектов существуют специальные операторы, которые позволяют им вести себя так, как при присваивании по значению.
Операнд | expression1:* —
Переменная, элемент массива или свойство объекта.
|
| expression2:* —
Значение любого типа.
|
Результат | Object — Присвоенное значение, expression2 . |
Пример Как пользоваться примерами В следующем примере используется присваивание по значению для присваивания переменной
z
значения 5.
В следующем примере используется присваивание по значению для присваивания переменной
z
значения "
hello
".
var x:String;
x = "hello";
В следующем примере используется присваивание по ссылке для создания переменной
moonsOfJupiter
, содержащей ссылку на вновь созданный объект Array. Затем при помощи присваивания по значению значение "Callisto" копируется в первый элемент массива, на который ссылается переменная
moonsOfJupiter
:
var moonsOfJupiter:Array = new Array();
moonsOfJupiter[0] = "Callisto";
В следующем примере используется присваивание по ссылке для создания нового объекта и присваиванич ссылки на этот объект переменной
mercury
. Затем используется присваивание по значению для присваивания свойству
diameter
объекта
mercury
значения 3030:
var mercury:Object = new Object();
mercury.diameter = 3030; // в милях
trace(mercury.diameter); // 3030
Следующий пример строится на предыдущем. В нем создается переменная с именем
merkur
(слово
mercury по-немецки), которой присваивается значение
mercury
. Таким образом создаются две переменные, которые ссылаются на один и тот же объект в памяти, поэтому для доступа к свойствам объекта можно использовать любую из этих переменных. Затем можно изменить свойство
diameter
так, чтобы использовать километры вместо миль:
var merkur:Object = mercury;
merkur.diameter = 4878; // в километрах
trace(mercury.diameter); // 4878
См. также
ПрименениеЯзык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Определяет атрибуты объекта XML или XMLList. Например, myXML.@id
определяет атрибуты с именем id
для объекта XML с именем myXML
. Можно
также использовать следующий синтаксис для доступа к
атрибутам: myXML.attribute("id")
, myXML["@id"]
и
myXML.@["id"]
. Синтаксис myXML.@id
является рекомендуемым. Для возврата объекта XMLList с именами всех атрибутов используйте @*
.
Для возврата атрибута, имя которого совпадает с зарезервированным словом ActionScript,
используйте метод attribute()
вместо оператора @
.
Операнд | attributeName:* —
Имя атрибута.
|
Пример Как пользоваться примерами Следующий пример иллюстрирует использование оператора
@
(знак at) для определения атрибута элемента:
var myXML:XML =
<item id = "42">
<catalogName>Presta tube</catalogName>
<price>3.99</price>
</item>;
trace(myXML.@id); // 42
В следующем примере возвращаются имена всех атрибутов:
var xml:XML =<example id='123' color='blue'/>
var xml2:XMLList = xml.@*;
trace(xml2 is XMLList); // true
trace(xml2.length()); // 2
for (var i:int = 0; i < xml2.length(); i++)
{
trace(typeof(xml2[i])); // xml
trace(xml2[i].nodeKind()); // атрибут
trace(xml2[i].name()); // id и color
}
В следующем примере возвращается атрибут, имя которого совпадает с зарезервированным словом ActionScript,
Синтаксис
xml.@class
использовать нельзя (так как
class
является зарезервированным словом ActionScript).
Нужно использовать синтаксис
xml.attribute("class")
:
var xml:XML = <example class='123'/>
trace(xml.attribute("class"));
См. также
Применение | expression1 & expression2 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Преобразует выражения expression1
и expression2
в 32-разрядные целые числа без знака
и выполняет логическую операцию AND для каждого бита целочисленных параметров.
Числа с плавающей запятой преобразуются в целые числа путем отсечения всех цифр после десятичной запятой.
Результатом является новое 32-разрядное целое число.
Положительное целое число преобразуется в шестнадцатеричное значение без знака величиной максимум 4294967295 или 0xFFFFFFFF.
У значения, превышающего максимальную величину, при преобразовании отсекаются значащие цифры так, что значение все равно становится 32-разрядным.
Отрицательное целое число преобразуется в шестнадцатеричное значение без знака в написании с дополнением до двух величиной минимум -2147483648 или 0x800000000.
Число меньше минимальной величины преобразуется в число с дополнением до двух с большей точностью перед отсечением значащих цифр.
Результат интерпретируется как 32-разрядное число с дополнением до двух, поэтому результатом является целое число в диапазоне от -2147483648 до 2147483647.
Операнд | expression1:Number —
Число или выражение, принимающие числовое значение.
|
| expression2:Number —
Число или выражение, принимающие числовое значение.
|
Результат | int — Результат побитовой операции. |
Пример Как пользоваться примерами В следующем примере выполняется побитовая операция AND над числами 13 (двоичное 1101) и 11 (двоичное 1011) путем сравнения битовых представлений этих чисел. Получившееся в результате целое число состоит из последовательности битов, каждый из которых установлен на 1, только если биты обоих операндов в одинаковых позициях равны 1.
var insert:Number = 13;
var update:Number = 11;
trace(insert & update); // 9 (или двоичное 1001)
Результатом выполнения побитовой операции AND с числами 13 (двоичное 1101) и 11 (двоичное 1011) является число 9, так как только первая и последняя позиции в обоих числах заняты числом 1.
1101
& 1011
----
1001
Далее приведены примеры преобразования возвращаемого значения:
trace(0xFFFFFFFF); // 4294967295
trace(0xFFFFFFFF & 0xFFFFFFFF); // -1
trace(0xFFFFFFFF & -1); // -1
trace(4294967295 & -1); // -1
trace(4294967295 & 4294967295); // -1
См. также
Применение | expression1 &= expression2 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Присваивает выражению expression1
значение выражения expression1
& expression2
. Например, следующие два выражения идентичны:
x &= y;
x = x & y;
Операнд | expression1:Number —
Число или выражение, принимающие числовое значение.
|
| expression2:Number —
Число или выражение, принимающие числовое значение.
|
Результат | int — Значение выражения expression1 & expression2 . |
Пример Как пользоваться примерами В следующем примере переменной
x
присваивается значение 9:
var x:Number = 15;
var y:Number = 9;
trace(x &= y); // 9
См. также
Применение | expression1 << shiftCount |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Преобразует выражения expression1
и shiftCount
в 32-разрядные целые числа и сдвигает все биты в выражении expression1
влево на число позиций, заданное целым числом, полученным в результате преобразования выражения shiftCount
. Позиции битов, ставшие пустыми в результате этой операции, заменяются на 0, а биты, сдвинутые за левый край, отсекаются. Сдвиг значения влево на одну позицию эквивалентен его умножению на 2.
Число с плавающей запятой преобразуется в целое число путем отсечения всех цифр после десятичной запятой.
Положительное целое число преобразуется в шестнадцатеричное значение без знака величиной максимум 4294967295 или 0xFFFFFFFF.
У значения, превышающего максимальную величину, при преобразовании отсекаются значащие цифры так, что значение все равно становится 32-разрядным.
Отрицательное целое число преобразуется в шестнадцатеричное значение без знака в написании с дополнением до двух величиной минимум -2147483648 или 0x800000000.
Число меньше минимальной величины преобразуется в число с дополнением до двух с большей точностью перед отсечением значащих цифр.
Результат интерпретируется как 32-разрядное число с дополнением до двух, поэтому результатом является целое число в диапазоне от -2147483648 до 2147483647.
Если результатом является отрицательное целое число, то при попытке присвоить результат переменной типа uint
произойдет ошибка этапа выполнения. Хотя в ActionScript отсутствует оператор "побитовый сдвиг влево без знака", можно достичь того же эффекта и избежать ошибки этапа выполнения при помощи uint(expression1 << shiftCount)
:
var num1:uint = 0xFF;
var num2:uint = uint(num1 << 24); // uint() предотвращает возникновение ошибки этапа выполнения
Операнд | expression1:Number —
Число или выражение, к которому применяется сдвиг влево.
|
| shiftCount:Number —
Число или выражение, преобразуемое в целое число от 0 до 31.
|
Результат | int — Результат побитовой операции. |
Пример Как пользоваться примерами В следующем примере целое число 1 сдвигается на 10 битов влево:
Результатом операции побитового сдвига влево является 1024. Т. е. десятичное число 1 равно двоичному числу 1, двоичное 1 со сдвигом влево на 10 позиций равно двоичному 10000000000, а двоичное 10000000000 - это десятичное 1024:
двоичное 00000000001
<< десятичное 10
--------------
двоичное 10000000000 равно десятичному 1024
В следующем примере целое число 7 сдвигается на 8 битов влево:
Результатом операции побитового сдвига влево является 1792. Т. е. десятичное число 7 равно двоичному числу 111, двоичное 111 со сдвигом влево на 8 позиций равно двоичному 11100000000, а двоичное 11100000000 - это десятичное 1792:
двоичное 00000000111
<< десятичное 8
--------------
двоичное 11100000000 равно десятичному 1792
Следующая инструкция trace
показывает, что биты были сдвинуты на три позиции влево:
// 1 binary == 0001
// 8 binary == 1000
trace(1 << 3); // 8
См. также
Применение | expression1 <<= expression2 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Выполняет побитовый сдвиг влево (<<=
) и сохраняет содержимое как результат в выражении expression1
. Следующие два выражения идентичны:
A <<= B
A = (A << B)
Операнд | expression1:Number —
Число или выражение, к которому применяется сдвиг влево.
|
| expression2:Number —
Число или выражение, преобразуемое в целое число от 0 до 31.
|
Результат | int — Результат побитовой операции. |
Пример Как пользоваться примерами В следующем примере используется оператор побитового сдвига влево с присваиванием (<<=) для сдвига всех битов на одну позицию влево:
var x:Number = 4;
// Сдвиг всех битов на одну позицию влево.
x <<= 1;
trace(x); // 8
// десятичное 4 = двоичное 0100
// десятичное 8 = двоичное 1000
См. также
ПрименениеЯзык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Преобразует expression
в 32-разрядное целое число со знаком, затем применяет побитовое дополнение до единицы. Т. е. каждый бит, равный 0, в результате имеет значение 1, а каждый бит, равный 1, в результате имеет значение 0. Результатом является 32-разрядное целое число со знаком.
Данный оператор также называется оператором дополнения до единицы или оператором побитового дополнения.
Например, шестнадцатеричное значение 0x7777 представлено в виде такого двоичного числа:
0111011101110111
Побитовое отрицание этого шестнадцатеричного значения, ~0x7777, имеет вид такого двоичного числа:
1000100010001000
В шестнадцатеричном формате это 0x8888. Следовательно, ~0x7777 - это 0x8888.
Типичным использованием побитовых операторов является представление флаговых битов (логические значения, упакованные в 1 бит каждое).
Число с плавающей запятой преобразуется в целое число путем отсечения всех цифр после десятичной запятой.
Положительное целое число преобразуется в шестнадцатеричное значение без знака величиной максимум 4294967295 или 0xFFFFFFFF.
У значения, превышающего максимальную величину, при преобразовании отсекаются значащие цифры так, что значение все равно становится 32-разрядным.
Отрицательное целое число преобразуется в шестнадцатеричное значение без знака в написании с дополнением до двух величиной минимум -2147483648 или 0x800000000.
Число меньше минимальной величины преобразуется в число с дополнением до двух с большей точностью перед отсечением значащих цифр.
Результат интерпретируется как 32-разрядное число с дополнением до двух, поэтому результатом является целое число в диапазоне от -2147483648 до 2147483647.
Операнд | expression:Number —
Преобразуемое число.
|
Результат | int — Результат побитовой операции. |
Пример Как пользоваться примерами Следующий пример иллюстрирует использование побитового оператора NOT (
~
) с флаговыми битами:
var ReadOnlyFlag:int = 0x0001; // определяет бит 0 как флаг только для чтения
var flags:int = 0;
trace(flags);
/* Чтобы задать флаг только для чтения в переменной flags,
в следующем коде используется побитовый оператор OR:
*/
flags |= ReadOnlyFlag;
trace(flags);
/* Чтобы очистить флаг только для чтения в переменной flags,
сначала создайте маску, применив побитовый оператор NOT к ReadOnlyFlag.
В маске каждый бит равен 1 кроме флага только для чтения.
Затем примените побитовый оператор AND к маске, чтобы очистить флаг только для чтения.
В следующем коде создается маска и выполняется побитовый оператор AND:
*/
flags &= ~ReadOnlyFlag;
trace(flags);
// 0 1 0
См. также
Применение | expression1 | expression2 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Преобразует expression1
и expression2
в 32-разрядные целые числа без знака и ставит 1 в позиции каждого бита, где соответствующие биты в expression1
или expression2
являются 1.
Число с плавающей запятой преобразуется в целое число путем отсечения всех цифр после десятичной запятой.
Положительное целое число преобразуется в шестнадцатеричное значение без знака величиной максимум 4294967295 или 0xFFFFFFFF.
У значения, превышающего максимальную величину, при преобразовании отсекаются значащие цифры так, что значение все равно становится 32-разрядным.
Отрицательное целое число преобразуется в шестнадцатеричное значение без знака в написании с дополнением до двух величиной минимум -2147483648 или 0x800000000.
Число меньше минимальной величины преобразуется в число с дополнением до двух с большей точностью перед отсечением значащих цифр.
Результат интерпретируется как 32-разрядное число с дополнением до двух, поэтому результатом является целое число в диапазоне от -2147483648 до 2147483647.
ОперандРезультат | int — Результат побитовой операции. |
Пример Как пользоваться примерами Далее приводится пример побитовой операции OR (
|
):
// десятичное 15 = двоичное 1111
var a:Number = 15;
// десятичное 9 = двоичное 1001
var b:Number = 9;
// 1111 | 1001 = 1111
trace(a | b); // возвращает десятичное 15 (двоичное 1111)
Не путайте одинарный знак
|
(побитовый оператор OR) с двойным
||
(логический оператор OR).
См. также
Применение | expression1 |= expression2 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Присваивает выражению expression1
значение выражения expression1 | expression2
. Например, следующие две инструкции идентичны:
x |= y;
x = x | y;
Операнд | expression1:Number —
Преобразуемое число.
|
| expression2:Number —
Преобразуемое число.
|
Результат | int — Результат побитовой операции. |
Пример Как пользоваться примерами В следующем коде используется побитовый оператор OR с присваиванием (
|=
):
// десятичное 15 = двоичное 1111
var a:Number = 15;
// десятичное 9 = двоичное 1001
var b:Number = 9;
// 1111 |= 1001 = 1111
trace(a |= b); // возвращает десятичное 15 (двоичное 1111)
См. также
ПрименениеЯзык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Преобразует выражения expression
и shiftCount
в 32-разрядные целые числа и сдвигает все биты в выражении expression
вправо на число позиций, заданное целым числом, полученным в результате преобразования выражения shiftCount
. Биты, сдвинутые за правый край, отсекаются. Для сохранения знака исходного выражения биты слева заменяются на 0, если самый значащий бит (крайний левый) выражения expression
является 0, и на 1, если самый значащий бит является 1. Сдвиг значения вправо на одну позицию аналогичен делению на 2 и отсечению остатка.
Число с плавающей запятой преобразуется в целое число путем отсечения всех цифр после десятичной запятой.
Положительное целое число преобразуется в шестнадцатеричное значение без знака величиной максимум 4294967295 или 0xFFFFFFFF.
У значения, превышающего максимальную величину, при преобразовании отсекаются значащие цифры так, что значение все равно становится 32-разрядным.
Отрицательное целое число преобразуется в шестнадцатеричное значение без знака в написании с дополнением до двух величиной минимум -2147483648 или 0x800000000.
Число меньше минимальной величины преобразуется в число с дополнением до двух с большей точностью перед отсечением значащих цифр.
Результат интерпретируется как 32-разрядное число с дополнением до двух, поэтому результатом является целое число в диапазоне от -2147483648 до 2147483647.
Операнд | expression:Number —
Число или выражение, к которому применяется сдвиг вправо.
|
| shiftCount:Number —
Число или выражение, преобразуемое в целое число от 0 до 31.
|
Результат | int — Результат побитовой операции. |
Пример Как пользоваться примерами В следующем примере число 65535 преобразуется в 32-разрядное целое число и сдвигается на 8 позиций вправо, в результате чего получается значение 255:
var a:Number = 65535 >> 8;
trace(a); // 255
Это происходит потому, что десятичное число 65535 равно двоичному числу 00000000000000001111111111111111 (16 нолей, за которыми следуют 16 единиц); при сдвиге вправо на 8 позиций 8 наименее значащих битов (крайних правых) отсекаются. Так как 65535 является положительным числом, освободившиеся в результате сдвига позиции (8 крайних левых позиций) заменяются на 0. Результатом является двоичное число 00000000000000000000000011111111 (24 ноля, за которыми следуют 8 единиц), представляющее собой 32-разрядное целое число 255.
двоичное 00000000000000001111111111111111 (десятичное 65535)
>> десятичное 8
--------------------
двоичное 00000000000000000000000011111111 (десятичное 255)
В следующем примере число -8 преобразуется в 32-разрядное целое число и сдвигается на 1 позицию вправо, в результате чего получается десятичное значение -4:
var a:Number = -8 >> 1;
trace(a); // -4
Это происходит потому, что десятичное число -8 равно двоичному числу 11111111111111111111111111111000 (29 единиц, за которыми следуют три ноля); при сдвиге вправо на 1 позицию наименее значащий бит (крайний правый) отсекается. Так как -8 является отрицательным числом, освободившаяся в результате сдвига позиция (1 крайняя левая позиция) заменяется на 1. В результате получается двоичное число 11111111111111111111111111111100 (30 единиц, за которыми следуют два ноля), представляющее собой 32-разрядное целое число -4.
двоичное 11111111111111111111111111111000 (десятичное -8)
>> десятичное 1
--------------------
двоичное 11111111111111111111111111111100 (десятичное -4)
См. также
Применение | expression >>= shiftCount |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Выполняет побитовый сдвиг вправо и сохраняет результат в выражении expression
.
Следующие две инструкции идентичны:
A >>= B;
A = (A >> B);
Операнд | expression:Number —
Число или выражение, к которому применяется сдвиг вправо.
|
| shiftCount:Number —
Число или выражение, преобразуемое в целое число от 0 до 31.
|
Результат | int — Результат побитовой операции. |
Пример Как пользоваться примерами В следующем коде используется оператор побитового сдвига вправо с присваиванием (
>>=
):
function convertToBinary(numberToConvert:Number):String {
var result:String = "";
for (var i = 0; i < 32; i++) {
// Извлечение наименее значащего бита при помощи побитового AND.
var lsb:Number = numberToConvert & 1;
// Добавление этого бита в результат.
result = (lsb ? "1" : "0")+result;
// Сдвиг numberToConvert вправо на один бит, чтобы увидеть следующий бит.
numberToConvert >>= 1;
}
return result;
}
trace(convertToBinary(479));
// Возвращает строку 00000000000000000000000111011111.
// Эта строка является двоичным представлением десятичного числа 479.
См. также
Применение | expression >>> shiftCount |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Аналогичен оператору побитового сдвига вправо (>>
) за исключением того, что он не сохраняет знак исходного выражения, поскольку биты слева всегда заполняются нулями (0).
Число с плавающей запятой преобразуется в целое число путем отсечения всех цифр после десятичной запятой.
Положительное целое число преобразуется в шестнадцатеричное значение без знака величиной максимум 4294967295 или 0xFFFFFFFF.
У значения, превышающего максимальную величину, при преобразовании отсекаются значащие цифры так, что значение все равно становится 32-разрядным.
Отрицательное целое число преобразуется в шестнадцатеричное значение без знака в написании с дополнением до двух величиной минимум -2147483648 или 0x800000000.
Число меньше минимальной величины преобразуется в число с дополнением до двух с большей точностью перед отсечением значащих цифр.
Результат интерпретируется как 32-разрядное целое число без знака, поэтому результатом является целое число в диапазоне от 0 до 4294967295.
Примечание. В ActionScript отсутствует дополнительный оператор "побитовый сдвиг влево без знака", но можно достичь того же эффекта при помощи uint(expression << shiftCount)
.
Операнд | expression:Number —
Число или выражение, к которому применяется сдвиг вправо.
|
| shiftCount:Number —
Число или выражение, преобразуемое в целое число от 0 до 31.
|
Результат | uint — Результат побитовой операции. |
Пример Как пользоваться примерами В следующем примере число -1 преобразуется в 32-разрядное целое число и сдвигается на 1 позицию вправо:
var a:Number = -1 >>> 1;
trace(a); // 2147483647
Это происходит потому, что десятичное число -1 равно двоичному числу 11111111111111111111111111111111 (32 единицы), и при сдвиге вправо (без знака) на 1 бит наименее значащий бит (крайний правый) отсекается, а самый значащий бит (крайний левый) заменяется на 0. В результате получается двоичное число 01111111111111111111111111111111, представляющее собой 32-разрядное целое число 2147483647.
См. также
Применение | expression >>>= shiftCount |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Выполняет побитовый сдвиг вправо без знака и сохраняет результат в выражении expression
. Следующие две инструкции идентичны:
A >>>= B;
A = (A >>> B);
Операнд | expression:Number —
Число или выражение, к которому применяется сдвиг вправо.
|
| shiftCount:Number —
Число или выражение, преобразуемое в целое число от 0 до 31.
|
Результат | uint — Результат побитовой операции. |
Пример Как пользоваться примерами В следующем примере число -1 преобразуется в 32-разрядное целое число и сдвигается на 1 позицию вправо:
var a:Number = -1;
a >>>= 1;
trace(a); // 2147483647
Это происходит потому, что десятичное число -1 равно двоичному числу 11111111111111111111111111111111 (32 единицы), и при сдвиге вправо (без знака) на 1 бит наименее значащий бит (крайний правый) отсекается, а самый значащий бит (крайний левый) заменяется на 0. В результате получается двоичное число 01111111111111111111111111111111, представляющее собой 32-разрядное целое число 2147483647.
См. также
Применение | expression1 ^ expression2 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Преобразует expression1
и expression2
в 32-разрядные целые числа без знака и ставит 1 в позиции каждого бита, где соответствующие биты в expression1
или expression2
(но не в обоих выражениях) равны 1.
Число с плавающей запятой преобразуется в целое число путем отсечения всех цифр после десятичной запятой.
Положительное целое число преобразуется в шестнадцатеричное значение без знака величиной максимум 4294967295 или 0xFFFFFFFF.
У значения, превышающего максимальную величину, при преобразовании отсекаются значащие цифры так, что значение все равно становится 32-разрядным.
Отрицательное целое число преобразуется в шестнадцатеричное значение без знака в написании с дополнением до двух величиной минимум -2147483648 или 0x800000000.
Число меньше минимальной величины преобразуется в число с дополнением до двух с большей точностью перед отсечением значащих цифр.
Результат интерпретируется как 32-разрядное число с дополнением до двух, поэтому результатом является целое число в диапазоне от -2147483648 до 2147483647.
Операнд | expression1:Number —
Число или выражение, принимающие числовое значение.
|
| expression2:Number —
Число или выражение, принимающие числовое значение.
|
Результат | int — Результат побитовой операции. |
Пример Как пользоваться примерами В следующем примере используется побитовый оператор XOR с десятичными числами 15 и 9, а результат присваивается переменной
a
:
// десятичное 15 = двоичное 1111
// десятичное 9 = двоичное 1001
var a:Number = 15 ^ 9;
trace(a);
// 1111 ^ 1001 = 0110
// возвращает десятичное 6 (двоичное 0110)
См. также
Применение | expression1 ^= expression2 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Присваивает выражению expression1
значение выражения expression1 ^ expression2
. Например, следующие две инструкции идентичны:
x ^= y
x = x ^ y
Операнд | expression1:Number —
Число или выражение, принимающие числовое значение.
|
| expression2:Number —
Число или выражение, принимающие числовое значение.
|
Результат | int — Результат побитовой операции. |
Пример Как пользоваться примерами Следующий пример иллюстрирует побитовую операцию XOR с присваиванием (^=):
// десятичное 15 = двоичное 1111
var a:Number = 15;
// десятичное 9 = двоичное 1001
var b:Number = 9;
trace(a ^= b); // возвращает десятичное 6 (двоичное 0110)
См. также
Применение | /* комментарий */ /* комментарий комментарий */ |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Отделяет одну или несколько строк комментариев в сценарии. Символы, расположенные между открывающим разделителем (/*
) и закрывающим разделителем (*/
), воспринимаются как комментарий и игнорируются компилятором ActionScript.
Используйте эти разделители для идентификации комментариев, расположенных на нескольких последовательных строках; для однострочных комментариев используйте разделитель //
.
При опущении закрывающего разделителя блока комментариев (*/
) или при попытке вложить комментарий появится сообщение об ошибке.
После использования открывающего разделителя (/*
) первый закрывающий разделитель (*/
) заканчивает комментарий независимо от количества открывающих разделителей, расположенных перед ним.
Операнд | comment:* —
Любые символы.
|
Пример Как пользоваться примерами В следующем сценарии используются разделители блока комментариев в начале сценария:
/* записывает положение X и Y
фрагментов роликов ball и bat */
var ballX:Number = ball_mc._x;
var ballY:Number = ball_mc._y;
var batX:Number = bat_mc._x;
var batY:Number = bat_mc._y;
Следующая попытка вложить комментарий приводит к появлению сообщения об ошибке:
/* Это попытка вложить комментарий.
/* Но первый закрывающий тег будет соотнесен
с первым открывающим тегом */
и этот текст не будет воспринят как комментарий */
См. также
Применение | myXML = <{tagName} {attributeName} = {attributeValue}>{content}</{tagName}> |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Вычисляет выражение, которое используется в инициализаторе XML или XMLList.
Инициализатор XML или XMLList является литеральным значением, которое присваивается переменной типа XML или XMLList.
Выражение, заключенное между XML-операторами {
и }
может использоваться в инициализаторе XML или XMLList вместо литеральных имен или значений.
Выражение можно использовать вместо tagName
, attributeName
, attributeValue
и content
.
Операнд | myXML:* —
Объект XML или XMLList.
|
| tagName:* —
Выражение, результатом вычисления которого является имя тега XML.
|
| attributeName:* —
Выражение, результатом вычисления которого является имя атрибута XML.
|
| attributeValue:* —
Выражение, результатом вычисления которого является значение атрибута XML.
|
| content:* —
Выражение, результатом вычисления которого является содержимое тега XML.
|
Пример Как пользоваться примерами Следующий пример иллюстрирует использование операторов { и } при определении литерала XML:
var tagname:String = "item";
var attributename:String = "id";
var attributevalue:String = "5";
var content:String = "Chicken";
var x:XML = <{tagname} {attributename}={attributevalue}>{content}</{tagname}>;
trace(x.toXMLString()); // <item id="5">Chicken</item>
См. также
ПрименениеЯзык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Обращается к свойству или атрибуту объекта XML или XMLList. Оператор "квадратные скобки" обеспечивает доступ к именам свойств, к которым нельзя получить доступ при помощи оператора "точка" (.
).
Операнд | myXML:* —
Объект XML или XMLList.
|
| expression:* —
Выражение, результатом вычисления которого является имя тега или атрибута XML.
|
Пример Как пользоваться примерами Следующий пример иллюстрирует использование операторов
[
и
]
для доступа к свойству XML, к которому невозможно получить доступ при помощи оператора "точка" из-за дефиса в имени тега:
var myXML:XML = <a><foo-bar>44</foo-bar></a>;
trace(myXML["foo-bar"]);
См. также
Применение | (expression1, expression2[, expressionN... ]) |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Вычисляет expression1
, затем expression2
и т. д. Данный оператор в основном используется с инструкцией цикла for
и часто используется с оператором "круглые скобки" ()
.
Операнд | expression1:* —
Вычисляемое выражение.
|
| expression2:* —
Вычисляемое выражение.
|
| expressionN:* —
Любое число дополнительных вычисляемых выражений.
|
Результат | Object — Значения вычисленных выражений. |
Пример Как пользоваться примерами В следующем примере используется оператор-запятая (
,
) в цикле
for
:
for (i = 0, j = 0; i < 3 && j < 3; i++, j+=2) {
trace("i = " + i + ", j = " + j);
}
// вывод:
// i = 0, j = 0
// i = 1, j = 2
В следующем примере оператор "запятая" используется без оператора "круглые скобки" для иллюстрации того, что оператор "запятая" имеет более низкий приоритет, чем оператор присваивания (
=
):
var v:Number = 0;
v = 4, 5, 6;
trace(v); // 4
В следующем примере оператор "запятая" используется с круглыми скобками и иллюстрирует то, что оператор "запятая" возвращает значение последнего выражения:
var v:Number = 0;
v = (4, 5, 6);
trace(v); // 6
В следующем примере оператор "запятая" используется без круглых скобок и иллюстрирует то, что оператор "запятая" обуславливает последовательное вычисление выражений: Первое выражение,
v + 4
, присваивается переменной
v
, так как приоритет оператора присваивания (=) выше приоритета оператора "запятая". Второе выражение,
z++
, вычисляется, и
z
увеличивается на единицу.
var v:Number = 0;
var z:Number = 0;
v = v + 4 , z++, v + 6;
trace(v); // 4
trace(z); // 1
Следующий пример аналогичен предыдущему, но в нем используются круглые скобки, которые меняют порядок операций так, что оператор "запятая" вычисляется раньше оператора присваивания (
=
):
var v:Number = 0;
var z:Number = 0;
v = (v + 4, z++, v + 6);
trace(v); // 6
trace(z); // 1
См. также
Применение | expression1 + expression2 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Сцепляет (объединяет) строки. Если одно выражение является строкой, все другие выражения преобразуются в строки и сцепляются.
Если оба выражения являются числами, данный оператор выполняет функцию оператора сложения.
Операнд | expression1:String —
Сцепляемая строка.
|
| expression2:String —
Сцепляемая строка.
|
РезультатПример Как пользоваться примерами В следующем примере сцепляются две строки.
var lastName:String = "Cola";
var instrument:String = "Drums";
trace(lastName + " plays " + instrument); // Cola plays Drums
Данный пример показывает, что если одно выражение является строкой, все другие выражения преобразуются в строки и сцепляются:
trace("Number " + 8 + 0); // Number 80
Данный пример показывает, что числовая сумма справа от строкового выражения не вычисляется, так как числа преобразуются в строки:
var a:String = 3 + 10 + "asdf";
trace(a); // 13asdf
var b:String = "asdf" + 3 + 10;
trace(b); // asdf310
См. также
Применение | expression1 + expression2 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Сцепляет (объединяет) значения XML или XMLList дл образования объекта XMLList.
Объект XMLList образуется, только если оба операнда являются значениями XML или XMLList.
Операнд | expression1:* —
Значение XML или XMLList.
|
| expression2:* —
Значение XML или XMLList.
|
Результат | XMLList — Сцепленный объект XMLList. |
Пример Как пользоваться примерами Следующий пример иллюстрирует использование оператора XMLList (
+
) (сцепление):
var x1:XML =
<employee id = "42">
<firstName>Joe</firstName>
<lastName>Smith</lastName>
</employee>;
var x2:XML =
<employee id = "43">
<firstName>Susan</firstName>
<lastName>Jones</lastName>
</employee>;
var myXMLList:XMLList = x1 + x2;
trace(myXMLList.toXMLString());
Инструкция trace
выводит следующий результат:
<employee id = "42">
<firstName>Joe</firstName>
<lastName>Smith</lastName>
</employee>
<employee id = "43">
<firstName>Susan</firstName>
<lastName>Jones</lastName>
</employee>
См. также
Применение | expression1 += expression2 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Присваивает выражению expression1
значение выражения expression1 + expression2
. Например, следующие две инструкции имеют одинаковый результат:
x += y;
x = x + y;
Все правила оператора сцепления (
+
) применимы к оператору сцепления с присваиванием (
+=
). Заметьте, что использование оператора сцепления с присваиванием со свойством
text
текстового поля
TextField
(т. е.
someTextField.text += moreText
) намного менее эффективно, чем
TextField.appendText()
, особенно в случае с
TextField
с большим объемом содержимого.
ОперандРезультатПример Как пользоваться примерами В данном примере используется оператор
+=
со строковым выражением:
var x1:String = "My name is ";
x1 += "Gilbert";
trace(x1); // My name is Gilbert
См. также
Применение | expression1 += expression2 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Присваивает выражению expression1
, которое является объектом XMLList, значение выражения expression1 + expression2
.
Например, следующие две инструкции имеют одинаковый результат:
x += y;
x = x + y;
Все правила оператора сцепления XMLList (
+
) применимы к оператору сцепления XMLList с присваиванием (
+=
).
Операнд | expression1:XMLList —
Объект XMLList, к которому прибавляется новое значение.
|
| expression2:* —
Значение XML или XMLList.
|
Пример Как пользоваться примерами Следующий пример иллюстрирует использование оператора сцепления XMLList с присваиванием (
+=
):
var x1:XML = <location>Athens</location>;
var x2:XML = <location>Paris</location>;
myXMLList = x1 + x2;
var x3:XML = <location>Springfield</location>;
myXMLList += x3;
trace(myXMLList.toXMLString());
Инструкция trace
выводит следующий результат:
<location>Athens</location>
<location>Paris</location>
<location>Springfield</location>
См. также
Применение | expression1 ? expression2 : expression3 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Вычисляет expression1
, и если значение expression1
равно true
, результатом будет значение expression2
; в противном случае результатом будет значение expression3
.
Операнд | expression1:Boolean —
Выражение, принимающее логическое значение; как правило, это выражение сравнения, например x < 5 .
|
| expression2:* —
Значение любого типа.
|
| expression3:* —
Значение любого типа.
|
Результат | * — Значение expression2 или expression3 . |
Пример Как пользоваться примерами Следующая инструкция присваивает значение переменной
x
переменной
z
, так как первое выражение принимает значение
true
:
var x:Number = 5;
var y:Number = 10;
var z = (x < 6) ? x: y;
trace(z); // возвращает 5
Следующий пример иллюстрирует сокращенное написание условного выражения:
var timecode:String = (new Date().getHours() < 11) ? "AM" : "PM";
trace(timecode);
То же условное выражение может быть написано полностью, как в следующем примере:
if (new Date().getHours() < 11) {
var timecode:String = "AM";
} else {
var timecode:String = "PM";
}
trace(timecode);
Применение | --expression expression-- |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Вычитает 1 из значения операнда. Операндом может быть переменная, элемент массива или свойство объекта.
Предекрементная форма оператора (--expression
) вычитает 1 из expression
и возвращает результат.
Постдекрементная форма оператора (expression--
) вычитает 1 из expression
и возвращает исходное значение expression
(значение до вычитания).
Операнд | expression:Number —
Число или переменная, принимающие числовое значение.
|
Результат | Number — Результат уменьшенного значения. |
Пример Как пользоваться примерами Предекрементная форма оператора уменьшает значение
x
до 2 (
x
-
1 = 2
) и возвращает результат как
y
:
var x:Number = 3;
var y:Number = --x; // y равно 2
Постдекрементная форма оператора уменьшает значение
x
до 2 (
x
-
1 = 2
) и возвращает исходное значение
x
в виде результата
y
:
var x:Number = 3;
var y:Number = x--; // y равно 3
Далее приводится пример цикла от 10 до 1, и при каждой итерации цикла значение переменной
i
уменьшается на 1:
for (var i = 10; i > 0; i--) {
trace(i);
}
ПрименениеЯзык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Удаляет свойство объекта, заданное параметром reference
. Результатом является значение true
, если свойство не существует после завершения операции, в противном случае - false
.
Оператор delete
возвращает true
, если вызывается для несуществующего свойства или динамического свойства, не определенного в классе.
Оператор delete
может возвратить значение false
, если параметр reference
не может быть удален.
Невозможно удалить фиксированные свойства или переменные, объявленные при помощи инструкции var
.
Фиксированным свойством является переменная или метод, заявленные в определении класса.
Оператор delete
нельзя использовать для удаления свойства класса, если этот класс не является динамическим классом, добавляемым во время выполнения. Свойства защищенных классов невозможно удалить при помощи оператора delete
. Вместо этого установите свойство на значение null
.
Примечание. Объект удалить невозможно, но можно подготовить объект для сборки мусора, удалив все ссылки на него.
Типичной ссылкой на объект является указывающая на него переменная. Такую ссылку можно удалить, установив переменную на значение null
.
Сборщик мусора удаляет любой объект, на который нет ни одной ссылки.
Операнд | reference:* —
Имя удаляемого свойства.
|
Результат | Boolean — Значение true в случае успешного удаления, иначе значение false . |
Пример Как пользоваться примерами Далее приводится пример удаления свойства объекта:
// создание нового объекта "account"
var account:Object = new Object();
// присваивание свойства name объекту account
account.name = "Jon";
// удаление свойства
delete account.name;
trace(account.name); // undefined
// удаление несуществующего свойства
var fooDeleted:Boolean = delete account.foo;
trace(fooDeleted); // true
В следующем примере удаляется значение элемента массива, но значение свойства length
не изменяется:
var my_array:Array = new Array();
my_array[0] = "abc"; // my_array.length == 1
my_array[1] = "def"; // my_array.length == 2
my_array[2] = "ghi"; // my_array.length == 3
// my_array[2] удален, но Array.length не изменяется
delete my_array[2];
trace(my_array.length); // 3
trace(my_array); // abc,def,
В следующем примере показано, как можно использовать возвращенное в результате выполнения операции delete
логическое значение в качестве условия для последующего выполнения кода. Заметьте, что если элемент был уже удален, повторный вызов оператора delete
для этого элемента возвратит значение false
.
var my_array:Array = [ "abc", "def", "ghi" ];
var deleteWasSuccessful:Boolean
deleteWasSuccessful = delete my_array[0];
if(deleteWasSuccessful) delete my_array[1];
deleteWasSuccessful = delete my_array[0];
if(deleteWasSuccessful) delete my_array[2];
trace(my_array) // вывод: undefined,undefined,ghi
См. также
ПрименениеЯзык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Удаляет элементы или атрибуты XML, заданные параметром reference
.
При использовании с операндом XMLList результатом оператора delete
всегда является значение true
, так как операнд XMLList всегда ссылается на действительный объект (хотя, возможно, и пустой) XMLList.
Операнд | reference:XMLList —
Объект XMLList, указывающий на элементы или атрибуты XML, которые нужно удалить.
|
Результат | Boolean — Значение true в случае успешного удаления, иначе значение false . |
Пример Как пользоваться примерами Следующий пример иллюстрирует удаление атрибута,
затем удаление одного элемента, затем удаление нескольких элементов:
var x1:XML = <x1>
<a id = "52">AYY</a>
<a>AYY 2 </a>
<b>BEE</b>
<c>CEE</c>
</x1>;
trace(x1.toXMLString());
trace("___________");
delete x1.a.@id;
trace(x1.toXMLString());
trace("___________");
delete x1.b;
trace(x1.toXMLString());
trace("___________");
delete x1.a;
trace(x1.toXMLString());
Результатом будет следующее:
<x1>
<a id="52">AYY</a>
<a>AYY 2</a>
<b>BEE</b>
<c>CEE</c>
</x1>
___________
<x1>
<a>AYY</a>
<a>AYY 2</a>
<b>BEE</b>
<c>CEE</c>
</x1>
___________
<x1>
<a>AYY</a>
<a>AYY 2</a>
<c>CEE</c>
</x1>
___________
<x1>
<c>CEE</c>
</x1>
Следующий пример иллюстрирует удаление всего содержимого элемента, включая атрибуты
и дочерние элементы, без удаления самого элемента:
var xml:XML =
<order>
<item id="121">hamburger</item>
<item id="122">fries</item>
<item id="123">chocolate shake</item>
</order>;
delete xml.item[1].*;
delete xml.item[1].@*;
trace(xml);
Результатом данного примера будет следующее:
<order>
<tem id="121">hamburger</item>
<item/>
<item id="123">chocolate shake</item>
</order>
Применение | myXML..childElement1..@attributeName |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Обеспечивает навигацию к потомкам объекта XML или XMLList,
либо (в сочетании с оператором @) находит соответствующие атрибуты потомков.
Соответствующие элементы или атрибуты не обязательно должны быть прямыми потомками объекта XML или XMLList (дочерними объектами первого уровня);
они могут располагаться на более низком уровне дерева (например, быть дочерними объектами второго уровня). Результатом является объект XMLList,
так как может совпадать несколько дочерних элементов или атрибутов.
Порядок узлов в возвращенном объекте XMLList является результатом обхода в глубину. Например:
var myXML:XML = <a>
<b>one
<c>
<b>two</b>
</c>
</b>
<b>three</b>
</a>;
trace(myXML..b[0].toXMLString());
trace("______________");
trace(myXML..b[1].toXMLString());
trace("______________");
trace(myXML..b[2].toXMLString());
Результатом будет следующее:
<b>
one
<c>
<b>two</b>
</c>
</b>
______________
<b>two</b>
______________
<b>three</b>
Для возврата потомков, имена которых совпадают с именами зарезервированных слов ActionScript, используйте
метод XML.descendants()
вместо оператора доступа к потомкам (..), как
показано в следующем примере:
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"));
Операнд | myXML:Object —
Объект XML или XMLList.
|
| childElement1_or_attributeName —
Имя свойства XML или имя атрибута.
|
Пример Как пользоваться примерами Следующий пример иллюстрирует использование оператора доступа к потомкам (..) для возврата потомков объекта XML и возврата атрибута элемента:
var myXML:XML =
<employees>
<employee id = "42">
<firstName>Billy</firstName>
<lastName>Einstein</lastName>
</employee>
<employee id = "43">
<firstName>Sally</firstName>
<lastName>Shostakovich</lastName>
</employee>
</employees>
trace(myXML..firstName);
// <firstName>Billy</firstName>
// <firstName>Sally</firstName>
trace(myXML..@id); //4243
См. также
Применение | expression1 / expression2 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Делит expression1
на expression2
. Результатом операции деления является число с плавающей запятой двойной точности.
Операнд | expression:Number —
Число или переменная, принимающие числовое значение.
|
Результат | Number — Значение с плавающей запятой как результат операции. |
Пример Как пользоваться примерами Следующий пример показывает, что результат деления на 0 будет разным в зависимости от того, является ли делимое положительным числом, отрицательным числом или 0.
trace(3/0); // Бесконечность
trace(-3/0); // Минус бесконечность
trace(0/0); // NaN
См. также
Применение | expression1 /= expression2 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Присваивает выражению expression1
значение выражения expression1 / expression2
. Например, следующие две инструкции идентичны:
x /= y;
x = x / y;
Операнд | expression1:Number —
Число или переменная, принимающие числовое значение.
|
| expression2:Number —
Число или переменная, принимающие числовое значение.
|
РезультатПример Как пользоваться примерами Следующий код иллюстрирует использование оператора деления с присваиванием (
/=
) с переменными и числами:
var a:Number = 10;
var b:Number = 2;
a /= b; trace(a); // 5
См. также
Применение | object.property_or_method |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Обеспечивает доступ к переменным и методам класса, определяет и задает свойства объектов и разделяет импортированные пакеты или классы.
Операнд | object:Object —
Экземпляр класса. Объект может быть экземпляром любого встроенного класса ActionScript или определенного вами класса. Этот операнд всегда стоит слева от оператора "точка" (.).
|
| property_or_method:* —
Имя свойства и метода, связанного с объектом. Все допустимые методы и свойства встроенных классов перечислены в сводных таблицах методов и свойств этого класса. Этот операнд всегда стоит справа от оператора "точка" (.).
|
Результат | * — Переменная, метод или свойство, указанные справа от точки. |
Пример Как пользоваться примерами В следующем примере оператор "точка" используется в качестве разделителя при импорте класса Timer.
import flash.utils.Timer;
В следующем примере создается типовой объект, и оператор "точка" используется для добавления нового свойства.
var obj:Object = new Object();
obj.propertyA = "hello";
trace(obj.propertyA); // hello
См. также
Применение | myXML.childElement
myXML.@attributeName |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Обеспечивает навигацию к дочерним элементам
объекта XML или XMLList, либо (в сочетании с оператором @) возвращает атрибуты
объекта XML или XMLList. Возвращаемым объектом является XMLList, так как может совпадать
несколько дочерних элементов или атрибутов.
Для возврата элементов, имена которых совпадают
с именами зарезервированных слов ActionScript используйте метод XML.elements()
или метод XML.descendants()
вместо
оператора XML "точка" (.), как показано в следующем примере:
var xml:XML =
<student id="206">
<class name="Trigonometry" />
<class name="Spanish 2" />
</student>;
trace(xml.elements("class"));
trace(xml.descendants("class"));
Операнд | myXML:Object —
Объект XML или XMLList.
|
| childElement:* —
Имя свойства XML.
|
| attributeName:* —
Имя атрибута.
|
РезультатПример Как пользоваться примерами Следующий пример иллюстрирует использование оператора "точка" (.) для возврата дочернего элемента объекта XML и возврата атрибута элемента:
var myXML:XML =
<employee id = "42">
<firstName>Billy</firstName>
<lastName>Einstein</lastName>
</employee>;
trace(myXML.firstName); // Billy
trace(myXML.@id); // 42
См. также
Применение | expression1 == expression2 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Проверяет равенство двух выражений. Если выражения равны, результатом будет значение true
.
Если типы данных двух операндов совпадают, определение равенства зависит от типа данных операндов:
- Значения типа int, uint и Boolean считаются равными, если имеют одинаковое значение.
- Числа с совпадающими значениями считаются равными, если ни одно из них не принадлежит к типу
NaN
.
- Если оба операнда имеют значение
null
или undefined
, они считаются равными.
- Строковые выражения равны, если имеют равное количество идентичных символов.
- В отношении объектов XML:
- Если один из операндов является текстовым или атрибутным узлом, а другой имеет простое содержимое, оба операнда преобразуются в строки при помощи метода
toString()
и считаются равными, если совпадают получившиеся в результате строки.
- В противном случае объекты считаются равными, только если совпадают полные имена, атрибуты и свойства потомков обоих объектов.
- Объекты XMLList считаются равными, если имеют одинаковое количество свойств, порядок и значения которых совпадают.
- В случае с объектами Namespace значения считаются равными, если свойства
uri
обоих объектов совпадают.
- В случае с объектами QName значения считаются равными, если свойства
uri
и localName
обоих объектов совпадают.
- Переменные, представляющие объекты, массивы и функции, сравниваются по ссылке. Две переменные равны, если ссылаются на один и тот же объект, массив или одну и ту же функцию. Два отдельных массива никогда не равны, даже если состоят из одинакового количества элементов.
Если типы данных операндов не совпадают, результатом будет значение
false
, за исключением следующих случаев:
- Операнды имеют значения
undefined
и null
. В этом случае результатом будет true
.
- В результате автоматического преобразования типов данных типы данных значений String, Boolean, int, uint и Number преобразуются в совместимые типы, и преобразованные значения равны. В этом случае операнды считаются равными.
- Один из операндов относится к типу XML с простым содержимым (
hasSimpleContent() == true
), и после преобразования обоих операндов в строки при помощи метода toString()
получившиеся в результате строки равны.
- Один из операндов относится к типу XMLList, и одно из следующих условий истинно:
- Свойство
length
объекта XMLList имеет значение 0, а другой объект имеет значение undefined
.
- Свойство
length
объекта XMLList имеет значение 1, и один элемент объекта XMLList совпадает с другим операндом.
Операнд | expression1:Object —
Число, строка, логическое значение, переменная, объект, массив или выражение.
|
| expression2:Object —
Число, строка, логическое значение, переменная, объект, массив или выражение.
|
Результат | Boolean — Значение true , если выражения равны, иначе значение false . |
Пример Как пользоваться примерами В следующем примере используется оператор равенства (
==
) с инструкцией
if
:
var a:String = "David"
var b:String = "David";
if (a == b) {
trace("David is David");
}
Следующие примеры иллюстрируют автоматическое преобразование типов при помощи оператора равенства при сравнении по значению. Строковые значения преобразуются в числа:
var a:Number = 5;
var b:String = "5";
trace(a == b); // true
Логические значения преобразуются в числа, т. е. значение
true
преобразуется в 1, а
false
- в 0:
var c:Number = 1;
var d:Boolean = true;
trace(c == d); // true
var e:Number = 0;
var f:Boolean = false;
trace(e == f); // true
Однако строковые значения не преобразуются в логические, поэтому следующий код возвращает значение
false
:
var g:String = "true";
var h:Boolean = true;
trace(g == h); // false
Следующие примеры иллюстрируют сравнение по ссылке. Первый пример иллюстрирует сравнение двух массивов одинаковой длины и с идентичными элементами.
Оператор равенства возвращает значение
false
при сравнении этих двух массивов.
Хотя массивы идентичны, при сравнении по ссылке необходимо, чтобы и переменная
firstArray
, и переменная
secondArray
ссылались на один и тот же массив.
Во втором примере создается переменная
thirdArray
, которая указывается на тот же массив, что и переменная
firstArray
.
Оператор равенства возвращает значение true при сравнении этих двух массивов, так как обе переменные ссылаются на один и тот же массив.
var firstArray:Array = new Array("one", "two", "three");
var secondArray:Array = new Array("one", "two", "three");
trace(firstArray == secondArray); // false
/* Массивы считаются равными, только
если переменные ссылаются на один и тот же массив. */
var thirdArray:Array = firstArray;
trace(firstArray == thirdArray); // true
См. также
Применение | expression1 > expression2 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Сравнивает два выражения. Если выражение expression1
больше выражения expression2
, то результатом будет значение true
.
Если выражение expression1
меньше или равно выражению expression2
, результатом будет false
.
Если оба операнда относятся к типу String, операнды сравниваются в алфавитном
порядке; все прописные буквы идут перед строчными. В противном случае операнды сначала
преобразуются в числа, затем сравниваются.
Операнд | expression1:Object —
Строка, целое число или число с плавающей запятой.
|
| expression2:Object —
Строка, целое число или число с плавающей запятой.
|
Результат | Boolean — Значение true , если выражение expression1 больше выражения expression2 , в противном случае - false . |
Пример Как пользоваться примерами Следующий пример показывает, что строки сравниваются по алфавиту, когда прописные буквы предшествуют строчным:
var a:String = "first";
var b:String = "First";
trace(a > b); // true
Следующий пример иллюстрирует преобразование значений типа String и Boolean в числа:
var c:Number = 5;
var d:String = "4";
trace(c > d); // true
var e: Number = 2;
var f:Boolean = true;
trace(e > f); // true
Применение | expression1 >= expression2 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Сравнивает два выражения. Если выражение expression1
больше или равно выражению expression2
, то результатом будет значение true
, а если выражение expression1
меньше выражения expression2
, то результатом будет значение false
.
Операнд | expression1:Object —
Строка, целое число или число с плавающей запятой.
|
| expression2:Object —
Строка, целое число или число с плавающей запятой.
|
Результат | Boolean — Значение true , если выражение expression1 больше или равно выражению expression2 , в противном случае - false . |
Пример Как пользоваться примерами В следующем примере при помощи оператора "больше или равно" (>=) определяется, является ли текущий час большим или равным 12:
if (new Date().getHours() >= 12) {
trace("good afternoon");
} else {
trace("good morning");
}
См. также
Применение | expression1 in expression2 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Проверяет, является ли свойство частью определенного объекта.
Для использования оператора in
укажите имя свойства в качестве первого операнда
и объект в качестве второго операнда. Если указанный объект содержит данное
свойство, результатом будет значение true
; в противном случае - false
.
Если указанный объект является объектом Array, оператор in
можно использовать,
чтобы проверить действительность определенного номера индекса. При передаче
целого числа в качестве первого операнда результатом будет true
, если индекс входит
в допустимый диапазон номеров индексов, в противном случае - false
.
Результат | Boolean — Значение true , если выражение expression1 является свойством объекта, представленного выражением expression2 , в противном случае - false . |
Пример Как пользоваться примерами
В следующем примере используется оператор
in
, чтобы показать, что
PI
является свойством объекта Math, а
myProperty
- нет.
trace("PI" in Math); // true
trace("myProperty" in Math); // false
В следующем примере оператор in
используется для того, чтобы показать, что числа 0, 1 и 2 являются действительными номерами индексов в объекте myArray
, а номер 3 - нет.
public var myArray:Array = ["zero", "one", "two"];
trace(0 in myArray); // true
trace(1 in myArray); // true
trace(2 in myArray); // true
trace(3 in myArray); // false
См. также
Применение | ++expression expression++ |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Прибавляет 1 к выражению.
Выражением может быть переменная, элемент массива или свойство
объекта. Преинкрементная форма оператора (++expression
) прибавляет 1 к
expression
и возвращает результат. Постинкрементная форма оператора
(expression++
) прибавляет 1 к expression
и возвращает
исходное значение выражения expression
(значение до сложения).
Операнд | expression:Number —
Число или переменная, принимающие числовое значение.
|
Результат | Number — Результат увеличения значения. |
Пример Как пользоваться примерами
В следующем примере используется преинкрементная форма оператора ++ в цикле
while
для
иллюстрации того, что к массиву прибавляется увеличенное на единицу значение:
var preInc:Array = new Array();
var i:int = 0;
while (i < 10) {
preInc.push(++i);
}
trace(preInc); // 1,2,3,4,5,6,7,8,9,10
В следующем примере используется постинкрементная форма оператора ++ в цикле
while
для
иллюстрации того, что к массиву прибавляется исходное значение:
var postInc:Array = new Array();
var i:int = 0;
while (i < 10) {
postInc.push(i++);
}
trace(postInc); // 0,1,2,3,4,5,6,7,8,9
В следующем примере используется постинкрементная форма оператора ++ для того, чтобы цикл
while
выполнялся пять раз:
var i:int = 0;
while (i++ < 5) {
trace("this is execution " + i);
}
/* вывод:
this is execution 1
this is execution 2
this is execution 3
this is execution 4
this is execution 5
*/
Применение | expression1 != expression2 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Проверяет на прямую противоположность оператору равенства (==
). Если expression1
равно expression2
, результатом будет false
. Как и в случае с оператором равенства (==
), определение равенства зависит от сравниваемых типов данных.
Если типы данных двух операндов совпадают, определение равенства зависит от типа данных операндов:
- Значения типа int, uint и Boolean считаются равными, если имеют одинаковое значение.
- Числа с совпадающими значениями считаются равными, если ни одно из них не принадлежит к типу
NaN
.
- Если оба операнда имеют значение
null
или undefined
, они считаются равными.
- Строковые выражения равны, если имеют равное количество идентичных символов.
- В отношении объектов XML:
- Если один из операндов является текстовым или атрибутным узлом, а другой имеет простое содержимое, оба операнда преобразуются в строки при помощи метода
toString()
и считаются равными, если совпадают получившиеся в результате строки.
- В противном случае объекты считаются равными, только если совпадают полные имена, атрибуты и свойства потомков обоих объектов.
- Объекты XMLList считаются равными, если имеют одинаковое количество свойств, порядок и значения которых совпадают.
- В случае с объектами Namespace значения считаются равными, если свойства
uri
обоих объектов совпадают.
- В случае с объектами QName значения считаются равными, если свойства
uri
и localName
обоих объектов совпадают.
- Переменные, представляющие объекты, массивы и функции, сравниваются по ссылке. Две переменные равны, если ссылаются на один и тот же объект, массив или одну и ту же функцию. Два отдельных массива никогда не равны, даже если состоят из одинакового количества элементов.
Если типы данных операндов не совпадают, оператор неравенства (
!=
) возвращает значение
true
, за исключением следующих случаев:
- Операнды имеют значения
undefined
и null
. В этом случае результатом будет true
.
- В результате автоматического преобразования типов данных типы данных значений String, Boolean, int, uint и Number преобразуются в совместимые типы, и преобразованные значения равны. В этом случае операнды считаются равными.
- Один из операндов относится к типу XML с простым содержимым (
hasSimpleContent() == true
), и после преобразования обоих операндов в строки при помощи метода toString()
получившиеся в результате строки равны.
- Один из операндов относится к типу XMLList, и одно из следующих условий истинно:
- Свойство
length
объекта XMLList имеет значение 0, а другой объект имеет значение undefined
.
- Свойство
length
объекта XMLList имеет значение 1, и один элемент объекта XMLList совпадает с другим операндом.
Операнд | expression1:Object —
Число, строка, логическое значение, переменная, объект, массив или функция.
|
| expression2:Object —
Число, строка, логическое значение, переменная, объект, массив или функция.
|
Результат | Boolean — Значение true , если выражения не равны, иначе значение false . |
Пример Как пользоваться примерами Следующий пример иллюстрирует результат использования оператора неравенства (
!=
):
trace(5 != 8); // true
trace(5 != 5); // false
Следующий пример иллюстрирует использование оператора неравенства (
!=
) в инструкции
if
:
var a:String = "David";
var b:String = "Fool";
if (a != b) {
trace("David is not a fool");
}
Следующий пример иллюстрирует сравнение двух функций по ссылке:
var a:Function = function() { trace("foo"); };
var b:Function = function() { trace("foo"); };
a(); // foo
b(); // foo
trace(a != b); // true
a = b;
a(); // foo
b(); // foo
trace(a != b); // false
Следующий пример иллюстрирует сравнение двух массивов по ссылке:
var a:Array = [ 1, 2, 3 ];
var b:Array = [ 1, 2, 3 ];
trace(a); // 1,2,3
trace(b); // 1,2,3
trace(a != b); // true
a = b;
trace(a); // 1,2,3
trace(b); // 1,2,3
trace(a != b); // false
См. также
Применение | expression instanceof function |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Проверяет, содержит ли цепочка прототипов выражения объект-прототип для function
.
Оператор instanceof
используется для обратной совместимости с ECMAScript редакция 3
и может быть полезным для опытных программистов, которые предпочитают использовать наследование на базе прототипов с использованием функций конструктора вместо классов.
Для проверки соответствия объекта определенному типу данных используйте оператор is
.
При использовании с классами оператор instanceof
действует подобно оператору is
, так как цепочка прототипов класса включает в себя все его суперклассы.
Однако интерфейсы не включаются в цепочку прототипов, поэтому оператор instanceof
всегда выдает значение false
при использовании с интерфейсами,
тогда как оператор is
выдает значение true
, если объект принадлежит классу, который реализует указанный интерфейс.
Примечание. Оператор is
в ActionScript является эквивалентом оператора instanceof
в Java.
Операнд | expression:Object —
Объект, содержащий цепочку прототипов для вычисления.
|
| function:Object —
Объект-функция (или класс).
|
Результат | Boolean — Возвращает значение true , если цепочка прототипов выражения expression включает в себя объект-прототип для function , в противном случае - false . |
Пример Как пользоваться примерами
В следующем примере создается экземпляр класса Sprite с именем
mySprite
, и оператор
instanceof
используется для проверки того,
включает ли в себя цепочка прототипов
mySprite
объекты-прототипы классов Sprite и DisplayObject.
Для классов Sprite и DisplayObject выдается значение
true
, так как объекты-прототипы для Sprite и DisplayObject входят в цепочку прототипов
mySprite
.
var mySprite:Sprite = new Sprite();
trace(mySprite instanceof Sprite); // true
trace(mySprite instanceof DisplayObject); // true
В следующем примере используется интерфейс IBitmapDrawable для иллюстрации того, что оператор
instanceof
не работает с интерфейсами.
Оператор
is
возвращает значение
true
, так как класс DisplayObject, который является суперклассом класса Sprite, реализует интерфейс IBitmapDrawable.
var mySprite:Sprite = new Sprite();
trace(mySprite instanceof IBitmapDrawable); // false
trace(mySprite is IBitmapDrawable); // true
См. также
Применение | expression1 is expression2 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Проверяет совместимость объекта с определенным типом данных, классом или интерфейсом.
Для сравнения типов используйте оператор is
вместо оператора instanceof
.
Оператор is
можно также использовать, чтобы проверить, реализует ли объект интерфейс.
Результат | Boolean — Значение true , если выражение expression1 совместимо с типом данных, классом или интерфейсом, указанным в выражении expression2 , в противном случае - false . |
Пример Как пользоваться примерами
В следующем примере создается экземпляр класса Sprite с именем
mySprite
, и при помощи оператора
is
проверяется, является ли экземпляр
mySprite
экземпляром классов Sprite и DisplayObject и реализует ли он интерфейс IEventDispatcher.
import flash.display.*;
import flash.events.IEventDispatcher;
var mySprite:Sprite = new Sprite();
trace(mySprite is Sprite); // true
trace(mySprite is DisplayObject); // true
trace(mySprite is IEventDispatcher); // true
См. также
Применение | expression1 < expression2 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Сравнивает два выражения. Если выражение expression1
меньше выражения expression2
, то результатом будет значение true
.
Если выражение expression1
больше или равно выражению expression2
, результатом будет false
.
Если оба операнда относятся к типу String, операнды сравниваются в алфавитном порядке;
все прописные буквы идут перед строчными.
В противном случае операнды сначала преобразуются в числа, затем сравниваются.
Операнд | expression1:Object —
Строка, целое число или число с плавающей запятой.
|
| expression2:Object —
Строка, целое число или число с плавающей запятой.
|
Результат | Boolean — Значение true , если выражение expression1 меньше выражения expression2 , в противном случае - false . |
Пример Как пользоваться примерами Следующие примеры иллюстрируют результаты
true
и
false
при сравнении числовых и строковых выражений:
trace(5 < 10); // true
trace(2 < 2); // false
trace(10 < 3); // false
trace("Allen" < "Jack"); // true
trace("Jack" < "Allen"); // false
trace("11" < "3"); // true
trace("11" < 3); // false (числовое сравнение)
trace("C" < "abc"); // true
trace("A" < "a"); // true
Применение | expression1 <= expression2 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Сравнивает два выражения. Если выражение expression1
меньше или равно выражению expression2
результатом будет значение true
. Если выражение expression1
больше выражения expression2
, результатом будет false
.
Если оба операнда относятся к типу String, операнды сравниваются в алфавитном порядке; все прописные буквы идут перед строчными. В противном случае операнды сначала преобразуются в числа, затем сравниваются.
Операнд | expression1:Object —
Строка, целое число или число с плавающей запятой.
|
| expression2:Object —
Строка, целое число или число с плавающей запятой.
|
Результат | Boolean — Значение true , если выражение expression1 меньше или равно выражению expression2 , в противном случае - false . |
Пример Как пользоваться примерами Следующие примеры иллюстрируют результаты
true
и
false
при сравнении числовых и строковых выражений:
trace(5 <= 10); // true
trace(2 <= 2); // true
trace(10 <= 3); // false
trace("Allen" <= "Jack"); // true
trace("Jack" <= "Allen"); // false
trace("11" <= "3"); // true
trace("11" <= 3); // false (числовое сравнение)
trace("C" <= "abc"); // true
trace("A" <= "a"); // true
ПрименениеЯзык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Указывает на начало комментария в сценарии. Символы, расположенные между разделителем комментариев (//
) и символом конца строки, воспринимаются как комментарий и игнорируются.
Данный разделитель используется для однострочных комментариев; для комментариев, занимающих несколько последовательных строк, используются разделители /*
и */
.
Операнд | comment:* —
Любые символы.
|
Пример Как пользоваться примерами Следующий пример иллюстрирует однострочный комментарий:
// Любой текст, идущий после разделителя строчных комментариев, игнорируется во время компиляции
См. также
Применение | expression1 && expression2 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Возвращает выражение expression1
, если оно имеет значение false
или может быть преобразовано в false
, в противном случае возвращает выражение expression2
.
Значениями, которые могут быть преобразованы в false
, являются 0, NaN
, null
и undefined
.
Если в качестве expression2
используется вызов функции, функция не будет вызвана, если expression1
принимает значение false
.
Если оба операнда относятся к типу Boolean, результатом будет true
, только если оба операнда имеют значение true
, как
показано в следующей таблице:
Выражение |
Значение |
true && true |
true |
true && false |
false |
false && false |
false |
false && true |
false |
Операнд | expression1:* —
Значение или выражение любого типа.
|
| expression2:* —
Значение или выражение любого типа.
|
Результат | * — Значение типа Boolean, если оба операнда относятся к типу Boolean. В противном случае результатом является значение любого из выражений. |
Пример Как пользоваться примерами В следующем примере используется логический оператор AND (
&&
) для проверки того, выиграл ли участник игру. Переменные
turns
и
score
обновляются, когда игрок берет следующую попытку или набирает очки. Сценарий выводит строку "You Win the Game!", если игрок набирает 75 очков или больше за три попытки или меньше.
var turns:Number = 2;
var score:Number = 77;
if ((turns <= 3) && (score >= 75)) {
trace("You Win the Game!");
} else {
trace("Try Again!");
}
См. также
Применение | expression1 &&= expression2 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Присваивает выражению expression1
значение выражения expression1 && expression2
. Например, следующие две инструкции идентичны:
x &&= y;
x = x && y;
Операнд | expression1:* —
Значение любого типа.
|
| expression2:* —
Значение любого типа.
|
Результат | * — Значение типа Boolean, если оба операнда относятся к типу данных Boolean. В противном случае результатом является значение любого из двух выражений. |
Пример Как пользоваться примерами В следующем примере переменная
myTag
изменяется, если не принимает значение
false
. Данный метод использует свойство логического оператора AND (
&&
), благодаря которому возвращается значение выражения
expression1
, если выражение
expression1
принимает значение
false
, в противном случае возвращается значение выражения
expression2
.
Если переменная
myTag
уже содержит значение, которое может быть преобразовано в
true
,
myVar
изменяется, чтобы выглядеть, как XML-тег. Однако если
myVar
содержит значение, которое может быть преобразовано в
false
, например
null
,
""
(пустая строка) и
undefined
, переменная
myVar
не изменяется.
var myVar:String = 'tag';
myVar &&= "<" + myVar + "/>";
trace (myVar); // вывод: <tag/>
Того же результата можно достигнуть при помощи инструкции
if
, как показано в следующем примере:
var myVar:String = 'tag';
if (myVar != '') {
myVar = "<" + myVar + "/>";
}
trace (myVar); // вывод: <tag/>
Преимуществом использования инструкции
if
является то, что код становится более понятным, тогда как преимущество использования логического оператора AND с присваиванием (
&&=
) заключается в том, что не требуется указывать точное значение по умолчанию для типа данных.
См. также
ПрименениеЯзык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Инвертирует логическое значение переменной или выражения. Если expression
является переменной с абсолютным или преобразованным значением true
, то значением !expression
будет false
. Если выражение x && y
принимает значение false
, то выражение !(x && y)
будет иметь значение true
.
Следующие выражения иллюстрируют результат использования логического оператора NOT (!):
!true
возвращает false
.
!false
возвращает true
.
Операнд | expression:Boolean —
Выражение или переменная, принимающие логическое значение.
|
Результат | Boolean — Логическое значение как результат логической операции. |
Пример Как пользоваться примерами В следующем примере для переменной
happy
задается значение
false
.
Условие
if
вычисляет условие
!happy
, и если условие имеет значение
true
,
инструкция
trace()
выводит строку.
var happy:Boolean = false;
if (!happy) {
trace("don't worry, be happy"); // don't worry, be happy
}
Инструкция
trace
выполняется, так как
!false
равно
true
.
См. также
Применение | expression1 || expression2 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Возвращает выражение expression1
, если оно имеет значение true
или может быть преобразовано в true
, в противном случае возвращает выражение expression2
.
Если в качестве expression2
используется вызов функции, функция не будет вызвана, если expression1
принимает значение true
.
Если оба операнда относятся к типу Boolean, результатом будет true
, если одно из выражений или оба выражения имеют значение true
; результатом будет false
, только если оба выражения имеют значение false
, как показано в следующей таблице:
Выражение |
Значение |
true || true |
true |
true || false |
true |
false || false |
false |
false || true |
true |
Операнд | expression1:* —
Значение любого типа.
|
| expression2:* —
Значение любого типа.
|
Результат | * — Значение типа Boolean, если оба операнда относятся к типу данных Boolean. В противном случае результатом является значение любого из двух выражений. |
Пример Как пользоваться примерами В следующем примере используется логический оператор OR (
||
) в инструкции
if
: Второе выражение принимает значение
true,
, поэтому окончательным результатом будет значение
true
:
var a:Number = 10;
var b:Number = 250;
var start:Boolean = false;
if ((a > 25) || (b > 200) || (start)) {
trace("the logical OR test passed"); // the logical OR test passed
}
Сообщение "the logical OR test passed" отображается, так как одно из условий в инструкции
if
принимает значение true (
b > 200
).
В следующем примере показано, как использование вызова функции в качестве второго операнда может привести к непредвиденным результатам. Если выражение слева от операнда принимает значение true
, этот результат возвращается без вычисления выражения справа (функция fx2()
не вызывается).
function fx1():Boolean {
trace("fx1 called");
return true;
}
function fx2():Boolean {
trace("fx2 called");
return true;
}
if (fx1() || fx2()) {
trace("IF statement entered");
}
См. также
Применение | expression1 ||= expression2 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Присваивает выражению expression1
значение выражения expression1 || expression2
. Например, следующие две инструкции идентичны:
x ||= y;
x = x || y;
Операнд | expression1:* —
Значение любого типа.
|
| expression2:* —
Значение любого типа.
|
Результат | * — Значение типа Boolean, если оба операнда относятся к типу данных Boolean. В противном случае результатом является значение любого из двух выражений. |
Пример Как пользоваться примерами В следующем примере значение по умолчанию присваивается ранее объявленной переменной с именем
myVar
. Данный метод использует свойство логического оператора OR (
||
), благодаря которому возвращается значение выражения
expression1
, если выражение
expression1
принимает значение
true
, в противном случае возвращается значение выражения
expression2
.
Если переменная
myVar
уже содержит значение, которое может быть преобразовано в
true
, то
myVar
не изменяется. Однако если
myVar
содержит значение, которое может быть преобразовано в
false
, например значения
null
,
""
(пустая строка) и
undefined
, переменной
myVar
присваивается значение
"default"
.
См. также
Применение | expression1 % expression2 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Вычисляет остаток от деления выражения expression1
на выражение expression2
. Если один из операндов не является числом, оператор остатка от деления (%
) попытается преобразовать его в число.
Знак результата вычисления остатка от деления совпадает со знаком делимого (первого числа). Например, результатом вычисления обоих выражений - -4 % 3
и -4 % -3
- будет -1
.
Операнд | expression1:Number —
Число или выражение, принимающие числовое значение. Строка, содержащая только числовые символы, принимает числовое значение.
|
| expression2:Number —
Число или выражение, принимающие числовое значение. Строка, содержащая только числовые символы, принимает числовое значение.
|
Результат | Number — Результат арифметической операции. |
Пример Как пользоваться примерами В следующем примере с числами используется оператор остатка от деления (
%
):
trace(12 % 5); // 2
trace(4,3 % 2,1); // 0.0999999999999996
trace(4 % 4); // 0
Первая запись возвращает 2, а не 12/5 или 2,4, так как оператор остатка от деления (
%
) возвращает только остаток. Вторая запись возвращает число 0.0999999999999996 вместо ожидавшегося 0.1 из-за ограниченной точности числа с плавающей запятой в двоичных вычислениях.
См. также
Применение | expression1 %= expression2 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Присваивает выражению expression1
значение выражения expression1 % expression2
. Следующие две инструкции идентичны:
x %= y;
x = x % y;
Операнд | expression1:Number —
Число или выражение, принимающие числовое значение.
|
| expression2:Number —
Число или выражение, принимающие числовое значение.
|
Результат | Number — Результат арифметической операции. |
Пример Как пользоваться примерами В следующем примере переменной
a
присваивается значение 4:
var a:Number = 14;
var b:Number = 5;
a %= b;
trace(a); // 4
См. также
Применение | expression1 * expression2 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Перемножает два числовых выражения. Если оба выражения являются целыми числами, их произведение также будет целым числом. Если одно из выражений или оба выражения являются числами с плавающей запятой, произведение будет выражено числом с плавающей запятой.
Операнд | expression1:Number —
Число или выражение, принимающие числовое значение.
|
| expression2:Number —
Число или выражение, принимающие числовое значение.
|
Результат | Number — Целое число или число с плавающей запятой. |
Пример Как пользоваться примерами Следующая инструкция перемножает целые числа 2 и 3, результатом чего является целое число 6:
Данная инструкция перемножает числа с плавающей запятой 2,0 и 3,1416, в результате чего получается число 6,2832, которое также является числом с плавающей запятой:
trace(2.0 * 3.1416); // 6.2832
Применение | expression1 *= expression2 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Присваивает выражению expression1
значение выражения expression1 * expression2
. Например, следующие два выражения идентичны:
x *= y
x = x * y
Операнд | expression1:Number —
Число или выражение, принимающие числовое значение.
|
| expression2:Number —
Число или выражение, принимающие числовое значение.
|
Результат | Number — Значение выражения expression1 * expression2 . Если выражение не может быть преобразовано в числовое значение, возвращается значение NaN (не число). |
Пример Как пользоваться примерами В следующем примере переменной
a
присваивается значение 50:
var a:Number = 5;
var b:Number = 10;
trace(a *= b); // 50
Вторая и третья строки в следующем примере вычисляют выражения справа от знака равенства и присваивают результаты переменным
c
и
d
:
var i:Number = 5;
var c:Number = 4 - 6;
var d:Number = i + 2;
trace(c *= d); // -14
См. также
Применение | namespace::property
namespace::method()
namespace::xmlObject.property
namespace::xmlObject.@attribute |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Определяет пространство имен свойства, метода, свойства XML или атрибута XML.
Операнд | namespace:Object —
Определяющее пространство имен.
|
| propertyName:Object —
Свойство, метод, свойство XML или атрибут XML для определения.
|
Пример Как пользоваться примерами В следующем примере оператор
::
используется для определения двух методов с одинаковыми именами в двух различных пространствах имен:
public class NamespaceExample extends Sprite {
public namespace French;
public namespace Hawaiian;
public function NamespaceExample() {
trace(Hawaiian::hello()); // aloha
trace(French::hello()); // bonjour
}
Hawaiian function hello():String {
return "aloha";
}
French function hello():String {
return "bonjour";
}
}
В следующем примере оператор
::
используется для определения свойств XML при заданных пространствах имен:
var soap:Namespace = new Namespace("http://schemas.xmlsoap.org/wsdl/soap/");
var w:Namespace = new Namespace("http://weather.example.org/forecast");
var myXML:XML =
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
<soap:Body>
<w:forecast xmlns:w="http://weather.example.org/forecast">
<w:city>Quito</w:city>
<w:country>Ecuador</w:country>
<date>2006-01-14</date>
</w:forecast>
</soap:Body>
</soap:Envelope>;
trace(myXML.soap::Body.w::forecast.w::city); // Quito
См. также
Применение | new constructor(parameters) |
Версии среды выполнения: | Flash Player 5 |
Создает экземпляр класса. Оператор new
можно использовать с классом или с переменной типа Class для создания экземпляра класса.
Оператор new
обычно используется с объектом класса для создания экземпляра класса. Например, инструкция new Sprite()
создает экземпляр класса Sprite.
Оператор new
можно также использовать, чтобы связать класс со встроенным активом, который является внешним объектом, например изображением, звуком или шрифтом, скомпилированным в SWF-файл.
Каждый встроенный актив представлен уникальным классом встроенного актива. Для доступа к встроенному активу необходимо использовать оператор new
, чтобы инициализировать связанный с ним класс.
Впоследствии можно вызвать соответствующие методы и свойства класса встроенного актива для управления этим встроенным активом.
Если вы предпочитаете определять классы с использованием объектов Function вместо ключевого слова class
, то оператор new
можно использовать для создания объектов на основе функций конструктора.
Не путайте функции конструктора с методами конструктора класса. Функция конструктора - это объект Function, определенный при помощи ключевого слова function
, но не являющийся частью определения класса.
При использовании функций конструктора для создания объектов необходимо использовать наследование от прототипа вместо наследования от класса.
Операнд | constructor:* —
Класс, функция или переменная, имеющие значение типа Class.
|
| parameters:* —
Один или несколько разделенных запятой параметров.
|
Пример Как пользоваться примерами Следующий пример создает класс
Book
и использует оператор
new
для создания объектов
book1
и
book2
.
class Book {
var bName:String;
var bPrice:Number;
public function Book(nameParam:String, priceParam:Number){
bName = nameParam;
bPrice = priceParam;
}
}
var book1:Book = new Book("Confederacy of Dunces", 19.95);
var book2:Book = new Book("The Floating Opera", 10.95);
trace(book1); // [объект Book]
В следующем примере оператор
new
используется для создания экземпляра класса Array с 18 элементами:
var golfCourse:Array = new Array(18);
См. также
Применение | object = {name1 : value1, name2 : value2,... nameN : valueN} |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Создает новый объект и инициализирует его с заданными парами свойств name
и value
. Использование данного оператора подобно использованию синтаксиса new Object
и заполнению пар свойств при помощи оператора присваивания. Прототип вновь созданного объекта в общем называется объектом Object.
Данный оператор также используется для разграничения блоков последовательного кода, связанного с инструкциями управления процессом (for
, while
, if
, else
, switch
) и функциями.
Операнд | object:Object —
Создаваемый объект.
|
| name1,2,...N:Object —
Имена свойств.
|
| value1,2,...N:Object —
Соответствующие значения для каждого свойства name .
|
РезультатПример Как пользоваться примерами Первая строка следующего кода создает пустой объект при помощи оператора инициализации объекта ({}); вторая строка создает новый объект при помощи функции конструктора:
var object:Object = {};
var object:Object = new Object();
В следующем примере создается объект
account
и инициализируются свойства
name
,
address
,
city
,
state
,
zip
и
balance
с сопутствующими значениями:
var account:Object = {name:"Adobe Systems, Inc.", address:"601 Townsend Street", city:"San Francisco", state:"California", zip:"94103", balance:"1000"};
for (i in account) {
trace("account."+i+" = "+account[i]);
}
В следующем примере показано, как можно вложить массив в инициализатор объекта:
var person:Object = {name:"Gina Vechio", children:["Ruby", "Chickie", "Puppa"]};
Используя информацию из предыдущего примера, следующий код выдает тот же результат при помощи функции конструктора:
var person:Object = new Object();
person.name = "Gina Vechio";
person.children = new Array();
person.children[0] = "Ruby";
person.children[1] = "Chickie";
person.children[2] = "Puppa";
См. также
Применение | (expression1[, expression2]) (expression1, expression2) function(parameter1,..., parameterN) |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Группирует один или несколько параметров, последовательно вычисляет выражения или обрамляет один или несколько параметров и передает их в качестве аргументов функции, предшествующей круглым скобкам.
Применение 1: Определяет порядок выполнения операторов. Круглые скобки переопределяют обычный порядок старшинства так, что выражения в скобках вычисляются в первую очередь. В случае со вложенными круглыми скобками содержимое самых внутренних скобок вычисляется перед содержимым внешних.
Применение 2: Последовательно вычисляет серию выражений, разделенных запятой, и возвращает результат последнего выражения.
Применение 3: Обрамляет один или несколько параметров и передает их функции, предшествующей круглым скобкам.
Операнд | expression1:Object —
Выражение, которое может состоять из чисел, строк, переменных или текста.
|
| expression2:Object —
Выражение, которое может состоять из чисел, строк, переменных или текста.
|
| function:Function —
Функция, применяемая к содержимому круглых скобок.
|
| parameter1...parameterN:Object —
Серия параметров для выполнения перед передачей результатов в качестве аргументов функции, расположенной вне круглых скобок.
|
Пример Как пользоваться примерами Применение 1: Следующие инструкции иллюстрируют использование круглых скобок для определения порядка вычисления выражений:
trace((2 + 3) * (4 + 5)); // 45
trace(2 + (3 * (4 + 5))); // 29
trace(2 + (3 * 4) + 5); // 19
trace(2 + (3 * 4) + 5); // 19
Применение 2: В следующем примере вычисляется функция
foo()
, а затем функция
bar()
, и возвращается результат вычисления выражения
a + b
:
var a:Number = 1;
var b:Number = 2;
function foo() {
a += b;
}
function bar() {
b *= 10;
}
trace((foo(), bar(), a + b)); // 23
Применение 3: Следующий пример иллюстрирует использование круглых скобок с функциями:
var today:Date = new Date();
trace(today.getFullYear()); // выводит текущий год
function traceParameter(param):void {
trace(param);
}
traceParameter(2 * 2); // 4
См. также
ПрименениеЯзык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Вычисляет выражение в ECMAScript для XML-конструкции XML (E4X). Например, myXML.(lastName == "Smith")
определяет элементы XML с именем lastName
и значением "Smith"
. Результатом является объект XMLList.
Операнд | myXML:* —
Объект XML или XMLList.
|
| expression:* —
Выражение, определяющее подходящие элементы.
|
Результат | XMLList — Заданный круглыми скобками XMLList. |
Пример Как пользоваться примерами Следующий пример иллюстрирует использование круглых скобок для определения элементов и атрибутов:
var myXML:XML =
<employees>
<employee id = "42">
<firstName>Joe</firstName>
<lastName>Smith</lastName>
</employee>
<employee id = "43">
<firstName>Susan</firstName>
<lastName>Jones</lastName>
</employee>
<employee id = "44">
<firstName>Anne</firstName>
<lastName>Smith</lastName>
</employee>
</employees>;
trace(myXML.employee.(lastName == "Smith").@id.toXMLString());
// 42
// 44
trace(myXML.employee.(Number(@id) > 42).@id.toXMLString());
// 43
// 44
См. также
ПрименениеЯзык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
При использовании перед символами и после них указывает на то, что символы имеют литеральное значение и считаются регулярным выражением (RegExp), а не переменной, строкой или другим элементом ActionScript. Однако заметьте, что две последовательные левые косые черты (//
) указывают на начало комментария.
Операнд | pattern:String —
Последовательность из одного или нескольких символов, определяющая шаблон регулярного выражения.
|
| flags:String —
Последовательность следующих символов или отсутствие символов: g (для флага global ), i (для флага ignoreCase ), s (для флага dotall ), x (для флага extended ).
|
Пример Как пользоваться примерами В следующем примере левая косая черта используется (/) для присваивания значения переменной типа RegExp (флаг
i
установлен для игнорирования регистра в соответствии):
var myRegExp:RegExp = /foo-\d+/i;
trace(myRegExp.exec("ABC Foo-32 def.")); // Foo-32
См. также
Применение | expression1 === expression2 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Проверяет равенство двух выражений, но не выполняет автоматическое преобразование данных.
Если оба выражения, включая их типы данных, равны, результатом будет значение true
.
Оператор строгого равенства (===
) имеет три сходства с оператором равенства (==
):
- Числа и логические значения сравниваются на основе значений и считаются равными, если имеют одинаковое значение.
- Строковые выражения равны, если имеют равное количество идентичных символов.
- Переменные, представляющие объекты, массивы и функции, сравниваются по ссылке. Две переменные равны, если ссылаются на один и тот же объект, массив или одну и ту же функцию. Два отдельных массива никогда не равны, даже если состоят из одинакового количества элементов.
Оператор строгого равенства (
===
) имеет лишь два отличия от оператора равенства (
==
):
- Оператор строгого равенства выполняет автоматическое преобразование данных только для числовых типов данных (Number, int и uint),
тогда как оператор равенства выполняет автоматическое преобразование данных для всех примитивных типов данных.
- При сравнении значений
null
и undefined
оператор строгого равенства возвращает значение false
.
В ActionScript 3.0 оператор строгого равенства выдает результаты, отличные от тех, что он выдавал в ActionScript 2.0, в двух ситуациях, в которых используются примитивные значения (например,
var x:Number = 1
) с примитивными объектами (например,
var x:Number = new Number(1)
).
Это происходит потому, что ActionScript 3.0 стирает различие между примитивными значениями и примитивными объектами-оболочками.
Во-первых, сравнения между примитивными значениями и примитивными объектами, содержащими одинаковые значения, возвращают значение true
в ActionScript 3.0, но false
в предыдущих версиях. В предыдущих версиях примитивные значения относятся к типу данных Boolean, Number или String, тогда как примитивный объект всегда относится к типу данных Object, а не Boolean, Number или String.
На практике это различие проявляется в том, что следующий код даст в результате значение false
в предыдущих версиях ActionScript, так как типы данных операндов не совпадают, но в ActionScript 3.0 результатом будет значение true
, так как примитивные значения относятся к типу Boolean, Number, int, uint или String независимо от того, включены они в объект или нет.
var num1:Number = 1;
var num2:Number = new Number(1);
trace(num1 === num2); // true в ActionScript 3.0, false в ActionScript 2.0
Во-вторых, сравнения между двумя примитивными объектами, содержащими одинаковые значения, возвращают значение
true
в ActionScript 3.0, но
false
в предыдущих версиях.
var num1:Number = new Number(1);
var num2:Number = new Number(1);
trace(num1 == num2); // true в ActionScript 3.0, false в ActionScript 2.0
trace(num1 === num2); // true в ActionScript 3.0, false в ActionScript 2.0
Это происходит потому, что в предыдущих версиях ActionScript обе переменные относятся к типу данных Object и сравниваются по ссылке, и операции равенства и строгого равенства имеют своим результатом значение
false
.
Однако в ActionScript 3.0 обе переменные относятся к типу данных Number и сравниваются по значению, и операторы равенства и строгого равенства возвращают значение
true
.
Операнд | expression1:Object —
Число, строка, логическое значение, переменная, объект, массив или функция.
|
| expression2:Object —
Число, строка, логическое значение, переменная, объект, массив или функция.
|
Результат | Boolean — Логическое значение как результат сравнения. |
Пример Как пользоваться примерами Следующий пример показывает, что строгое равенство (
===
) подобно равенству (
==
) при совпадении значений и типов данных:
var string1:String = "5";
var string2:String = "5";
trace(string1 == string2); // true
trace(string1 === string2); // true
Следующий пример показывает, что оператор строгого равенства не преобразует тип данных String в тип Number, но оператор равенства (
==
) выполняет такое преобразование:
// Оператор равенства (==) преобразует 5 в "5", а оператор строгого равенства - нет
var string1:String = "5";
var num:Number = 5;
trace(string1 == num); // true
trace(string1 === num); // false
Следующий пример показывает, что оператор строгого равенства не преобразует логические значения в числовые, но оператор равенства выполняет такое преобразование:
var num:Number = 1;
var bool:Boolean = true;
trace(num == bool); // true
trace(num === bool); // false
Следующий пример показывает, что оператор строгого равенства преобразует типы данных int и uint:
var num1:Number = 1;
var num2:int = 1;
var num3:uint = 1;
trace(num1 === num2); // true
trace(num1 === num3); // true
Следующий пример показывает, что оператор строгого равенства интерпретирует типы данных
null
и
undefined
как неравные, но оператор равенства считает их равными:
trace(null == undefined); // true
trace(null === undefined); // false
См. также
Применение | expression1 !== expression2 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Проверяет на прямую противоположность оператору строгого равенства (===
).
Оператор строгого равенства работает так же, как и оператор неравенства, за исключением того, что преобразуются только типы данных int и uint.
Если expression1
равно expression2
, и их типы данных равны, результатом будет значение false
.
Оператор строгого неравенства (!==
) имеет три сходства с оператором неравенства (!=
):
- Числа и логические значения сравниваются на основе значений и считаются равными, если имеют одинаковое значение.
- Строковые выражения равны, если имеют равное количество идентичных символов.
- Переменные, представляющие объекты, массивы и функции, сравниваются по ссылке. Две переменные равны, если ссылаются на один и тот же объект, массив или одну и ту же функцию. Два отдельных массива никогда не равны, даже если состоят из одинакового количества элементов.
Оператор строгого неравенства имеет два отличия от оператора неравенства (
!=
):
- Оператор строгого неравенства (
!==
) выполняет автоматическое преобразование данных только для числовых типов: Number, int и uint,
тогда как оператор неравенства (!=
) выполняет автоматическое преобразование данных для всех примитивных типов данных.
- При сравнении значений
null
и undefined
оператор строгого неравенства (!==
) возвращает true
.
Операнд | expression1:Object —
Число, строка, логическое значение, переменная, объект, массив или функция.
|
| expression2:Object —
Число, строка, логическое значение, переменная, объект, массив или функция.
|
Результат | Boolean — Логическое значение как результат сравнения. |
Пример Как пользоваться примерами Комментарии в следующем коде показывают значения, возвращенные в результате выполнения операций, в которых используются операторы равенства (
==
), строгого равенства (
===
) и строгого неравенства (
!==
):
var s1:String = "5";
var s2:String = "5";
var s3:String = "Hello";
var n:Number = 5;
var b:Boolean = true;
trace(s1 == s2); // true
trace(s1 == s3); // false
trace(s1 == n); // true
trace(s1 == b); // false
trace(s1 === s2); // true
trace(s1 === s3); // false
trace(s1 === n); // false
trace(s1 === b); // false
trace(s1 !== s2); // false
trace(s1 !== s3); // true
trace(s1 !== n); // true
trace(s1 !== b); // true
См. также
ПрименениеЯзык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
При использовании перед символами и после них указывает на то, что символы имеют литеральное значение и считаются строкой, а не переменной, числовым значением или другим элементом ActionScript.
Операнд | text:String —
Последовательность символов или отсутствие символов.
|
Пример Как пользоваться примерами В следующем примере кавычки (") используются для указания на то, что значением переменной
yourGuess
является литеральная строка
"Prince Edward Island"
, а не имя переменной.
var yourGuess:String = "Prince Edward Island";
submit_btn.onRelease = function() { trace(yourGuess); };
// Prince Edward Island
См. также
Применение | -expression expression1 - expression2 |
Версии среды выполнения: | Flash Player 9 |
Используется для отрицания или вычитания.
Применение 1: При использовании для отрицания этот оператор меняет на обратный знак числового выражения.
Применение 2: При использовании для вычитания этот оператор выполняет операцию арифметического вычитания над двумя числовыми выражениями, вычитая expression2
из expression1
. Если оба выражения являются целыми числами, разность также будет целым числом. Если одно из выражений или оба выражения являются числами с плавающей запятой, разность будет выражена числом с плавающей запятой.
Операнд | expression1:Number —
Число или выражение, принимающие числовое значение.
|
| expression2:Number —
Число или выражение, принимающие числовое значение.
|
Результат | Number — Целое число или число с плавающей запятой. |
Пример Как пользоваться примерами Применение 1: Следующая инструкция меняет на обратный знак выражения 2 + 3:
Применение 2: Следующая инструкция вычитает целое число 2 из целого числа 5:
Результат - целое число 3.
Следующая инструкция вычитает число с плавающей запятой 1,5 из числа с плавающей запятой 3,25:
trace(3.25 - 1.5); // 1.75
Результат - число с плавающей запятой 1,75.
Применение | expression1 -= expression2 |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Присваивает выражению expression1
значение выражения expression1 - expression2
. Например, следующие две инструкции идентичны:
x -= y ;
x = x - y;
Строковые выражения должны быть преобразованы в числа; в противном случае результатом будет значение NaN
(не число).
Операнд | expression1:Number —
Число или выражение, принимающие числовое значение.
|
| expression2:Number —
Число или выражение, принимающие числовое значение.
|
Результат | Number — Результат арифметической операции. |
Пример Как пользоваться примерами В следующем примере используется оператор вычитания с присваиванием (
-=
) для вычитания 10 из 5 и присваивания полученного результата переменной
x
:
var x:Number = 5;
var y:Number = 10;
x -= y;
trace(x); // -5
Следующий пример иллюстрирует преобразование строк в числа:
var x:String = "5";
var y:String = "10";
x -= y;
trace(x); // -5
См. также
Применение | [modifiers] var variableName:type function functionName():type { ... } function functionName(parameter1:type, ..., parameterN:type) [:type]{ ... } |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Используется для назначения типа данных; данный оператор указывает тип переменной, тип возвращаемого функцией значения или тип параметра функции. При использовании для объявления или назначения переменной этот оператор указывает тип переменной; при использовании для объявления или определения функции этот оператор указывает тип возвращаемого функцией значения; при использовании с параметром функции в определении функции этот оператор указывает ожидаемый тип переменной для этого параметра.
Проверка типа всегда осуществляется во время выполнения. Однако если компилятор работает в строгом режиме, все типы проверяются и во время компиляции, и в случае несоответствия выдается ошибка. Несоответствия могут возникать во время операций присваивания, вызова функций и разыменования членов класса с использованием оператора "точка" (.
).
Допустимые типы включают в себя все собственные типы объектов, определяемые вами классы и интерфейсы, а также тип void
. Распознаваемыми собственными типами являются Boolean, Number, int, uint и String. Все встроенные классы также поддерживаются как собственные типы.
Если не назначить тип данных, переменная, возвращаемое функцией значение или параметр функции будут считаться нетипизированными, т. е. значение может принадлежать к любому типу данных.
Чтобы четко обозначить свое желание использовать нетипизированное значение, используйте символ "звездочка" (*) в качестве обозначения типа. При использовании в качестве обозначения типа символ "звездочка" означает, что переменная, возвращаемое функцией значение или параметр функции являются нетипизированными.
Операнд | variableName:* —
Идентификатор переменной.
|
| type:* —
Собственный тип данных, определенное вами имя класса или имя интерфейса.
|
| functionName:Function —
Идентификатор функции.
|
| parameter:* —
Идентификатор параметра функции.
|
Пример Как пользоваться примерами Применение 1: В следующем примере переменная объявляется как public с именем
userName
типа String с присваиванием ей пустой строки:
var userName:String = "";
Применение 2: Следующий пример иллюстрирует указание типа возвращаемого функцией значения путем определения функции с именем
randomInt()
, которое определяет тип возвращаемого функцией значения как int:
function randomInt(integer:int):int {
return Math.round(Math.random()*integer);
}
trace(randomInt(8));
Применение 3: Следующий пример определяет функцию с именем
squareRoot()
, которая использует параметр с именем
val
типа Number и возвращает квадратный корень из
val
, также типа Number:
function squareRoot(val:Number):Number {
return Math.sqrt(val);
}
trace(squareRoot(121));
См. также
ПрименениеЯзык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Вычисляет выражение expression
и возвращает строку, в которой указан тип данных выражения.
Результатом могут быть шесть строковых значений: boolean
, function
, number
, object
, string
и xml
.
В случае применения этого оператора к экземпляру класса, определенного пользователем, результатом будет строка object
.
Оператор typeof
используется для обратной совместимости. При помощи оператора is
можно проверить совместимость типов.
Операнд | expression:Object —
Вычисляемый объект.
|
Результат | String — Строковое представление типа выражения expression . В следующей таблице приведены результаты применения оператора typeof к каждому типу выражений.
Тип выражения |
Результат |
Array
|
object
|
Boolean
|
boolean
|
Function
|
function
|
int
|
number
|
Number
|
number
|
Object
|
object
|
String
|
string
|
uint
|
number
|
XML
|
xml
|
XMLList
|
xml
|
|
Пример Как пользоваться примерами
В следующем примере показан результат использования оператора
typeof
с различными объектами и значениями.
trace(typeof Array); // object
trace(typeof Date); // object
trace(typeof 3); // number
В следующем примере показано, что в ActionScript 3.0 тип данных примитивного объекта остается тем же и в случае присваивания литерального значения, и в случае использования оператора
new
для создания объекта.
В этом заключается отличие от предыдущих версий ActionScript, в которых оператор
typeof
возвращает значение
object
для переменной
b
:
var a:String = "sample";
var b:String = new String("sample");
trace(typeof a); // string
trace(typeof b); // string
См. также
ПрименениеВерсии среды выполнения: | Flash Player 9 |
Вычисляет выражение и удаляет его значение, возвращая undefined
. Оператор void
часто используется в операциях сравнения, в которых используется оператор ==
для проверки значений типа undefined.
Операнд | expression:Object —
Вычисляемое выражение.
|
Результат Применение | myXML= <{tagName} {attributeName} = {attributeValue}>{content}</{tagName}> |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 |
Определяет тег XML в литерале XML. Для определения закрывающего тега используйте левую косую черту /.
Операнд | myXML:* —
Объект XML или XMLList.
|
| tagName:* —
Выражение, результатом вычисления которого является имя тега XML.
|
| attributeName:* —
Выражение, результатом вычисления которого является имя атрибута XML.
|
| attributeValue:* —
Выражение, результатом вычисления которого является значение атрибута XML.
|
| content:* —
Выражение, результатом вычисления которого является содержимое тега XML.
|
Пример Как пользоваться примерами Следующий пример иллюстрирует использование операторов
<
и
>
при определении литерала XML:
var x:XML = <item id= "324">cola</item>;
См. также