Syntax

Med ett språks syntax definieras en uppsättning regler som måste följas när man skriver körbar kod.

Skiftlägeskänslighet

ActionScript 3.0 är ett skiftlägeskänsligt språk. Identifierare som bara är olika när det gäller skiftläge betraktas som olika identifierare. I följande kod skapas två olika variabler:

var num1:int; 
var Num1:int;

Punktsyntax

Med punktoperatorn (.) kommer du åt ett objekts egenskaper och metoder. Om du använder punktsyntax kan du referera till en klassegenskap eller metod med hjälp av ett instansnamn följt av punktoperatorn och namnet på egenskapen eller metoden. Du kan t.ex. använda följande klassdefinition:

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

Om du använder punktsyntax kommer du åt egenskapen prop1 och metoden method1() med instansnamnet som skapats i följande kod:

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

Du kan använda punktsyntax när du definierar paket. Du kan använda punktoperatorn för att referera till kapslade paket. Exempel: Klassen EventDispatcher finns i paketet som heter events som är kapslat i paketet som heter flash. Du kan referera till paketet events med följande uttryck:

flash.events

Du kan också referera till klassen EventDispatcher med det här uttrycket:

flash.events.EventDispatcher

Snedstreckssyntax

Snedstreckssyntax kan inte användas i ActionScript 3.0. Snedstreckssyntax användes i tidigare versioner av ActionScript för att ange sökvägen för ett filmklipp eller en variabel.

Literaler

En literal är ett värde som visas direkt i koden. Följande exempel är också literaler:

17 
"hello" 
-3 
9.4 
null 
undefined 
true 
false

Literaler kan även placeras i grupper och bildar då sammansatta literaler. Arrayliteraler placeras inom hakparentes ([]) och använder kommatecken för att avskilja arrayelementen.

En arrayliteral kan användas till att initiera en array. I följande exempel visas två arrayer som initierats med arrayliteraler. Du kan använda programsatsen new och skicka den sammansatta literalen som en parameter till array-klasskonstruktorn, men du kan också tilldela literalvärden direkt när du instansierar instanser av följande ActionScript-huvudklasser: Object, Array, String, Number, int, uint, XML, XMLList och 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];

Du kan använda literaler till att initiera ett generiskt objekt. Ett generiskt objekt är en instans av objektklassen. Objektliteraler placeras inom klammerparentes ({}) och du använder komma för att skilja objektegenskaper åt. Varje egenskap deklareras med kolon (:) som skiljer namnet på egenskapen från egenskapens värde.

Du kan skapa ett generiskt objekt med hjälp av programsatsen new och skickar objektliteralen som en parameter till objektklasskonstruktorn eller också kan du tilldela objektliteralen direkt till instansen som du deklarerar. I följande exempel visas två olika sätt att skapa ett nytt generiskt objekt och initiera objektet med tre egenskaper (propA, propB och propC) som har värdena 1, 2 och 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};

Semikolon

Du kan använda semikolon (;) för att avsluta en programsats. Om du däremot utelämnar semikolonet förutsätter ActionScript-kompilatorn att varje rad med kod representerar en programsats. Eftersom många programmerare brukar använda semikolon för att ange slutet på en programsats, blir din kod lättare att läsa om du använder semikolon.

Om du använder semikolon för att avsluta en programsats kan du placera mer än en programsats på samma rad, men då blir koden vanligtvis svårare att läsa.

Parentes

Du kan använda parentes (()) på tre olika sätt i ActionScript 3.0. För det första kan du använda parentes för att ändra ordningen på åtgärderna i ett uttryck. Åtgärder som grupperats inom parentesen körs alltid först. Parentes används till exempel för att ändra ordningen på åtgärderna i följande kod:

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

För det andra kan du använda parentes med kommaoperatorn (,) för att utvärdera en serie uttryck och returnera resultatet av det slutliga uttrycket, vilket visas i följande exempel:

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

För det tredje kan du använda parentes för att skicka en eller flera parametrar till funktioner och metoder, vilket visas i följande exempel, som skickar ett strängvärde till funktionen trace():

trace("hello"); // hello

Kommentarer

Du kan använda två olika sorters kommentarer i ActionScript 3.0-kod: enkelradskommentarer och flerradskommentarer. Kommentarsfunktionen liknar samma funktion i C++ och Java. Vid kompileringen ignoreras text som markerats som en kommentar.

Enkelradskommentarer inleds med två snedstreck (//) och fortsätter till radens slut. I följande kod visas en enkelradskommentar:

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

Flerradskommentarer inleds med ett snedstreck och en asterisk (/*) och avslutas med en asterisk och ett snedstreck (*/).

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

Nyckelord och reserverade ord

Reserverade ord är ord som du inte kan använda som identifierare i din kod eftersom orden är reserverade för ActionScript. Reserverade ord innehåller lexikala nyckelord som tas bort från programmets namnutrymme av kompilatorn. Ett fel rapporteras vid kompilering om du använder ett lexikalt nyckelord som identifierare. I följande tabell visas lexikala nyckelord i 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

     

Det finns några nyckelord som kallas syntaktiska nyckelord som kan användas som identifierare, och som har speciell betydelse i vissa sammanhang. I följande tabell visas syntaktiska nyckelord i ActionScript 3.0.

each

get

set

namespace

include

dynamic

final

native

override

static

   

Det finns också olika identifierare som ibland kallas framtida reserverade ord. Dessa identifierare har inte reserverats för ActionScript 3.0 även om vissa av dem kanske hanteras som nyckelord av programvara som använder ActionScript 3.0. Du kan använda en hel del av dessa identifierare i din kod, men Adobe rekommenderar inte detta eftersom de kan visas som nyckelord i en kommande version av språket.

abstract

boolean

byte

cast

char

debugger

double

enum

export

float

goto

intrinsic

long

prototype

short

synchronized

throws

to

transient

text

virtual

volatile

   

Konstanter

ActionScript 3.0 har stöd för programsatsen const som du använder för att skapa konstanter. Konstanter är egenskaper med ett fast värde som inte kan ändras. Du kan bara tilldela en konstant ett värde en gång, och tilldelningen måste ske i omedelbar närhet till konstantens deklaration. Om en konstant deklareras som en medlem av en klass kan du tilldela konstanten ett värde som en del av deklarationen eller inuti klasskonstruktorn.

I följande kod deklareras två konstanter. Den första konstanten MINIMUM har tilldelats ett värde som en del av deklarationsprogramsatsen. Den andra konstanten MAXIMUM har tilldelats ett värde i konstruktorn. Observera att det här exemplet bara kompileras i standardläge eftersom en konstants värde bara tilldelas vid initieringen i strikt läge.

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

Ett fel uppstår om du försöker tilldela en konstant ett initialt värde på något annat sätt. Om du till exempel försöker ange startvärdet för MAXIMUM utanför klassen inträffar ett körningsfel.

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 definierar en mängd konstanter som du kan använda. Konstanter i ActionScript skrivs med versaler och två ord avgränsas med understreck (_). Exempel: I klassdefinitionen för MouseEvent används den här namnkonventionen för konstanterna, som representerar en händelse som relateras till musindata:

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