Składnia

Składnia języka definiuje zestaw reguł, których należy przestrzegać, pisząc kod programu.

Rozróżnianie małych i wielkich liter

W języku ActionScript 3.0 wielkość liter jest rozróżniana Identyfikatory, które różnią się tylko wielkością liter, są uznawane za różne. Na przykład poniższy kod tworzy dwie różne zmienne:

var num1:int; 
var Num1:int;

Składnia z kropką

Operator kropki () umożliwia dostęp do właściwości i metod obiektu. Korzystając ze składni z kropką, można odwołać się do właściwości lub metody klasy, podając nazwę instancji, kropkę i nazwę tej właściwości lub metody. Weźmy pod uwagę następującą definicję klasy:

class DotExample 
{ 
    public var prop1:String; 
    public function method1():void {} 
}

Składnia z kropką umożliwia dostęp do właściwości prop1 i do metody method1() poprzez odwołanie do nazwy instancji utworzonej w następującym kodzie:

var myDotEx:DotExample = new DotExample(); 
myDotEx.prop1 = "hello"; 
myDotEx.method1();

Składni z kropką można używać do definiowania pakietów. Kropka umożliwia odwoływanie się do pakietów zagnieżdżonych. Przykładowo, klasa EventDispatcher znajduje się w pakiecie o nazwie events, który jest zagnieżdżony w pakiecie o nazwie flash. Następujące wyrażenie stanowi poprawne odwołanie do pakietu events:

flash.events

Do klasy EventDispatcher można odwołać się również za pomocą następującego wyrażenia:

flash.events.EventDispatcher

Składnia z ukośnikiem

Składnia z ukośnikiem nie jest obsługiwana w języku ActionScript 3.0. Składnia taka była używana we wcześniejszych wersjach języka ActionScript do określania ścieżki klipu filmowego lub zmiennej.

Literały

Literał (wartość literalna) to wartość podana bezpośrednio w kodzie. Wszystkie poniższe przykłady są literałami:

17 
"hello" 
-3 
9.4 
null 
undefined 
true 
false

Literały mogą być także grupowane w literały złożone. Literały tablicowe są ujęte w nawiasy kwadratowe ( [] ), a poszczególne elementy tablicy są w nich oddzielone przecinkami.

Literał tablicowy może posłużyć do zainicjowania tablicy. Poniższe przykłady ilustrują dwie tablice inicjowane za pomocą literałów tablicowych. Korzystając z instrukcji new , można przekazać literał złożony jako parametr do konstruktora klasy Array. Możliwe jest jednak również przypisywanie wartości literalnych bezpośrednio podczas tworzenia instancji następujących klas podstawowych języka ActionScript: Object, Array, String, Number, int, uint, XML, XMLList i 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];

Literały mogą być również stosowane do inicjowania obiektów ogólnych. Obiekt ogólny jest to instancja klasy Object. Literały obiektowe są ujęte w nawiasy sześcienne ( {} ), a właściwości obiektu są w nich oddzielone przecinkami. Każda właściwość jest zadeklarowana za pomocą dwukropka ( : ), który oddziela nazwę właściwości od jej wartości.

Można utworzyć nowy obiekt za pomocą instrukcji new i przekazać literał obiektowy jako parametr do konstruktora klasy Object. Można także przypisać literał obiektu bezpośrednio do deklarowanej instancji. Poniższy przykład ilustruje dwie alternatywne metody tworzenia nowego obiektu ogólnego i zainicjowania go trzema właściwościami ( propA , propB i propC ), które otrzymują odpowiednio wartości 1, 2 i 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};

Średniki

Instrukcje można kończyć znakiem średnika ( ; ). W wypadku pominięcia średnika kompilator zakłada, że każdy wiersz kodu jest pojedynczą instrukcją. Ponieważ wielu programistów jest przyzwyczajonych do oznaczania końca instrukcji średnikiem, kod będzie bardziej czytelny, jeśli wszystkie instrukcje będą w ten sposób zakończone.

Kończenie instrukcji średnikami umożliwia umieszczenie więcej niż jednej instrukcji w wierszu, co jednak potencjalnie utrudnia czytanie i zrozumienie kodu.

Nawiasy

W języku ActionScript 3.0 nawiasy ( () ) mają trzy zastosowania. Po pierwsze umożliwiają zmianę kolejności wykonywania operacji w wyrażeniu. Operacje ujęte w nawiasy są zawsze wykonywane jako pierwsze. W poniższym przykładzie użyto nawiasów do zmiany kolejności operacji:

trace(2 + 3 * 4); // 14 
trace((2 + 3) * 4); // 20

Po drugie, można użyć nawiasów z operatorem przecinka ( , ) w celu wyznaczenia wartości szeregu wyrażeń i zwrócenia wyniku ostatniego wyrażenia, co ilustruje poniższy przykład:

var a:int = 2; 
var b:int = 3; 
trace((a++, b++, a+b)); // 7

Po trzecie, nawiasy umożliwiają przekazanie jednego lub większej liczby parametrów do funkcji lub metody, co ilustruje poniższy przykład, w którym wartość typu String jest przekazywana do funkcji trace() :

trace("hello"); // hello

Komentarze

W języku ActionScript 3.0 można stosować dwa typy komentarzy: jednowierszowe i wielowierszowe. Sposób zapisu komentarzy jest podobny, jak w językach C++ i Java. Kompilator ignoruje tekst oznaczony jako komentarz.

Komentarze jednowierszowe rozpoczynają się od dwóch ukośników ( // ) i kończą wraz z końcem danego wiersza. Na przykład poniższy kod zawiera komentarz jednowierszowy:

var someNumber:Number = 3; // a single line comment

Komentarze wielowierszowe rozpoczynają się od ukośnika i gwiazdki ( /* ), a kończą gwiazdką i ukośnikiem ( */ ).

/* This is multiline comment that can span 
more than one line of code. */

Słowa kluczowe i słowa zastrzeżone

Słowa zastrzeżone są to słowa, których nie można używać jako identyfikatorów w kodzie, ponieważ są zastrzeżone do użytku przez środowisko ActionScript. Do słów zastrzeżonych należą leksykalne słowa kluczowe , które kompilator usuwa z przestrzeni nazw programu. Kompilator zgłosi błąd w wypadku próby użycia leksykalnego słowa kluczowego jako identyfikatora. W poniższej tabeli wymieniono leksykalne słowa kluczowe języka 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

na

Istnieje mały zbiór słów kluczowych nazywanych słowami kluczowymi składni , które mogą być używane jako identyfikatory, ale mają specjalne znaczenie w określonych kontekstach. W poniższej tabeli wymieniono słowa kluczowe składni języka ActionScript 3.0.

each

get

set

namespace

include

dynamic

final

native

override

static

Istnieje także kilka identyfikatorów, które czasami są nazywane słowami zastrzeżonymi na przyszłość . Identyfikatory te nie są zastrzeżone w języku ActionScript 3.0, ale niektóre z nich mogą być traktowane jako słowa kluczowe przez oprogramowanie, w którym język ActionScript 3.0 jest zaimplementowany. Mimo że użycie wielu z tych słów kluczowych w kodzie jest zwykle możliwe, firma Adobe nie zaleca używania ich, ponieważ mogą uzyskać status słów kluczowych w przyszłych wersjach języka.

abstract

boolean

byte

cast

char

debugger

double

enum

export

float

goto

intrinsic

long

prototype

short

synchronized

throws

to

transient

type

virtual

volatile

Stałe

W języku ActionScript 3.0 istnieje instrukcja const , której można używać do tworzenia stałych. Stałe są właściwościami o stałej wartości, której nie można zmienić. Stałej można przypisać wartość tylko raz, a przypisanie musi wystąpić w bezpośredniej bliskości deklaracji stałej. Na przykład, jeśli stała jest zadeklarowana jako element klasy, można jej przypisać wartość wyłącznie wewnątrz deklaracji lub wewnątrz konstruktora klasy.

W poniższym kodzie deklarowane są dwie stałe. Wartość pierwszej stałej, MINIMUM , jest przypisywana w instrukcji deklaracji. Wartość drugiej stałej, MAXIMUM , jest przypisywana w konstruktorze. Należy zwrócić uwagę, że ten przykład daje się skompilować bez błędów wyłącznie w trybie standardowym, ponieważ w trybie ścisłym przypisywanie wartości stałym jest dozwolone tylko podczas inicjowania.

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

Próba przypisania wartości początkowej stałej w jakikolwiek inny sposób spowoduje zgłoszenie błędu. Na przykład próba ustawienia wartości początkowej stałej MAXIMUM poza klasą spowoduje zgłoszenie błędu w trakcie wykonywania.

class A 
{ 
public const MINIMUM:int = 0; 
public const MAXIMUM:int; 
} 
 
var a:A = new A(); 
a["MAXIMUM"] = 10; // run-time error

Język ActionScript 3.0 definiuje szeroką gamę stałych. W języku ActionScript przyjęto konwencję, zgodnie z którą nazwy stałych zapisane są wielkimi literami, a słowa w nazwach są oddzielone znakami podkreślenia ( _ ). Na przykład w definicji klasy MouseEvent zastosowano tę konwencję nazewnictwa do stałych, które reprezentują zdarzenia związane z interakcją z myszą:

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"; 
    ... 
    } 
}