Синтаксис

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

Чувствительность к регистру

Язык 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"; 
    ... 
    } 
}