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