Синтаксис языка определяет набор правил, которые следует соблюдать при написании исполняемого программного кода.
Чувствительность к регистру
Язык ActionScript 3.0 чувствителен к регистру. Идентификаторы, различающиеся только значением регистра, считаются разными идентификаторами. Например, в следующем программном коде создаются две разные переменные.
var num1:int;
var Num1:int;
Синтаксис с точкой
Оператор точка (
.
) обеспечивает способ доступа к свойствам и методам объекта. Используя синтаксис с точкой, можно обращаться к свойствам или методам класса по имени экземпляра, указывая за оператором точка имя требуемого свойства или метода. Например, рассмотрим следующее определение класса.
class DotExample
{
public var prop1:String;
public function method1():void {}
}
Используя синтаксис с точкой, можно обратиться к свойству
prop1
и методу
method1()
, применяя имя экземпляра, созданного в следующем программном коде.
var myDotEx:DotExample = new DotExample();
myDotEx.prop1 = "hello";
myDotEx.method1();
Можно использовать синтаксис с точкой при определении пакетов. Оператор точка используется для обращения ко вложенным пакетам. Например, класс EventDispatcher находится в пакете с именем events, который вложен в пакет с именем flash. Можно обратиться к пакету events, используя следующее выражение.
flash.events
Также к классу EventDispatcher можно обратиться, используя следующее выражение.
flash.events.EventDispatcher
Синтаксис с косой чертой
Синтаксис с косой чертой не поддерживается в ActionScript 3.0. Синтаксис с косой чертой использовался в предыдущих версиях ActionScript для указания пути к фрагменту ролика или переменной.
Литералы
Литерал
— это значение, которое появляется непосредственно в программном коде. Все следующие примеры являются литералами.
17
"hello"
-3
9.4
null
undefined
true
false
Литералы также могут группироваться, образуя составные литералы. Литералы массивов обрамляются квадратными скобками (
[]
) и используют запятые для разделения элементов массива.
Литерал массива можно использовать для инициализации массива. В следующем примере показаны два массива, инициализируемые с помощью литералов. Можно использовать оператор
new
и передать составной литерал в качестве параметра конструктору класса Array, но также можно назначить литеральные значения непосредственно при инициализации экземпляров следующих основных классов ActionScript: Object, Array, String, Number, int, uint, XML, XMLList и Boolean.
// Use new statement.
var myStrings:Array = new Array(["alpha", "beta", "gamma"]);
var myNums:Array = new Array([1,2,3,5,8]);
// Assign literal directly.
var myStrings:Array = ["alpha", "beta", "gamma"];
var myNums:Array = [1,2,3,5,8];
Литералы также можно использовать для инициализации родового объекта. Родовой объект — это экземпляр класса Object. Литералы объекта заключаются в фигурные скобки (
{}
), а для разделения свойств объекта используется запятая. Каждое свойство объявляется с помощью символа двоеточия (
:
), который отделяет имя свойства от его значения.
Можно создать родовой объект, используя инструкцию
new
, а затем передать литерал объекта в качестве параметра конструктору класса Object, также можно назначить литерал объекта напрямую объявляемому экземпляру. В следующем примере продемонстрированы два альтернативных способа создания нового родового объекта и инициализации этого объекта с тремя свойствами (
propA
,
propB
и
propC
), каждое с установленным значением 1, 2 и 3 соответственно.
// Use new statement and add properties.
var myObject:Object = new Object();
myObject.propA = 1;
myObject.propB = 2;
myObject.propC = 3;
// Assign literal directly.
var myObject:Object = {propA:1, propB:2, propC:3};
Точки с запятой
Можно использовать символ точки с запятой (
;
) для завершения инструкции. В противном случае, если пропустить символ точки с запятой, компилятор предполагает, что каждая строка программного кода представляет один оператор. Поскольку многие программисты привыкли использовать точку с запятой для обозначения конца инструкции, программный код может быть удобнее для чтения, если согласованно использовать точки с запятой для завершения инструкций.
Использование точки с запятой для завершения инструкции позволяет поместить в одну строку больше одной инструкции, но при этом программный код становится менее удобочитаем.
Скобки
В ActionScript 3.0 можно использовать скобки (
()
) тремя способами. Во-первых, можно использовать скобки для изменения порядка операций в выражении. Операции, которые группируются в скобках, всегда выполняются первыми. Например, скобки используются для смены порядка операций в следующем программном коде.
trace(2 + 3 * 4); // 14
trace((2 + 3) * 4); // 20
Во-вторых, можно использовать скобки с оператором запятая (
,
) для вычисления ряда выражений и возврата результата окончательного выражения, как показано в следующем примере.
var a:int = 2;
var b:int = 3;
trace((a++, b++, a+b)); // 7
В-третьих, можно использовать скобки для передачи одного или нескольких параметров функциям или методам, как показано в следующем примере, в котором значение String передается функции
trace()
.
trace("hello"); // hello
Комментарии
Программный код ActionScript 3.0 поддерживает два типа комментариев: однострочные комментарии и многострочные комментарии. Механизмы этих комментариев сходны с аналогичными механизмами в языках C++ и Java. Компилятор игнорирует текст, отмеченный как комментарий.
Однострочный комментарий начинается с двух косых черт (
//
) и продолжается до конца строки. Например, в следующем программном коде содержится однострочный комментарий.
var someNumber:Number = 3; // a single line comment
Многострочные комментарии начинаются с косой черты и звездочки (
/*
) и заканчиваются звездочкой и косой чертой (
*/
).
/* This is multiline comment that can span
more than one line of code. */
Ключевые слова и зарезервированные слова
Зарезервированные слова
— это слова, которые нельзя использовать в качестве идентификаторов в программном коде, потому что эти слова зарезервированы для применения в ActionScript. Зарезервированные слова включают
лексические ключевые слова
, которые удаляются компилятором из пространства имен программы. Компилятор сообщает об ошибке, если какое-либо лексическое ключевое слово используется в качестве идентификатора. В следующей таблице перечислен список лексических ключевых слов ActionScript 3.0.
as
|
break
|
case
|
catch
|
class
|
const
|
continue
|
default
|
delete
|
do
|
else
|
extends
|
false
|
finally
|
for
|
function
|
if
|
implements
|
import
|
in
|
instanceof
|
interface
|
internal
|
is
|
native
|
new
|
null
|
package
|
private
|
protected
|
public
|
return
|
super
|
switch
|
this
|
throw
|
to
|
true
|
try
|
typeof
|
use
|
var
|
void
|
while
|
with
|
|
|
|
Существует небольшое подмножество ключевых слов, называемых
синтаксическими ключевыми словами
, которые могут использоваться как идентификаторы, но при этом имеют специальное значение в определенных контекстах. В следующей таблице перечислен список синтаксических ключевых слов ActionScript 3.0.
each
|
get
|
set
|
namespace
|
include
|
dynamic
|
final
|
native
|
override
|
static
|
|
|
Также существует несколько идентификаторов, которые иногда упоминаются как
зарезервированные для будущего использования слова
. Эти идентификаторы не зарезервированы в ActionScript 3.0, хотя некоторые из них могут расцениваться как ключевые слова программным обеспечением для работы с ActionScript 3.0. Многие из этих идентификаторов можно использовать в программном коде, но корпорация Adobe не рекомендует использовать их, поскольку они могут оказаться ключевыми словами в последующих версиях языка ActionScript.
abstract
|
boolean
|
byte
|
cast
|
char
|
debugger
|
double
|
enum
|
export
|
float
|
goto
|
intrinsic
|
long
|
prototype
|
short
|
synchronized
|
throws
|
to
|
transient
|
type
|
virtual
|
volatile
|
|
|
Константы
ActionScript 3.0 поддерживает инструкцию
const
, с помощью которой можно создавать константы. Константами называют свойства с фиксированным значением, которое нельзя изменить. Значение константе можно присвоить только один раз, и это назначение должно происходить в непосредственной близости от объявления этой константы. Например, если константа объявлена в качестве члена одного класса, можно назначить значение константе только в самом ее объявлении или внутри конструктора класса.
В следующем программном коде объявляются две константы. Первой константе,
MINIMUM
, значение назначается в инструкции объявления константы. Второй константе,
MAXIMUM
, значение назначается в конструкторе. Обратите внимание, что этот пример компилируется только в стандартном режиме, поскольку с строгом режиме значения константам разрешено присваивать только во время инициализации.
class A
{
public const MINIMUM:int = 0;
public const MAXIMUM:int;
public function A()
{
MAXIMUM = 10;
}
}
var a:A = new A();
trace(a.MINIMUM); // 0
trace(a.MAXIMUM); // 10
Если попытаться присвоить исходное значение константе любым другим способом, произойдет ошибка. Например, если предпринимается попытка установить исходное значение свойства
MAXIMUM
вне данного класса, возникает ошибка выполнения.
class A
{
public const MINIMUM:int = 0;
public const MAXIMUM:int;
}
var a:A = new A();
a["MAXIMUM"] = 10; // run-time error
ActionScript 3.0 определяет широкий диапазон готовых к использованию констант. В соответствии с соглашением, константы в ActionScript обозначаются заглавными буквами с разделением слов символом подчеркивания (
_
). Например, определение класса MouseEvent использует соглашение об именовании своих констант, каждая из которых отражает событие, связанное с вводом данных мышью.
package flash.events
{
public class MouseEvent extends Event
{
public static const CLICK:String = "click";
public static const DOUBLE_CLICK:String = "doubleClick";
public static const MOUSE_DOWN:String = "mouseDown";
public static const MOUSE_MOVE:String = "mouseMove";
...
}
}
|
|
|