Le istruzioni sono elementi del linguaggio che eseguono o specificano un'azione in fase di runtime. L'istruzione return, ad esempio, restituisce un risultato sotto forma di valore della funzione in cui viene eseguita. L'istruzione if valuta una condizione per determinare l'azione successiva da eseguire. L'istruzione switch crea una struttura ad albero per le istruzioni ActionScript.

Le parole chiave degli attributi modificano il significato delle definizioni; possono essere applicate alle definizioni di classi, variabili, funzioni e spazi dei nomi. Le parole chiave delle definizioni consentono di definire entità come variabili, funzioni, classi e interfacce. Le parole chiave delle espressioni primarie rappresentano dei valori letterali. Per un elenco delle parole riservate, vedere Programmazione in ActionScript 3.0.

Le direttive possono essere istruzioni e definizioni che possono avere effetto in fase di compilazione o di runtime. Le direttive che non sono né istruzioni né definizioni sono indicate come direttive nella tabella seguente.


 Riepilogo degli spazi dei nomi
 AS3Definisce metodi e proprietà delle classi ActionScript principali che sono proprietà fisse anziché proprietà prototipo.
 flash_proxyDefinisce i metodi della classe Proxy.
 object_proxyDefinisce i metodi della classe ObjectProxy.
 Riepilogo delle direttive
 default xml namespace La direttiva default xml namespace imposta lo spazio dei nomi predefinito da utilizzare per gli oggetti XML.
 importRende disponibili al codice le classi e i pacchetti definiti esternamente.
 includeComprende il contenuto del file specificato, come se i comandi del file facessero parte dello script di chiamata.
 use namespaceDetermina l'aggiunta degli spazi dei nomi specificati alla serie di spazi dei nomi aperti.
 Riepilogo delle istruzioni
 breakViene visualizzata all'interno di un ciclo (for, for..in, for each..in, do..whileowhile) oppure in un blocco di istruzioni associate a un caso particolare in un'istruzione switch.
 caseDefinisce una destinazione per l'istruzione switch.
 continuePassa oltre tutte le istruzioni rimanenti nel ciclo più interno e avvia l'iterazione successiva del ciclo come se il controllo fosse arrivato normalmente alla fine del ciclo.
 defaultDefinisce il caso predefinito di un'istruzione switch.
 do..whileSimile a un ciclo while, ad eccezione del fatto che le istruzioni vengono eseguite una volta prima della valutazione iniziale della condizione.
 elseSpecifica le istruzioni da eseguire se la condizione nell'istruzione if restituisce false.
 forValuta l'espressione init (inizializza) una volta, quindi avvia una sequenza di ripetizione ciclica.
 for..inEsegue un'iterazione sulle proprietà dinamiche di un oggetto o sugli elementi di un array ed esegue statement per ogni proprietà o elemento.
 for each..inEsegue un'iterazione sulle voci di una raccolta ed esegue statement per ciascuna voce.
 ifValuta una condizione per determinare l'istruzione successiva da eseguire.
 labelAssocia un'istruzione a un identificatore al quale è possibile fare riferimento con break o continue.
 returnFa in modo che l'esecuzione torni immediatamente alla funzione di chiamata.
 superRichiama la versione superclasse o principale di un metodo o di una funzione di costruzione.
 switchDetermina il passaggio del controllo a un'istruzione di una serie, a seconda del valore di un'espressione.
 throwCrea, o genera, un errore che può essere gestito, o rilevato, mediante un blocco di codice catch.
 try..catch..finallyRacchiude un blocco di codice nel quale può verificarsi un errore, quindi risponde all'errore.
 whileValuta una condizione e, se questa restituisce true, esegue una o più istruzioni prima di tornare a valutare la condizione.
 withDefinisce un oggetto predefinito da utilizzare per l'esecuzione di una o più istruzioni, con il possibile risultato di ridurre la quantità di codice da scrivere.
 Riepilogo delle parole chiave attributo
 dynamicSpecifica che le istanze di una classe accettano l'aggiunta di proprietà dinamiche in fase di runtime.
 finalSpecifica che un metodo non può essere sostituito o che una classe non può essere estesa.
 internalSpecifica che una classe, una variabile, una costante o una funzione è disponibile a qualsiasi chiamante nello stesso pacchetto.
 nativeSpecifica che una funzione o un metodo è implementato da Flash Player nel codice nativo.
 overrideSpecifica che un metodo sostituisce un metodo ereditato.
 privateSpecifica che una variabile, una costante, un metodo o uno spazio dei nomi è disponibile solo per la classe che ne contiene la definizione.
 protectedSpecifica che una variabile, una costante, un metodo o uno spazio dei nomi è disponibile solo per la classe che ne contiene la definizione e per le eventuali sottoclassi.
 publicSpecifica che una classe, una variabile, una costante o un metodo è disponibile a qualsiasi chiamante.
 staticSpecifica che una variabile, una costante o un metodo appartiene alla classe e non alle sue istanze.
 Riepilogo delle parole chiave di definizione
 ... (rest), parametroSpecifica che una funzione accetta qualunque numero di argomenti separati da virgole.
 classDefinisce una classe che consente di creare le istanze degli oggetti che condividono i metodi e le proprietà definite dall'utente.
 constSpecifica una costante, ovvero una variabile alla quale è possibile assegnare un valore una sola volta.
 extendsDefinisce una classe che è una sottoclasse di un'altra classe.
 functionComprende un set di istruzioni definite dall'utente per eseguire una determinata attività.
 getDefinisce un getter, ovvero un metodo che può essere letto come una proprietà.
 implementsSpecifica che una class implementa una o più interfacce.
 interfaceDefinisce un'interfaccia.
 namespaceConsente di controllare la visibilità delle definizioni.
 packageConsente di organizzare il codice in gruppi distinti che possono essere importati da altri script.
 setDefinisce un setter, ovver un metodo che appare nell'interfaccia pubblica come proprietà.
 varSpecifica una variabile.
 Riepilogo delle parole chiave di espressione primaria
 falseUn valore booleano che rappresenta false.
 nullValore che può essere assegnato a delle variabili o restituito da una funzione quando non vengono forniti dati.
 thisUn riferimento all'oggetto che contiene un metodo.
 trueUn valore booleano che rappresenta true.
Descrizione delle istruzioni, parole chiave e direttive
... (rest), parametroparola chiave di definizione
Uso
function functionName(parameter0, parameter1, ...rest){ 
	// statement(s) 
} 

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Specifica che una funzione accetta qualunque numero di argomenti separati da virgole. L'elenco di argomenti diventa un array disponibile in tutto il corpo della funzione. Il nome dell'array è specificato dopo i caratteri ... nella dichiarazione del parametro. Il parametro può avere qualsiasi nome che non corrisponda a una parola riservata

Se utilizzato con altri parametri, il parametro ... (rest) deve essere dichiarato per ultimo. Il parametro ... (rest) viene compilato solo se il numero degli argomenti passati alla funzione supera il numero degli altri parametri.

Ogni argomento dell'elenco di argomenti separati da virgole viene inserito in un elemento dell'array. Se si passa un'istanza della classe Array, l'intero array viene inserito in un singolo elemento dell'array con parametro ... (rest).

L'uso di questo parametro rende indisponibile l'oggetto arguments. Anche se il parametro ... (rest) offre la stessa funzionalità dell'array arguments e della proprietà arguments.length, non fornisce invece una funzionalità simile a quella di arguments.callee. Assicurarsi che non sia necessario utilizzare arguments.callee prima di usare il parametro ... (rest).

Parametri
rest:* — Un identificatore che rappresenta il nome dell'array di argomenti passati alla funzione. Non è necessario chiamare il parametro rest; può avere qualunque nome che non corrisponda a una parola chiave. È possibile specificare il tipo di dati Array per il parametro ... (rest), ma ciò creerebbe confusione perché il parametro accetta un elenco di valori separati da virgole, che non è identico a un'istanza della classe Array.

Esempio
Come utilizzare gli esempi
Il seguente esempio utilizza il parametro ...(rest) in due diverse funzioni. La prima funzione, traceParams, chiama semplicemente la funzione trace() su ciascuno degli argomenti dell'arrayrest. La seconda, average(), legge l'elenco di argomenti e restituisce la media. La seconda funzione utilizza anche un nome diverso, args, per il parametro.
package {
    import flash.display.MovieClip;
    
    public class RestParamExample extends MovieClip {
        public function RestParamExample() {
            traceParams(100, 130, "two"); // Output: 100,130,two
            trace(average(4, 7, 13));     // Output: 8
        }
    }
}


function traceParams(... rest) {
     trace(rest);
 }
 
function average(... args) : Number{
    var sum:Number = 0;
    for (var i:uint = 0; i < args.length; i++) {
        sum += args[i];
    }
    return (sum / args.length);
}

Vedere anche

AS3spazio dei nomi 

Definisce metodi e proprietà delle classi ActionScript principali che sono proprietà fisse anziché proprietà prototipo. Quando si imposta l'opzione del compilatore "-as3" su true (which is the default setting in Flex Builder 2), lo spazio dei nomi AS3 viene aperto automaticamente per tutte le classi principali. Ciò significa che un'istanza di una classe principale utilizza proprietà e metodi fissi anziché le versioni delle stesse proprietà e degli stessi metodi che sono associate all'oggetto prototipo della classe. L'uso di proprietà fisse solitamente garantisce prestazioni migliori, ma non può assicurare la compatibilità retroattiva con la specifica dell'edizione 3 del linguaggio ECMAScript (ECMA-262).

Vedere anche

breakistruzione 
Uso

break [label]

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Viene visualizzata all'interno di un ciclo (for, for..in, for each..in, do..whileowhile) oppure in un blocco di istruzioni associate a un caso particolare in un'istruzione switch. Quando viene utilizzata in un ciclo, l'istruzione break indica a Flash di ignorare il resto del corpo del ciclo, arrestare la ripetizione ciclica ed eseguire l'istruzione che segue l'istruzione ciclica. Quando viene utilizzata in uno switch, l'istruzione break indica a Flash di ignorare il resto delle istruzioni in quel blocco case e passare alla prima istruzione che segue l'istruzione switch che le racchiude.

Nei cicli nidificati, break ignora solo il resto del ciclo immediato e non esce dall'intera serie di cicli nidificati. Per uscire da una serie completa di cicli nidificati, utilizzare label o try..catch..finally.

L'istruzione break può avere un'etichetta opzionale che deve corrispondere all'etichetta di un'istruzione esterna. L'uso di un'etichetta che non corrisponde all'etichetta di un'istruzione esterna genera un errore di sintassi. Le istruzioni break con etichetta possono essere utilizzate per uscire da più livelli di istruzioni di ciclo nidificate, da istruzioni switch, oppure da istruzioni block. Per un esempio, vedere la voce dell'istruzione label.

Parametri
label:* — Il nome di un'etichetta associata a un'istruzione.

Esempio
Come utilizzare gli esempi
L'esempio seguente utilizza break per uscire da un ciclo altrimenti infinito:
var i:int = 0;
while (true) { 
    trace(i); 
    if (i >= 10) { 
        break; // this will terminate/exit the loop 
    } 
    i++; 
} 
/* output:
0 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10*/

Vedere anche

caseistruzione 
Uso
case jumpTarget: statements

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Definisce una destinazione per l'istruzione switch. Se il parametro jumpTarget è uguale al parametro expression dell'istruzione switch utilizzando l'uguaglianza rigorosa (===), Flash Player esegue le istruzioni del parametro statements finché non incontra un'istruzione break o la fine dell'istruzione switch.

Se si utilizza l'istruzione case al di fuori di un'istruzione switch, si verifica un errore e lo script non viene compilato.

Nota: il parametro statements deve sempre terminare con un'istruzione break. Se si omette l'istruzione break dal parametro statements, l'esecuzione prosegue con l'istruzione case successiva invece di uscire dall'istruzione switch.

Parametri
jumpTarget:* — Qualsiasi espressione.
statements:* — Le istruzioni da eseguire se jumpTarget corrisponde all'espressione condizionale dell'istruzione switch.

Esempio
Come utilizzare gli esempi
L'esempio seguente definisce le destinazioni per l'istruzione switch thisMonth. Se thisMonth è uguale all'espressione nell'istruzione case, l'istruzione viene eseguita.
var thisMonth:int = new Date().getMonth(); 
switch (thisMonth) { 
    case 0 : 
        trace("January"); 
        break; 
    case 1 : 
        trace("February"); 
        break; 
    case 5 : 
    case 6 : 
    case 7 : 
        trace("Some summer month"); 
        break; 
    case 8 : 
        trace("September"); 
        break; 
    default : 
        trace("some other month"); 
}

Vedere anche

classparola chiave di definizione 
Uso
[dynamic] [public | internal] [final] class className [ extends superClass ] [ implements interfaceName[, interfaceName... ] ] { 
	// class definition here
}

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Definisce una classe che consente di creare le istanze degli oggetti che condividono i metodi e le proprietà definite dall'utente. Ad esempio, se si sta sviluppando un sistema di registrazione delle fatture, è possibile creare una classe Invoice che definisca tutti i metodi e le proprietà richiesti per le fatture. A quel punto, si può utilizzare il nuovo comando new Invoice() per creare gli oggetti Invoice.

Ogni file ActionScript di origine può contenere una sola classe che è visibile ad altri file di origine o script. La classe visibile esternamente può essere pubblica o interna e deve essere definita all'interno di un'istruzione package. Se si includono altre classi nello stesso file, queste devono essere collocate all'esterno dell'istruzione package e alla fine del file.

Il nome della classe visibile esternamente deve corrispondere al nome del file di origine ActionScript che la contiene. Il nome del file di origine esterno deve essere uguale a quello della classe, con l'aggiunta dell'estensione .as. Ad esempio, se la classe viene denominata Studente, il file che la definisce dovrà chiamarsi Studente.as.

Le definizioni di classe non possono essere nidificate, vale a dire non è possibile definire altre classi all'interno di una definizione di classe.

È possibile definire un metodo di funzione di costruzione, ovvero un metodo che viene eseguito ogni volta che viene creata una nuova istanza della classe. Il nome del metodo della funzione di costruzione deve corrispondere al nome della classe. Se non si definisce un metodo di questo tipo, viene creata automaticamente una funzione di costruzione predefinita.

Per indicare che gli oggetti possono aggiungere le proprietà dinamiche e accedervi in fase di runtime, specificare la parola chiave dynamic prima dell'istruzione di classe. Per dichiarare che la classe implementa un'interfaccia, utilizzare la parola chiave implements. Per creare sottoclassi di una classe, utilizzare la parola chiave extends. (Una classe può estendere solo una classe, ma può implementare diverse interfacce.) È possibile utilizzare implements ed extends in un'unica istruzione. Gli esempi seguenti mostrano gli usi più comuni delle parole chiave implements ed extends:

class C implements Interface_i, Interface_j // OK 
class C extends Class_d implements Interface_i, Interface_j // OK 
class C extends Class_d, Class_e // not OK 

Parametri
className:Class — Il nome completo della classe.

Esempio
Come utilizzare gli esempi
Nell'esempio seguente viene creata una classe di nome Plant. La funzione di costruzione Plant richiede due parametri.
// Filename Plant.as 
package {
  public class Plant { 
    // Define property names and types 
    private var _leafType:String; 
    private var _bloomSeason:String; 
    // Following line is constructor 
    // because it has the same name as the class 
    public function Plant(param_leafType:String, param_bloomSeason:String) { 
        // Assign passed values to properties when new Plant object is created 
        _leafType = param_leafType; 
        _bloomSeason = param_bloomSeason; 
    } 
    // Create methods to return property values, because best practice 
    // recommends against directly referencing a property of a class 
    public function get leafType():String { 
        return _leafType; 
    } 
    public function get bloomSeason():String { 
        return _bloomSeason; 
    } 
  }
}
Nello script, utilizzare l'operatore new per creare un oggetto Plant.
var pineTree:Plant = new Plant("Evergreen", "N/A"); 
// Confirm parameters were passed correctly 
trace(pineTree.leafType); 
trace(pineTree.bloomSeason); 

Vedere anche

constparola chiave di definizione 
Uso
const identifier = value 

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Specifica una costante, ovvero una variabile alla quale è possibile assegnare un valore una sola volta.

La costante può essere definita mediante la tipizzazione forte aggiungendo un carattere di due punti (:) seguito dal tipo di dati.

Parametri
identifier:* — Un identificatore per la costante.

Esempio
Come utilizzare gli esempi
L'esempio seguente mostra che si verifica un errore se si tenta di assegnare un valore a una costante più di una volta.
const MIN_AGE:int = 21;
MIN_AGE = 18; // error
L'esempio seguente mostra che se la costante è un array, è comunque possibile chiamare i metodi della classe Array, compreso Array.push(), ma non è possibile assegnare un nuovo valore letterale array.
const product_array:Array = new Array("Studio", "Dreamweaver", "Flash", "ColdFusion", "Contribute", "Breeze"); 
product_array.push("Flex"); // array operations are allowed
product_array = ["Other"];  // assignment is an error
trace(product_array); 

Vedere anche

continueistruzione 
Uso
continue [label]

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Salta tutte le istruzioni rimanenti nel ciclo più interno e avvia l'iterazione successiva del ciclo come se il controllo fosse passato normalmente alla fine del ciclo. L'istruzione continue non ha alcun effetto al di fuori di un ciclo. Nei cicli nidificati, utilizzare il parametro opzionale label per saltare più cicli anziché solo quello più interno.

L'istruzione continue può avere un'etichetta opzionale che deve corrispondere all'etichetta di un'istruzione esterna. L'uso di un'etichetta che non corrisponde all'etichetta di un'istruzione esterna genera un errore di sintassi. Le istruzioni continue con etichetta possono essere utilizzate per saltare più livelli di istruzioni di ciclo nidificate.


Esempio
Come utilizzare gli esempi
Nel ciclo while seguente, l'istruzione continue viene utilizzata per ignorare il resto del corpo del ciclo ogni volta che viene incontrato un multiplo di 3, e per andare all'inizio del ciclo, dove viene provata la condizione:
var i:int = 0; 
while (i < 10) { 
    if (i % 3 == 0) { 
        i++; 
        continue; 
    } 
    trace(i); 
    i++; 
}

In un ciclo for, l'istruzione continue può anche essere utilizzata per ignorare il resto del corpo del ciclo. Nell'esempio seguente, se i % 3 è uguale a 0, l'istruzione trace(i) viene ignorata:

 
for (var i:int = 0; i < 10; i++) { 
    if (i % 3 == 0) { 
        continue; 
    } 
    trace(i); 
}

Vedere anche

defaultistruzione 
Uso
default: statements 

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Definisce il caso predefinito di un'istruzione switch. Le istruzioni vengono eseguite se il parametro expression dell'istruzione switch non è uguale (in base all'operazione di uguaglianza rigorosa [===]) ad alcuno dei parametri expression che seguono le parole chiave case per una data istruzione switch.

Un'istruzione switch non richiede un'istruzione case default. Un'istruzione case default non deve necessariamente essere l'ultima dell'elenco. Se si utilizza un'istruzione default al di fuori di un'istruzione switch, si verifica un errore e lo script non viene compilato.

Parametri
statements:* — Qualsiasi istruzione.

Esempio
Come utilizzare gli esempi
Nell'esempio seguente, se il giorno della settimana è Saturday o Sunday, nessuna delle istruzioni case viene applicata e pertanto l'esecuzione passa all'istruzione default.
var dayOfWeek:int = new Date().getDay(); 
switch (dayOfWeek) { 
    case 1 : 
        trace("Monday"); 
        break; 
    case 2 : 
        trace("Tuesday"); 
        break; 
    case 3 : 
        trace("Wednesday"); 
        break; 
    case 4 : 
        trace("Thursday"); 
        break; 
    case 5 : 
        trace("Friday"); 
        break; 
    default : 
        trace("Weekend"); 
}

Vedere anche

default xml namespacedirettiva 
Uso

default xml namespace = ns

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

La direttiva default xml namespace imposta lo spazio dei nomi predefinito da utilizzare per gli oggetti XML.

Se non si specifica default xml namespace, lo spazio dei nomi predefinito è quello "senza nome" (ovvero con l'URI impostato su una stringa vuota). L'area di validità di una default xml namespace dichiarazione è all'interno di un blocco di funzione, come per una variabile.


Esempio
Come utilizzare gli esempi
L'esempio seguente mostra che l'area di validità di default xml namespace è un blocco di funzione:
var nsDefault1:Namespace = new Namespace("http://www.example.com/namespaces/");
default xml namespace = nsDefault1;
        
var x1:XML = <test1 />;
trace("x1 ns: " + x1.namespace());
            
scopeCheck();    

var x2:XML = <test2 />;
trace("x2 ns: " + x2.namespace());
        
function scopeCheck(): void {
    
    var x3:XML = <test3 />;
    trace("x3 ns: " + x3.namespace());
                
    var nsDefault2:Namespace = new Namespace("http://schemas.xmlsoap.org/soap/envelope/");
    default xml namespace = nsDefault2;
            
    var x4:XML = <test4 />;
    trace("x4 ns: " + x4.namespace());

}

L'output trace() di questo esempio è il seguente:

x1 ns: http://www.example.com/namespaces/
x3 ns: 
x4 ns: http://schemas.xmlsoap.org/soap/envelope/
x2 ns: http://www.example.com/namespaces/
L'esempio seguente utilizza default xml namespace per assegnare lo spazio dei nomi predefinito. Il secondo oggetto XML (x2) non utilizza questa impostazione perché x2 definisce il proprio spazio dei nomi predefinito:
var nsDefault:Namespace = new Namespace("http://www.example.com/namespaces/");
default xml namespace = nsDefault;
            
var x1:XML = <test1 />;

trace(x1.namespace());
    // http://www.example.com/namespaces/

var x2:XML = <test2 xmlns = "http://www.w3.org/1999/XSL/Transform/" />;
trace(x2.namespace());
    // http://www.w3.org/1999/XSL/Transform/

var x3:XML = <test3 xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" />;
trace(x3.namespace());
    // http://www.example.com/namespaces/

Vedere anche

do..whileistruzione 
Uso
do { statement(s) } while (condition)

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Simile a un ciclo while, ad eccezione del fatto che le istruzioni vengono eseguite una volta prima della valutazione iniziale della condizione. Quindi, le istruzioni vengono eseguite solo se la condizione restituisce true.

Un ciclo do..while fa in modo che il codice all'interno del ciclo venga eseguito almeno una volta. Questa operazione può essere svolta anche mediante un ciclo while posizionando una copia delle istruzioni da eseguire prima che il ciclo while cominci, ma molti programmatori ritengono che i cicli do..while siano più semplici da leggere.

Se la condizione restituisce sempre true, il ciclo do..while è infinito. Se si entra in un ciclo infinito, si verificano dei problemi in Flash Player e viene visualizzato un messaggio di errore o il lettore si blocca. Quando possibile, se si conosce il numero di ripetizioni necessarie per il ciclo, utilizzare un ciclo for. I cicli for sono facili da leggere e sottoporre a debug, ma non sostituiscono i cicli do..while in tutte le circostanze.

Parametri
condition:Boolean — La condizione da valutare. statement(s) all'interno del blocco di codice do vengono eseguite a condizione che il parametro condition restituisca true.

Esempio
Come utilizzare gli esempi
L'esempio seguente utilizza un ciclo do..while per valutare se una condizione è true, e traccia myVar finché myVar è maggiore di 5. Quando myVar è uguale o maggiore di 5, il ciclo termina.
var myVar:Number = 0; 
do { 
    trace(myVar); 
    myVar++; 
} 
while (myVar < 5); 
/* output: 
0 
1 
2 
3 
4
*/

Vedere anche

dynamicparola chiave attributo 
Uso
dynamic class className { // class definition here }

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Specifica che le istanze di una classe accettano l'aggiunta di proprietà dinamiche in fase di runtime. Se si utilizza l'attributo dynamic su una classe, è possibile aggiungere proprietà alle istanze di tale classe in fase di runtime. Le classi non contrassegnate come dynamic sono considerate chiuse, ovvero non è possibile aggiungere proprietà alle relative istanze.

Se una classe è chiusa (non dinamica), i tentativi di ottenere (get) o impostare (set) le proprietà delle istanze della classe generano un errore. Se il compilatore viene eseguito in modalità rigorosa e si specifica il tipo di dati quando si creano le istanze, i tentativi di aggiungere proprietà a oggetti chiusi generano un errore del compilatore; altrimenti, si verifica un errore in fase di runtime.

L'attributo dynamic non è ereditato dalle sottoclassi. Se si estende una classe dinamica, la sottoclasse è dinamica solo se viene dichiarata con l'attributo dynamic.

Nota: questa parola chiave è supportata solo quando è utilizzata nei file di script esterni, non negli script scritti nel pannello Azioni.


Esempio
Come utilizzare gli esempi
L'esempio seguente crea due classi, una dinamica chiamata Expando e una chiusa chiamata Sealed, utilizzate negli esempi successivi.
package {

    dynamic class Expando  {
    }
    
    class Sealed {
    }
}
Il codice seguente crea un'istanza della classe Expando e mostra come aggiungere proprietà all'istanza.
var myExpando:Expando = new Expando();
myExpando.prop1 = "new";
trace(myExpando.prop1); // output: new
Il codice seguente crea un'istanza della classe Sealed e mostra come i tentativi di aggiungere una proprietà generino un errore.
var mySealed:Sealed = new Sealed();
mySealed.prop1 = "newer"; // error

Vedere anche

elseistruzione 
Uso
if (condition) { 
	// statement(s)
} 
else {
	// statement(s)
}

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Specifica le istruzioni da eseguire se la condizione nell'istruzione if restituisce false. Le parentesi graffe ({}) che racchiudono le istruzioni che devono essere eseguite dall'istruzione else non sono necessarie se viene eseguita una sola istruzione.

Parametri
condition:Boolean — Espressione che restituisce true o false.

Esempio
Come utilizzare gli esempi
Nell'esempio seguente, la condizione else viene utilizzata per verificare se la variabile age_txt è maggiore o minore di 18:
if (age_txt.text>=18) { 
    trace("welcome, user"); 
} 
else { 
    trace("sorry, junior"); 
    userObject.minor = true; 
    userObject.accessAllowed = false;
}
Nell'esempio seguente, le parentesi graffe ({}) non sono necessarie poiché solo un'istruzione segue l'istruzione else:
if (age_txt.text>18) { 
    trace("welcome, user");
} 
else trace("sorry, junior");
L'esempio seguente utilizza una combinazione di istruzioni if e else per confrontare score_txtcon un valore specificato:

if (score_txt.text>90) { 
    trace("A"); 
} 
else if (score_txt.text>75) { 
    trace("B"); 
} 
else if (score_txt.text>60) { 
    trace("C"); 
} 
else { 
    trace("F"); 
}

Vedere anche

extendsparola chiave di definizione 
Uso
class className extends otherClassName {}
interface interfaceName extends otherInterfaceName {} 

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Definisce una classe che è una sottoclasse di un'altra classe. La sottoclasse eredita tutti i metodi, le proprietà e le funzioni definiti nella superclasse. Le classi contrassegnate come final non possono essere estese.

La parola chiave extends può essere utilizzata anche per estendere un'interfaccia. Un'interfaccia che estende un'altra interfaccia include tutte le dichiarazioni di metodo dell'interfaccia originale.

Nota: per utilizzare questa parola chiave, è necessario specificare ActionScript 2.0 e Flash Player 6 o superiore nella scheda Flash della finestra di dialogo Impostazioni pubblicazione del file FLA. Questa parola chiave è supportata solo quando è utilizzata nei file di script esterni, non negli script scritti nel pannello Azioni.

Parametri
className:Class — Il nome della classe in corso di definizione.

Esempio
Come utilizzare gli esempi
Nell'esempio seguente, la classe Car estende la classe Vehicle in modo che tutti i metodi, le proprietà e le funzioni vengano ereditate. Se lo script crea un'istanza di un oggetto Car, è possibile utilizzare sia i metodi della classe Car che quelli della classe Vehicle.

L'esempio seguente mostra il contenuto di un file di nome Vehicle.as, che definisce la classe Vehicle:

package {
    class Vehicle { 
        var numDoors:Number; 
        var color:String; 
        public function Vehicle(param_numDoors:Number = 2, param_color:String = null) { 
            numDoors = param_numDoors; 
            color = param_color; 
        } 
        public function start():void { 
            trace("[Vehicle] start"); 
        } 
        public function stop():void { 
            trace("[Vehicle] stop"); 
        } 
        public function reverse():void { 
            trace("[Vehicle] reverse"); 
        } 
    }    
}
L'esempio seguente mostra un secondo file ActionScript, denominato Car.as, nella stessa directory. Questa classe estende la classe Vehicle, modificandola in tre modi. Innanzi tutto, la classe Car aggiunge una variabile fullSizeSpare per verificare se l'oggetto Car ha una gomma di scorta di dimensione regolare. Quindi, aggiunge un nuovo metodo specifico delle automobili, activateCarAlarm(), che attiva l'antifurto dell'auto. Infine, sostituisce la funzione stop() in modo da aggiungere l'informazione che la classe Car utilizza un sistema di frenata anti-bloccaggio.
package {

    public class Car extends Vehicle { 
        var fullSizeSpare:Boolean; 
        public function Car(param_numDoors:Number, param_color:String, param_fullSizeSpare:Boolean) { 
            numDoors = param_numDoors; 
            color = param_color; 
            fullSizeSpare = param_fullSizeSpare; 
        } 
        public function activateCarAlarm():void { 
            trace("[Car] activateCarAlarm"); 
        } 
        public override function stop():void { 
            trace("[Car] stop with antilock brakes"); 
        } 
    }
}
L'esempio seguente crea un'istanza di un oggetto Car, chiama un metodo definito nella classe Vehicle (start()), quindi chiama il metodo ignorato dalla classe Car (stop()), infine chiama un metodo della classe Car (activateCarAlarm()):
var myNewCar:Car = new Car(2, "Red", true); 
myNewCar.start(); // output: [Vehicle] start 
myNewCar.stop(); // output: [Car] stop with anti-lock brakes 
myNewCar.activateCarAlarm(); // output: [Car] activateCarAlarm

Si potrebbe anche scrivere una sottoclasse della classe Vehicle mediante l'istruzione super, che può essere utilizzata dalla sottoclasse per accedere alla funzione di costruzione della superclasse. L'esempio seguente mostra un terzo file ActionScript, denominato Truck.as, sempre nella stessa directory. La classe Truck utilizza super nella funzione di costruzione e nel metodo reverse() sostituito.

package {
    class Truck extends Vehicle {
        var numWheels:Number;
        public function Truck(param_numDoors:Number, param_color:String, param_numWheels:Number) { 
            super(param_numDoors, param_color); 
            numWheels = param_numWheels; 
        } 
        public override function reverse():void { 
            beep();
            super.reverse();
        } 
        public function beep():void { 
            trace("[Truck] make beeping sound"); 
        } 
    }
}
L'esempio seguente crea un'istanza di un oggetto Truck, chiama un metodo ignorato dalla classe Truck (reverse()), quindi chiama un metodo definito nella classe Vehicle (stop()):
var myTruck:Truck = new Truck(2, "White", 18); 
myTruck.reverse(); // output: [Truck] make beeping sound [Vehicle] reverse 
myTruck.stop(); // output: [Vehicle] stop

Vedere anche

falseparola chiave di espressione primaria 
Uso
false

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Un valore booleano che rappresenta false. Un valore booleano può essere true o false; il contrario di false è true.

Quando la tipizzazione automatica dei dati converte false in un numero, questo diventa 0; quando converte false in una stringa, questa diventa "false".

Nota: la stringa "false" viene convertita nel valore booleano true.


Esempio
Come utilizzare gli esempi
Questo esempio mostra il modo in cui la tipizzazione automatica dei dati converte il valore false in un numero o in una stringa:
var bool1:Boolean = Boolean(false);

// converts it to the number 0
trace(1 + bool1); // outputs 1

// converts it to a string
trace("String: " + bool1); // outputs String: false

L'esempio seguente mostra che la stringa "false" viene convertita nel valore booleano true:

trace(Boolean("false")); // output: true

if ("false") {
    trace("condition expression evaluated to true");
}
else {
    trace("condition expression evaluated to false");
}
// output: condition expression evaluated to true

Vedere anche

finalparola chiave attributo 
Uso
final function methodName() { 
	// your statements here 
}
final class className {}

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Specifica che un metodo non può essere sostituito o che una classe non può essere estesa. Un tentativo di sostituire un metodo o di estendere una classe contrassegnata con final genera un errore.

Parametri
methodName:Function — Il nome del metodo che non può essere sostituito.
className:Class — Il nome della classe che non può essere estesa.

Vedere anche

flash_proxyspazio dei nomi 

Definisce i metodi della classe Proxy. I metodi della classe Proxy hanno un proprio spazio dei nomi per evitare conflitti in situazioni in cui una sottoclasse Proxy contiene nomi di metodi di istanze che corrispondono a nomi di metodi della classe Proxy.

Vedere anche

foristruzione 
Uso
for ([init]; [condition]; [next]) { 
	// statement(s)
}

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Valuta l'espressione init (inizializza) una volta, quindi avvia una sequenza di ripetizione ciclica. La sequenza di ripetizione ciclica inizia dalla valutazione dell'espressione condition. Se l'espressione condition restituisce true, viene eseguito statement e viene valutato next. La sequenza di ripetizione ciclica quindi riprende dalla valutazione dell'espressione condition.

Le parentesi graffe ({}) che racchiudono le istruzioni che devono essere eseguite dall'istruzione for non sono necessarie se viene eseguita una sola istruzione.

Parametri
init — Un'espressione opzionale da valutare prima dell'inizio della sequenza di ripetizione ciclica; solitamente è un'espressione di assegnazione. Per questo parametro è consentito anche l'uso dell'istruzione var.
condition — Un'espressione opzionale da valutare prima dell'inizio della sequenza di ripetizione ciclica; solitamente si tratta di un'espressione di confronto. Se l'espressione restituisce true, vengono eseguite le istruzioni associate all'istruzione for.
next — Un'espressione opzionale da valutare dopo la sequenza di ripetizione ciclica; solitamente è un'espressione di decremento.

Esempio
Come utilizzare gli esempi
L'esempio seguente utilizza for per aggiungere gli elementi in un array:
var my_array:Array = new Array(); 
for (var i:Number = 0; i < 10; i++) { 
    my_array[i] = (i + 5) * 10;  
} 
trace(my_array); // output: 50,60,70,80,90,100,110,120,130,140 
L'esempio seguente utilizza for per eseguire ripetutamente la stessa azione. Nel codice, il ciclo for aggiunge i numeri compresi tra 1 e 100.
var sum:Number = 0; 
for (var i:Number = 1; i <= 100; i++) { 
    sum += i; 
} 
trace(sum); // output: 5050
L'esempio seguente mostra che le parentesi graffe ({}})non sono necessarie se viene eseguita una sola istruzione:
var sum:Number = 0; 
for (var i:Number = 1; i <= 100; i++) 
    sum += i; 
trace(sum); // output: 5050

Vedere anche

for..inistruzione 
Uso
for (variableIterant:String in object){ 
	// statement(s)
} 

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Esegue un'iterazione sulle proprietà dinamiche di un oggetto o sugli elementi di un array ed esegue statement per ogni proprietà o elemento. Le proprietà degli oggetti non vengono ordinate in base a criteri particolari, quindi possono apparire in un ordine apparentemente casuale. Le proprietà fisse, come le variabili e i metodi definiti in una classe, non vengono enumerate dall'istruzione for..in. Per ottenere un elenco di proprietà fisse, utilizzare la funzionedescribeType(), inclusa nel pacchetto flash.utils.

Parametri
variableIterant:String — Il nome di una variabile che deve agire come elemento di iterazione, facendo riferimento a ciascuna proprietà di un oggetto o elemento di un array.

Esempio
Come utilizzare gli esempi
L'esempio seguente utilizza for..in per eseguire un'iterazione sulle proprietà di un oggetto:
var myObject:Object = {firstName:"Tara", age:27, city:"San Francisco"}; 
for (var prop in myObject) { 
    trace("myObject."+prop+" = "+myObject[prop]); 
} 
/* output:
myObject.firstName = Tara 
myObject.age = 27 
myObject.city = San Francisco
*/
L'esempio seguente utilizza l'operatore typeof con for..in per eseguire l'iterazione in un tipo particolare di elemento secondario:
var myObject:Object = {firstName:"Tara", age:27, city:"San Francisco"}; 
for (var name in myObject) { 
    if (typeof (myObject[name]) == "string") { 
        trace("I have a string property named "+name); 
    } 
}
/* output:
I have a string property named city
I have a string property named firstName
*/

Vedere anche

for each..inistruzione 
Uso
for each (variableIterant in object){ 
	// statement(s)
} 

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Esegue un'iterazione sulle voci di una raccolta ed esegue statement per ciascuna voce. Introdotta con le estensioni del linguaggio E4X, l'istruzionefor each..in può essere utilizzata non solo per gli oggetti XML, ma anche per gli oggetti e gli array. L'istruzione for each..in esegue un'iterazione unicamente sulle proprietà dinamiche di un oggetto, non su quelle fisse. Una proprietà fissa è una proprietà definita in una definizione di classe. Per utilizzare l'istruzione for each..in con un'istanza di una classe definita dall'utente, occorre dichiarare la classe con l'attributo dynamic.

A differenza dell'istruzione for..in, l'istruzione for each..in esegue l'iterazione sui valori delle proprietà di un oggetto, invece che sui nomi delle proprietà.

Parametri
variableIterant:* — Il nome di una variabile che deve agire come elemento di iterazione, facendo riferimento alla voce di una raccolta.
object:Object — Il nome della raccolta sulla quale deve essere eseguita l'iterazione. La raccolta può essere un oggetto XML, un oggetto generico o un array.

Esempio
Come utilizzare gli esempi
L'esempio seguente utilizza for each..in per eseguire un'iterazione sui valori delle proprietà di un oggetto:
var myObject:Object = {firstName:"Tara", age:27, city:"San Francisco"}; 
for each (var item in myObject) { 
    trace(item); 
} 
/* output:
Tara
27
San Francisco
*/
L'esempio seguente utilizza for each..in per eseguire un'iterazione sugli elementi di un array.
var myArray:Array = new Array("one", "two", "three"); 
for each(var item in myArray) 
    trace(item); 
/* output: 
one
two
three
*/
L'esempio seguente utilizza l'operatore is con for each..in per eseguire l'iterazione in un tipo particolare di elemento secondario:
var myObject:Object = {firstName:"Tara", age:27, city:"San Francisco"}; 
for each (var item in myObject) { 
    if (item is String) {  
        trace("I have a string property with value " + item); 
    } 
}

/* output:
I have a string property with value Tara
I have a string property with value San Francisco
*/
L'esempio seguente mostra come usare for each..in per eseguire un'iterazione nelle proprietà di un oggetto XMLList (doc.p):
var doc:XML = 
        <body>
            <p>Hello</p>
            <p>Hola</p>
            <hr />
            <p>Bonjour</p>
        </body>;
for each (var item in doc.p) {
    trace(item);
}

/* output:
Hello
Hola
Bonjour
*/

Vedere anche

functionparola chiave di definizione 
Uso
function functionName([parameter0, parameter1,...parameterN]) : returnType{ 
	// statement(s) 
} 
var functionName:Function = function ([parameter0, parameter1,...parameterN]) : returnType{ 
	// statement(s) 
} 

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Comprende un set di istruzioni definite dall'utente per eseguire una determinata attività. È possibile definire una funzione in una posizione e chiamarlada diversi script in un file SWF. Quando si definisce una funzione, è possibile anche specificare gli eventuali parametri. vale a dire i segnaposto dei valori su cui la funzione agisce. È possibile trasmettere diversi parametri a una funzione ogni volta che viene chiamata, in modo da poterlo la funzione in situazioni diverse.

Utilizzare l'istruzione return nel blocco statement(s) di una funzione per fare in modo che la funzione generi, ovvero restituisca, un valore.

Uso 1: è possibile utilizzare la parola chiave function per definire una funzione con un nome, dei parametri e delle istruzioni specifiche. Quando uno script chiama una funzione, vengono eseguite le istruzioni nella definizione della funzione. È consentito utilizzare riferimenti di inoltro; all'interno dello stesso script, una funzione può essere dichiarata dopo che è stata chiamata. Una definizione di funzione sostituisce l'eventuale definizione preesistente della stessa funzione. Questa sintassi può essere utilizzata in tutti i casi in cui è consentita un'istruzione.

Uso 2: è anche possibile utilizzare function per creare una funzione anonima e restituire un riferimento ad essa. Questa sintassi è utilizzata nelle espressioni ed è particolarmente utile per installare i metodi negli oggetti.

Per ulteriori funzionalità, è possibile utilizzare l'oggetto arguments nella definizione della funzione. L'oggetto arguments è comunemente utilizzato per creare funzioni che accettano un numero variabile di parametri e funzioni anonime ricorsive.

Parametri
functionName:Function — Il nome della nuova funzione.
returnType:* — Il tipo di dati del valore restituito.

Esempio
Come utilizzare gli esempi
L'esempio seguente definisce la funzione sqr, che restituisce il valore di un numero elevato al quadrato:
function sqr(xNum:Number) { 
    return Math.pow(xNum, 2); 
} 
var yNum:Number = sqr(3); 
trace(yNum); // output: 9
Se la funzione è definita e utilizzata nello stesso script, la posizione della definizione può essere successiva a quella in cui la funzione è utilizzata:
var yNum:Number = sqr(3); 
trace(yNum); // output: 9 
function sqr(xNum:Number) { 
    return Math.pow(xNum, 2); 
}

Vedere anche

getparola chiave di definizione 
Uso
function get property() : returnType{ 
	// your statements here 
}

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Definisce un getter, ovvero un metodo che può essere letto come una proprietà. Un getter è una funzione speciale che restituisce il valore di una proprietà dichiarata con la parola chiave var o const. A differenza di altri metodi, un getter viene chiamato senza parentesi (()) e assomiglia quindi a una variabile.

I getter consentono di applicare il principio denominato "information hiding", che consente di creare un'interfaccia pubblica per una proprietà privata. Il vantaggio dell'information hiding consiste nel fatto che l'interfaccia pubblica rimane inalterata anche se l'implementazione sottostante della proprietà privata cambia.

Un altro vantaggio offerto dai getter è la possibilità di essere sostituiti nelle sottoclassi, a differenza delle proprietà dichiarate con var o const.

Un getter può essere combinato con un setter per creare una proprietà di lettura-scrittura. Per creare una proprietà di sola lettura, creare un getter senza un setter corrispondente. Viceversa, per creare una proprietà di sola scrittura, creare un setter senza un getter corrispondente.

Nota: per utilizzare questa parola chiave, è necessario specificare ActionScript 2.0 e Flash Player 6 o superiore nella scheda Flash della finestra di dialogo Impostazioni pubblicazione del file FLA. Questa parola chiave è supportata solo quando è utilizzata nei file di script esterni, non negli script scritti nel pannello Azioni.

Parametri
property:* — L'identificatore della proprietà a cui get accede; questo valore deve essere uguale a quello utilizzato nel comando set corrispondente.
returnType:* — Il tipo di dati del valore restituito.

Esempio
Come utilizzare gli esempi
L'esempio seguente definisce la classe Team. La classe Team comprende i metodi getter e setter che consentono di recuperare e impostare le proprietà all'interno della classe:
package {
    public class Team { 
        var teamName:String; 
        var teamCode:String; 
        var teamPlayers:Array = new Array(); 
        public function Team(param_name:String, param_code:String) { 
            teamName = param_name; 
            teamCode = param_code; 
        } 
        public function get name():String { 
            return teamName; 
        } 
        public function set name(param_name:String):void { 
            teamName = param_name; 
        }
    } 
}
Immettere il codice seguente nello script:
var giants:Team = new Team("San Fran", "SFO"); 
trace(giants.name); 
giants.name = "San Francisco"; 
trace(giants.name); 
/* output: 
San Fran San Francisco */

Quando si esegue il trace di giants.name, si utilizza un metodo getter per restituire il valore della proprietà.

Vedere anche

ifistruzione 
Uso
if (condition) {
	// statement(s)
}

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Valuta una condizione per determinare l'istruzione successiva da eseguire. Se la condizione restituisce true, Flash Player esegue le istruzioni che seguono la condizione all'interno delle parentesi graffe ({}). Se la condizione è false, Flash Player ignora le istruzioni all'interno delle parentesi graffe ed esegue le istruzioni dopo le parentesi. Utilizzare l'istruzione if con l'istruzione else per creare una logica ad albero negli script.

Le parentesi graffe ({}) che racchiudono le istruzioni che devono essere eseguite dall'istruzione if non sono necessarie se viene eseguita una sola istruzione.

Parametri
condition:Boolean — Espressione che restituisce true o false.

Vedere anche

implementsparola chiave di definizione 
Uso
myClass implements interface01 [, interface02 , ...] 

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Specifica che una class implementa una o più interfacce. Quando una classe implementa un'interfaccia, la classe deve definire tutti i metodi dichiarati nell'interfaccia. Qualsiasi istanza di una classe che implementa un'interfaccia è considerata un membro del tipo di dati definito dall'interfaccia. Di conseguenza l'operatore is restituisce true quando l'istanza della classe è il primo operando e l'interfaccia è il secondo; inoltre, le assegnazioni di tipo forzate da e verso il tipo di dati definito dall'interfaccia funzionano.

Nota: per utilizzare questa parola chiave, è necessario specificare ActionScript 2.0 e Flash Player 6 o superiore nella scheda Flash della finestra di dialogo Impostazioni pubblicazione del file FLA. Questa parola chiave è supportata solo quando è utilizzata nei file di script esterni, non negli script scritti nel pannello Azioni.

Vedere anche

importdirettiva 
Uso
import packageName.className 
import packageName.*

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Rende disponibili al codice le classi e i pacchetti definiti esternamente. Ad esempio, se si vuole utilizzare la classe flash.display.Sprite in uno script, è necessario importarla. Questo requisito è diverso rispetto alle versioni precedenti di ActionScript, nelle quali direttiva import era opzionale.

Dopo aver specificato la direttiva import è possibile utilizzare il nome completo della classe, che include il nome del pacchetto, oppure solo il nome della classe.

 
import flash.display.Sprite; 

// name of class only
var mySprite:Sprite = new Sprite();

// full class name
var mySprite:flash.display.Sprite = new flash.display.Sprite();

Se il pacchetto contiene più classi alle quali si desidera accedere, è possibile importarle tutte in un'unica istruzione, come nell'esempio seguente:

import flash.display.*;

La direttiva import importa solo le classi, le funzioni e le variabili che si trovano al livello principale del pacchetto importato. I pacchetti nidificati devono essere importati in modo esplicito.

Se si importa una classe ma non la si utilizza nello script, essa non viene esportata nel file SWF. Questo significa che è possibile importare pacchetti di grandi dimensioni senza doversi preoccupare delle dimensioni del file SWF; il codice byte associato a una classe viene incluso in un file SWF solo se tale classe viene effettivamente utilizzata. Uno svantaggio dell'importazione delle classi non necessarie è costituito dalla maggiore probabilità di conflitti tra i nomi.

La direttiva import si applica solo allo script corrente (fotogramma o oggetto) in cui viene chiamata. Ad esempio, se nel fotogramma 1 di un documento Flash si importano tutte le classi del pacchetto adobe.example, in quel fotogramma è possibile fare riferimento alle classi del pacchetto utilizzando i semplici nomi:

// On Frame 1 of a FLA: 
import adobe.example.*; 
var myFoo:foo = new foo();

In un altro script di fotogramma, tuttavia, sarebbe necessario fare riferimento alle classi di quel pacchetto mediante i loro nomi completi (var myFoo:foo = new adobe.example.foo();) o aggiungere un'istruzione import all'altro fotogramma che importa le classi di quel pacchetto.

Parametri
packageName:* — Il nome di un pacchetto definito in un file di classe separato.
className:Class — Il nome di una classe definita in un file di classe separato.

Vedere anche

includedirettiva 
Uso
include "[path]filename.as"

Comprende il contenuto del file specificato, come se i comandi del file facessero parte dello script di chiamata. La direttiva include viene chiamata al momento della compilazione. Pertanto, se si apportano modifiche a un file incluso, è necessario salvarlo e ricompilare gli eventuali file FLA che lo utilizzano.

Vedere anche

interfaceparola chiave di definizione 
Uso
 interface InterfaceName [extends InterfaceName ] {}

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Definisce un'interfaccia. Le interfacce sono tipi di dati che definiscono una serie di metodi, i quali devono essere definiti da ogni classe che implementa l'interfaccia.

Un'interfaccia è simile a una classe, con le eccezioni seguenti:

A differenza di ActionScript 2.0, ActionScript 3.0 consente l'utilizzo dei metodi getter e setter nelle definizioni delle interfacce.

Nota: per utilizzare questa parola chiave, è necessario specificare ActionScript 2.0 e Flash Player 6 o superiore nella scheda Flash della finestra di dialogo Impostazioni pubblicazione del file FLA. Questa parola chiave è supportata solo quando è utilizzata nei file di script esterni, non negli script scritti nel pannello Azioni.

Vedere anche

internalparola chiave attributo 
Uso
[internal] var varName
[internal] const kName
[internal] function functionName()  { 
	// your statements here 
}
[internal] class className{
	// your statements here 
}
[internal] namespace nsName

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Specifica che una classe, una variabile, una costante o una funzione è disponibile a qualsiasi chiamante nello stesso pacchetto. Le classi, le proprietà e i metodi appartengono per impostazione predefinita allo spazio dei nomi internal.

Parametri
className:Class — Il nome della classe che si desidera specificare come interna.
varName:* — Il nome della variabile che si desidera specificare come interna. È possibile applicare l'attributo internal a prescindere che la variabile faccia parte o meno della classe.
kName:* — Il nome della costante che si desidera specificare come interna. È possibile applicare l'attributo internal a prescindere che la costante faccia parte o meno della classe.
functionName:Function — Il nome della funzione o del metodo che si desidera specificare come interno. È possibile applicare l'attributo internal a prescindere che la funzione faccia parte o meno della classe.
nsName:Namespace — Il nome dello spazio dei nomi che si desidera specificare come interno. È possibile applicare l'attributo internal a prescindere che lo spazio dei nomi faccia parte o meno della classe.

Vedere anche

labelistruzione 
Uso
label: statement
label: {
    statements
}

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Associa un'istruzione a un identificatore al quale è possibile fare riferimento con break o continue. Nei cicli nidificati, un'istruzione break o continue che non fa riferimento a un'etichetta può saltare solo il resto del ciclo immediato e non l'intera serie di cicli nidificati. Tuttavia, se l'istruzione che definisce l'intera serie di cicli è associata a un'etichetta, un'istruzione break o continue può saltare l'intera serie di cicli facendo riferimento a tale etichetta.

Le etichette consentono anche di uscire da un blocco di istruzioni. Non è consentito inserire in un blocco di istruzioni un'istruzione break che non fa riferimento a un'etichetta, a meno che il blocco non faccia parte di un ciclo. Se il blocco di istruzioni è associato a un'etichetta, è possibile inserire nel blocco break un'istruzione che fa riferimento a tale etichetta.

Parametri
label:* — Un identificatore valido da associare a un'istruzione.
statements:* — L'istruzione da associare all'etichetta.

Esempio
Come utilizzare gli esempi
L'esempio seguente mostra come utilizzare un'etichetta con un ciclo nidificato per uscire dall'intera serie di cicli. Il codice utilizza un ciclo nidificato per generare un elenco di numeri da 0 a 99. L'istruzione break viene eseguita appena prima che il conteggio raggiunga il numero 80. Se l'istruzione break non contenesse l'etichetta outerLoop il codice ignorerebbe solo il resto del ciclo immediato e continuerebbe a generare i numeri da 90 a 99. Tuttavia, poiché viene utilizzata l'etichetta outerLoop, l'istruzione break ignora il resto dell'intera serie di cicli e l'ultimo numero generato è 79.
outerLoop: for (var i:int = 0; i < 10; i++) {
    for (var j:int = 0; j < 10; j++) {
        if ( (i == 8) && (j == 0)) {
            break outerLoop;
        }
        trace(10 * i + j);
    }
}
/* output:
1
2
...
79
*/

L'esempio seguente mostra come utilizzare un'etichetta con un blocco di istruzioni. Nell'esempio seguente, il blocco di istruzioni ha l'etichetta foo, che consente all'istruzione break di saltare l'ultima istruzione del blocco:

foo: {
    trace("a");
    break foo;
    trace("b");
}
// output: a

Vedere anche

namespaceparola chiave di definizione 
Uso
namespace name [= uri]

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Consente di controllare la visibilità delle definizioni. Gli spazi dei nomi predefiniti includono public, private, protectede internal (questi spazi dei nomi specifici vengono chiamati anche "specificatori di controllo accesso" e sono trattati anche nella documentazione alla voce "Attributi delle proprietà di classe"). Se gli spazi dei nomi predefiniti non sono adatti alle proprie esigenze, è possibile definire uno personalizzato.

Nelle procedure seguenti viene illustrato come creare, applicare e fare riferimento a uno spazio dei nomi personalizzato.

Parametri
name:Namespace — Il nome dello spazio dei nomi, che può essere qualunque identificatore valido.
uri:String — L'URI (Uniform Resource Identifier) dello spazio dei nomi. Questo parametro è opzionale.

Vedere anche

nativeparola chiave attributo 
Uso
native function functionName();
class className { 
	native function methodName();
}

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Specifica che una funzione o un metodo è implementato da Flash Player nel codice nativo. Flash Player utilizza la parola chiave native internamente per dichiarare funzioni e metodi nell'API ActionScript. Questa parola chiave non può essere utilizzata nel codice dell'utente.

nullparola chiave di espressione primaria 
Uso
null

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Valore speciale che può essere assegnato a variabili o restituito da una funzione quando non vengono forniti dati. Utilizzare null per rappresentare valori mancanti o che non presentano un tipo di dati definito.

Non confondere il valore null con il valore speciale undefined. Quando null e undefined vengono confrontati mediante l'operatore di uguaglianza (==), risultano uguali. Tuttavia, quando null e undefined vengono confrontati mediante l'operatore di uguaglianza rigorosa (===), non risultano uguali.


Esempio
Come utilizzare gli esempi
L'esempio seguente controlla i primi sei valori di un array indicizzato e genera un messaggio se non è stato impostato alcun valore (se value == null):

var testArray:Array = new Array();
testArray[0] = "fee";
testArray[1] = "fi";
testArray[4] = "foo";

for (i = 0; i < 6; i++) {
    if (testArray[i] == null) {
        trace("testArray[" + i + "] == null");
    }
}

/* output: 
testArray[2] == null
testArray[3] == null
testArray[5] == null
*/

Vedere anche

object_proxyspazio dei nomi 

Definisce i metodi della classe ObjectProxy. I metodi della classe ObjectProxy hanno un proprio spazio dei nomi per evitare conflitti in situazioni in cui una sottoclasse Proxy contiene nomi di metodi di istanze che corrispondono a nomi di metodi della classe Proxy.

overrideparola chiave attributo 
Uso
override function name() { 
	// your statements here 
}

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Specifica che un metodo sostituisce un metodo ereditato. Per sostituire un metodo ereditato, occorre utilizzare l'attributooverride e verificare che il nome, il numero il tipo di parametri e il tipo restituito corrispondano esattamente. Non è consentito tentare di sostituire un metodo senza utilizzare l'attributo override. Analogamente, viene generato un errore se si utilizza l'attributo override ma al metodo non corrisponde un metodo ereditato.

Non è possibile utilizzare l'attributo override sugli elementi seguenti:

Benché non sia consentito sostituire una proprietà dichiarata con var o const, è possibile ottenere una funzionalità simile impostando come getter-setter la proprietà della classe base e sostituendo i metodi definiti con get e set.

Parametri
name:Function — Il nome del metodo da sostituire.

Vedere anche

packageparola chiave di definizione 
Uso
package packageName {
    class someClassName { 
    } 
}

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Consente di organizzare il codice in gruppi distinti che possono essere importati da altri script. È necessario utilizzare la parola chiave package per indicare che una classe è un membro di un pacchetto.

Parametri
packageName:* — Il nome del pacchetto.

Vedere anche

privateparola chiave attributo 
Uso
class className{ 
	private var varName;
	private const kName;
	private function methodName() { 
		// your statements here 
	}
	private namespace nsName;
}

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Specifica che una variabile, una costante o un metodo è disponibile solo per la classe che ne contiene la dichiarazione o la definizione. A differenza che in ActionScript 2.0, in ActionScript 3.0 private non fornisce più accesso alle sottoclassi. Inoltre, private limita l'accesso sia in fase di compilazione che in runtime. Per impostazione predefinita, una variabile o una funzione è disponibile a qualsiasi chiamante nello stesso pacchetto. Utilizzare questa parola chiave se si desidera limitare l'accesso a una variabile o funzione.

È possibile utilizzare questa parola chiave solo nelle definizioni di classe, non nelle definizioni di interfaccia. Non è possibile applicare private a una classe o a qualunque altra definizione a livello di pacchetto.

Parametri
varName:* — Il nome della variabile che si desidera specificare come privata. È possibile applicare l'attributo private solo se la variabile è all'interno di una classe.
kName:* — Il nome della costante che si desidera specificare come privata. È possibile applicare l'attributo private solo se la costante è all'interno di una classe.
methodName:Function — Il nome del metodo che si desidera specificare come privato. È possibile applicare l'attributo private solo se il metodo è all'interno di una classe.
nsName:Namespace — Il nome dello spazio dei nomi che si desidera specificare come privato. È possibile applicare l'attributo private solo se lo spazio dei nomi è all'interno di una classe.

Esempio
Come utilizzare gli esempi
L'esempio seguente mostra il modo in cui nascondere determinate proprietà all'interno di una classe utilizzando la parola chiave private.
class A { 
  private var alpha:String = "visible only inside class A"; 
  public var beta:String = "visible everywhere"; 
}
    
class B extends A {
  function B() {
    alpha = "Access attempt from subclass"; // error
  }
}

Poiché alpha è una variabile privata, non è possibile accedervi dall'esterno della classe A, nemmeno dalla sottoclasse B. I tentativi di accesso alla variabile privata generano un errore.

Vedere anche

protectedparola chiave attributo 
Uso
class className{ 
	protected var varName;
	protected const kName;
	protected function methodName() { 
		// your statements here 
	}
	protected namespace nsName;
}

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Specifica che una variabile, una costante, un metodo o uno spazio dei nomi è disponibile solo per la classe che ne contiene la definizione e per le eventuali sottoclassi. La definizione di protected in ActionScript 3.0 è simile a quella della versione ActionScript 2.0 di private, con la differenza che protected limita l'accesso sia in fase di compilazione che in runtime. Per impostazione predefinita, una variabile o una funzione è disponibile a qualsiasi chiamante nello stesso pacchetto. Utilizzare questa parola chiave se si desidera limitare l'accesso a una variabile o funzione.

È possibile utilizzare questa parola chiave solo nelle definizioni di classe, non nelle definizioni di interfaccia. Non è possibile applicare private a una classe o a qualunque altra definizione a livello di pacchetto.

La definizione di protected in ActionScript 3.0 è più restrittiva di quella di protected nel linguaggio di programmazione Java. In ActionScript 3.0 protected limita l'accesso unicamente alle sottoclassi, mentre in Java protected consente l'accesso anche a qualsiasi classe dello stesso pacchetto. Ad esempio, se una classe denominata Base contiene una proprietà contrassegnata come protected, in ActionScript 3.0 solo le classi che estendono Base possono accedere alla proprietà protetta. In Java, qualunque classe dello stesso pacchetto di Base ha accesso alla proprietà protetta, anche se non si tratta di una sottoclasse di Base.

Parametri
varName:* — Il nome della variabile che si desidera specificare come protetta. È possibile applicare l'attributo protected solo se la variabile è all'interno di una classe.
kName:* — Il nome della costante che si desidera specificare come protetta. È possibile applicare l'attributo protected solo se la costante è all'interno di una classe.
methodName:Function — Il nome del metodo che si desidera specificare come protetto. È possibile applicare l'attributo protected solo se il metodo è all'interno di una classe.
nsName:Namespace — Il nome dello spazio dei nomi che si desidera specificare come protetto. È possibile applicare l'attributo protected solo se lo spazio dei nomi è all'interno di una classe.

Esempio
Come utilizzare gli esempi
L'esempio seguente crea una variabile protetta nella classe A e accede correttamente a tale variabile nella classe B perché quest'ultima è una sottoclasse di A.
class A { 
  private var alpha:String = "visible only inside class A"; 
  protected var beta:String = "visible inside class A and its subclasses"; 
}
    
class B extends A {
  public function B() {
    beta = "Access attempt from subclass succeeded";
    trace(beta);  // output: Access attempt from subclass succeeded
  }
}

Vedere anche

publicparola chiave attributo 
Uso
public var varName
public const kName
public function functionName()  { 
	// your statements here 
}
public class className {
	// your statements here 
}
public namespace nsName

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Specifica che una classe, una variabile, una costante o un metodo è disponibile a qualsiasi chiamante. Classi, variabili e metodi sono interni per impostazione predefinita, ovvero sono visibili solo all'interno del pacchetto corrente. Per rendere visibile ad altri chiamanti una classe, una variabile o un metodo, è necessario utilizzare l'attributopublic.

Parametri
className:Class — Il nome della classe che si desidera specificare come pubblica.
varName:* — Il nome della variabile che si desidera specificare come pubblica. È possibile applicare l'attributo public a prescindere che la variabile faccia parte o meno della classe.
kName:* — Il nome della costante che si desidera specificare come pubblica. È possibile applicare l'attributo public a prescindere che la costante faccia parte o meno della classe.
functionName:Function — Il nome della funzione o del metodo che si desidera specificare come pubblico. È possibile applicare l'attributo public a prescindere che la funzione faccia parte o meno della classe.
nsName:Namespace — Il nome dello spazio dei nomi che si desidera specificare come pubblico. È possibile applicare l'attributo public a prescindere che lo spazio dei nomi faccia parte o meno della classe.

Esempio
Come utilizzare gli esempi
L'esempio seguente mostra come utilizzare le variabili pubbliche in un file di classe:
class User { 
    public var age:Number; 
    public var fname:String; 
} // end of class User definition
 
var jimmy:User = new User(); 
jimmy.age = 27; 
jimmy.fname = "jimmy";
trace(jimmy.age, jimmy.fname); // output: 27 jimmy

Se si trasforma una delle variabili pubbliche della classe User in una variabile privata, qualunque tentativo di accedere a tale variabile dall'esterno della classe User genera un errore.

Vedere anche

returnistruzione 
Uso
function functionName () {
	return [expression]
}

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Fa in modo che l'esecuzione torni immediatamente alla funzione di chiamata. Se l'istruzione return è seguita da un'espressione, quest'ultima viene valutata e viene restituito il risultato.

Se la definizione di una funzione include un tipo restituito, l'istruzione return deve essere seguita da un'espressione. Se non viene specificato un tipo restituito e l'istruzionereturn è utilizzata da sola, restituisce il valore undefined.

Non è possibile eseguire return su più valori; se si tenta di eseguire questa operazione, viene restituito solo l'ultimo valore. Nel seguente esempio, viene restituito c:

return a, b, c ;

Per fare in modo che vengano restituiti più valori, utilizzare un array o un oggetto.

Parametri
expression:* — Un'espressione da valutare e da restituire come valore della funzione. Questo parametro è opzionale.

Risultato
* — Il parametro expression valutato, se fornito.

Esempio
Come utilizzare gli esempi
L'esempio seguente utilizza l'istruzione return all'interno del corpo della funzione sum() per restituire il valore aggiunto dei tre parametri. La successiva riga di codice chiama sum() e assegna il valore restituito alla variabile newValue.
function sum(a:Number, b:Number, c:Number):Number { 
    return (a + b + c); 
} 
var newValue:Number = sum(4, 32, 78); 
trace(newValue); // output: 114

Vedere anche

setparola chiave di definizione 
Uso
function set property(newValue:*) : void{ 
	// your statements here 
}

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Definisce un setter, ovver un metodo che appare nell'interfaccia pubblica come proprietà. Un setter è un metodo speciale che imposta il valore di una proprietà dichiarata con la parola chiave var. A differenza di altri metodi, un setter viene chiamato senza parentesi (()) e assomiglia quindi a una variabile.

I setter consentono di applicare il principio denominato "information hiding", che consente di creare un'interfaccia pubblica per una proprietà privata. Il vantaggio dell'information hiding consiste nel fatto che l'interfaccia pubblica rimane inalterata anche se l'implementazione sottostante della proprietà privata cambia.

Un altro vantaggio offerto dai setter è la possibilità di essere sostituiti nelle sottoclassi, a differenza delle proprietà dichiarate con var.

Il tipo restituito di un setter deve essere void o non specificato.

Un setter può essere combinato con un getter per creare una proprietà di lettura-scrittura. Per creare una proprietà di sola lettura, creare un getter senza un setter corrispondente. Viceversa, per creare una proprietà di sola scrittura, creare un setter senza un getter corrispondente.

Nota: questa parola chiave è supportata solo quando è utilizzata nei file di script esterni, non negli script scritti nel pannello Azioni.

Parametri
property:* — L'identificatore della proprietà modificata da set ; questo valore deve essere uguale a quello utilizzato nel comando get corrispondente.
newValue:* — Il nuovo valore da assegnare.

Esempio
Come utilizzare gli esempi
L'esempio seguente crea una proprietà di lettura-scrittura denominata age definendo un getter-setter.
package {
    class User { 
        private var userAge:Number; 
        
        public function get age():Number {
            return userAge;
        }
        
        public function set age(x:Number):void {
            userAge = x;    
        }
    } 
} 
Immettere il codice seguente nello script:
var myUser:User = new User();
myUser.age = 25;
trace(myUser.age); // output: 25

Vedere anche

staticparola chiave attributo 
Uso
class someClassName{ 
	static var varName; 
	static const kName;
	static function methodName() { 
		// your statements here
	} 
}

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Specifica che una variabile, una costante o un metodo appartiene alla classe e non alle sue istanze.

Per accedere a un membro statico di una classe, utilizzare il nome della classe invece del nome di un'istanza. Ad esempio, la classe Date ha un metodo statico denominato parse(), che può essere chiamato solo utilizzando la sintassi seguente:

Date.parse()

Il metodo parse() non può essere chiamato su un'istanza della classe Date. Ad esempio, il codice seguente genera un errore:

var myDate:Date = new Date();
			myDate.parse("Jan 01 00:00:00 2006"); // error

La parola chiave static può essere utilizzata solo nelle definizioni di classe, non nelle definizioni di interfaccia.

I membri statici delle classi non vengono ereditati. Non è possibile fare riferimento a un membro statico di una classe utilizzando il nome di una sottoclasse, come avviene in Java o C++. Tuttavia, è possibile fare riferimento a una variabile statica o a un metodo statico all'interno di una classe o di una sottoclasse, senza utilizzare alcun qualificatore. Vedere l'esempio riportato di seguito.

Non è possibile utilizzare l'istruzione super o la parola chiave this all'interno di metodi statici.

Nota: questa parola chiave è supportata solo quando è utilizzata nei file di script esterni, non negli script scritti nel pannello Azioni.

Parametri
varName:* — Il nome della variabile che si desidera specificare come statica.
kName:* — Il nome della costante che si desidera specificare come statica.
methodName:Function — Il nome del metodo che si desidera specificare come statico.

Esempio
Come utilizzare gli esempi
L'esempio seguente mostra il modo in cui è possibile utilizzare la parola chiave static per creare un contatore che tenga traccia del numero di istanze che sono state create per la classe. Dal momento che la variabile numInstances è static, viene creata solo una volta per l'intera classe e non per ogni singola istanza. Creare un nuovo file ActionScript denominato Users.as e immettere il codice seguente:
class Users { 
    private static var numInstances:Number = 0; 
    function Users() { 
        numInstances++; 
    } 
    static function get instances():Number { 
        return numInstances; 
    } 
}
Immettere il codice seguente nello script:
trace(Users.instances); 
var user1:Users = new Users(); 
trace(Users.instances); 
var user2:Users = new Users(); 
trace(Users.instances); 
L'esempio seguente estende la classe Users per mostrare che le variabili e i metodi statici non sono ereditati ma è possibile farvi riferimento nelle sottoclassi.
class PowerUsers extends Users{
    function PowerUsers() {
        instances++;  // unqualified reference to static property Users.instances is legal
    }
}

trace(PowerUsers.instances); // error, cannot access static property using PowerUsers class

Vedere anche

superistruzione 
Uso
super([arg1, ..., argN])
super.method([arg1, ..., argN])

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Richiama la versione superclasse o principale di un metodo o di una funzione di costruzione. Quando è utilizzata all'interno del corpo di una funzione di costruzione di classe, l'istruzione super() richiama la versione superclasse della funzione di costruzione. La chiamata alla funzione di costruzione della superclasse deve contenere il numero corretto di argomenti. Si noti che la funzione di costruzione della superclasse viene chiamata in ogni caso, anche se non viene specificata esplicitamente. In mancanza di una chiamata esplicita, viene inserita automaticamente una chiamata senza argomenti prima della prima istruzione nel corpo della funzione di costruzione della superclasse. Di conseguenza, se si definisce una funzione di costruzione in una sottoclasse e la funzione di costruzione della superclasse accetta uno o più argomenti, è necessario chiamare esplicitamente la funzione di costruzione della superclasse con il numero corretto di argomenti, altrimenti verrà generato un errore. La chiamata alla funzione di costruzione della superclasse, tuttavia, non deve essere necessariamente la prima istruzione nella funzione di costruzione della sottoclasse, come occorreva fare in ActionScript 2.0.

Quando viene utilizzata nel corpo del metodo di un'istanza, l'istruzione super può essere specificata con l'operatore punto (.) per chiamare la versione superclasse di un metodo, e può facoltativamente passare gli argomenti (arg1 ... argN) al metodo della superclasse. Questo è utile per creare metodi di sottoclasse che oltre ad aggiungere comportamenti supplementari ai metodi della superclasse, li richiamano affinché eseguano il loro comportamento originale.

Non è possibile utilizzare l'istruzione super all'interno di metodi statici.

Parametri
method:Function — Il metodo da chiamare nella superclasse.
argN:* — Parametri opzionali che vengono passati alla versione superclasse del metodo o alla funzione di costruzione della superclasse.

Vedere anche

switchistruzione 
Uso
switch (expression) {
	caseClause: 
	[defaultClause:] 
}

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Determina il passaggio del controllo a un'istruzione di una serie, a seconda del valore di un'espressione. Tutte le istruzioni switch devono includere un caso predefinito che viene eseguito se nessuna delle istruzioni case corrisponde all'espressione. Ogni istruzione case deve terminare con un'istruzione break, in modo da uscire correttamente dall'istruzione. In caso di mancata uscita da un'istruzione case, viene eseguito il codice dell'istruzione case successiva, anche se questa non corrisponde all'espressione da valutare.

Parametri
expression:* — Qualsiasi espressione.

Esempio
Come utilizzare gli esempi
L'esempio seguente definisce un'istruzione switch che si risolve con il caso predefinito:

var switchExpression:int = 3;
        
switch (switchExpression) {
    case 0:
        trace(0);
        break;
    case 1:
        trace(1);
        break;
    case 2:
        trace(2);
        break;
    default:
        trace("Not 0, 1, or 2");
}

// output: Not 0, 1, or 2

Vedere anche

thisparola chiave di espressione primaria 
Uso
this

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Un riferimento all'oggetto che contiene un metodo. Durante l'esecuzione di uno script, la parola chiavethis fa riferimento all'oggetto che contiene lo script. All'interno del corpo di una funzione, la parola chiave this fa riferimento all'istanza di classe che contiene il metodo chiamato.


Esempio
Come utilizzare gli esempi
Per chiamare un funzione definita in una classe dinamica, utilizzare this per chiamare la funzione nell'area di validità appropriata:
// incorrect version of Simple.as
/*
dynamic class Simple {
    function callfunc() {
        func();
    }
}
*/
// correct version of Simple.as
dynamic class Simple {
    function callfunc() {
        this.func();
    }
}
Immettere il codice seguente nello script:
var simpleObj:Simple = new Simple();
simpleObj.func = function() {
    trace("hello there");
}
simpleObj.callfunc();
Il codice suddetto si utilizza con this nel metodo callfunc(). Tuttavia, si verifica un errore di sintassi se viene utilizzata la versione errata di Simple.as, che nell'esempio precedente è stata esclusa mediante un commento.

Vedere anche

throwistruzione 
Uso
throw expression 

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Crea, o genera, un errore che può essere gestito, o rilevato, mediante un blocco di codice catch. Se un'eccezione non viene rilevata da un blocco catch, la rappresentazione sotto forma di stringa del valore generato viene inviata al pannello Output. If an exception is not caught by a catch or finally block, the string representation of the thrown value is sent to the log file.

Tipicamente, vengono generate istanze della classe Error o delle sue sottoclassi (consultare la sezione degli esempi).

Parametri
expression:* — Un oggetto o espressione ActionScript.

Esempio
Come utilizzare gli esempi
In questo esempio, una funzione denominata checkEmail() verifica se la stringa che le viene passata è un indirizzo e-mail dal formato corretto. Se la stringa non contiene il simbolo @, viene generato un errore.
function checkEmail(email:String) { 
    if (email.indexOf("@") == -1) { 
        throw new Error("Invalid email address"); 
    } 
} 
checkEmail("someuser_theirdomain.com");
Quindi, il codice seguente chiama la stessa funzione, checkEmail(), all'interno di un blocco di codice try. Se la stringa e-mail non contiene un indirizzo e-mail valido, il messaggio di errore è generato dall'istruzione trace.
try { 
    checkEmail("Joe Smith"); 
} 
catch (e) { 
    trace(e); 
}
// output: Error: Invalid email address.
Nell'esempio seguente, viene generata una sottoclasse della classe Error. La funzione checkEmail() viene modificata in modo da generare un'istanza di tale classe.
// Define Error subclass InvalidEmailError 
class InvalidEmailAddress extends Error { 
    public function InvalidEmailAddress() {
        message = "Invalid email address."; 
    }
}
Immettere il codice seguente nello script:
import InvalidEmailAddress; 
function checkEmail(email:String) { 
    if (email.indexOf("@") == -1) { 
        throw new InvalidEmailAddress(); 
    } 
} 
try { 
    checkEmail("Joe Smith"); 
} 
catch (e) { 
    trace(e);
}
// output: Error: Invalid email address.

Vedere anche

trueparola chiave di espressione primaria 
Uso
true

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Un valore booleano che rappresenta true. Un valore booleano può essere true o false; il contrario di true è false. Quando la tipizzazione automatica dei dati converte true in un numero, questo diventa 1; quando converte true in una stringa, questa diventa "true".


Esempio
Come utilizzare gli esempi
L'esempio seguente mostra l'uso di true in un'istruzione if:

var shouldExecute:Boolean;
// ...
// code that sets shouldExecute to either true or false goes here
// shouldExecute is set to true for this example:

shouldExecute = true;

if (shouldExecute == true) {
    trace("your statements here");
}

// true is also implied, so the if statement could also be written:
// if (shouldExecute) {
//         trace("your statements here");
// }

L'esempio seguente mostra il modo in cui la tipizzazione automatica dei dati converte true nel numero 1:


var myNum:Number;
myNum = 1 + true;
trace(myNum); // output: 2

Vedere anche

try..catch..finallyistruzione 
Uso
try { 
    // try block 
} finally { 
    // finally block  
} 

try { 
    // try block 
} catch(error[:ErrorType1]) {
    // catch block 
} [catch(error[:ErrorTypeN]) { 
    // catch block 
}] [finally {
    // finally block 
}]

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Racchiude un blocco di codice nel quale può verificarsi un errore, quindi risponde all'errore. La gestione delle eccezioni, implementata mediante le istruzioni try..catch..finally, è il meccanismo principale per la gestione delle condizioni di errore runtime in ActionScript 3.0. Quando si verifica un errore runtime, Flash Player genera un'eccezione, ovvero sospende la normale esecuzione del codice e crea un oggetto speciale del tipo Error. Quindi, Flash Player passa (genera) l'oggetto errore al primo blocco catch disponibile. Se non è disponibile alcun blocco catch, l'eccezione viene considerata irrisolta. e determina l'interruzione dello script.

È possibile utilizzare l'istruzione throw per generare esplicitamente eccezioni nel codice. Può essere specificato qualunque valore per questa istruzione, ma è consigliato l'uso di un oggetto perché garantisce flessibilità ed è conforme al comportamento di Flash Player.

Per rilevare un'eccezione, generata da Flash Player o dal codice, inserire in un blocco try il codice da cui potrebbe essere generata. Se qualsiasi codice all'interno del blocco try genera un'eccezione, il controllo passa al blocco catch (se presente), quindi al blocco finally (se presente). Il blocco finally viene sempre eseguito, a prescindere che sia stata generata un'eccezione o meno. Se il codice nel blocco try non genera un'eccezione (ovvero se il blocco try viene completato normalmente), il codice nel blocco catch viene ignorato, ma quello nel blocco finally viene comunque eseguito. Il blocco finally viene eseguito anche se il blocco try viene chiuso mediante un'istruzione return.

Un blocco try deve essere seguito da un blocco catch, o da un blocco finally, o da entrambi. Un singolo blocco try può avere più blocchi catch ma solo un blocco finally. È possibile nidificare i blocchi try per tutti i numeri di livelli (profondità) desiderati.

Il parametro error specificato in un gestore catch deve essere un semplice identificatore come e o theException o x. È anche possibile assegnare un tipo al parametro. Quando sono utilizzati con più blocchi catch, i parametri con tipo consentono di rilevare più tipi di oggetti Error generati da un unico blocco try.

Se l'eccezione generata è un oggetto, il tipo corrisponde se l'oggetto generato è una sottoclasse del tipo specificato. Se viene generato un errore di un tipo specifico, viene eseguito il blocco catch che gestisce l'errore corrispondente. Se viene generata un'eccezione di un tipo diverso da quello specificato, il blocco catch non viene eseguito e l'eccezione viene automaticamente espulsa dal blocco try verso un gestore catch corrispondente.

Se un errore viene generato all'interno di una funzione, e la funzione non comprende un gestore catch, Flash Player esce da quella funzione e da tutte le funzioni di chiamata, finché non viene trovato un blocco catch. Nel corso di questo processo, i gestori finally vengono chiamati a tutti i livelli.

Parametri
error:* — L'espressione generata da un'istruzione throw, solitamente un'istanza della classe Error o di una delle sue sottoclassi.

Esempio
Come utilizzare gli esempi
L'esempio seguente mostra un'istruzione try..catch. Il codice all'interno del blocco try contiene un'operazione non consentita. Non è possibile aggiungere un oggetto Sprite come elemento secondario di se stesso. Di conseguenza, Flash Player genera un'eccezione e passa un oggetto del tipo ArgumentError al blocco catch corrispondente.
import flash.display.Sprite;

var spr:Sprite = new Sprite();
try {
    spr.addChild(spr);
}
catch (e:ArgumentError) {
    trace(e); // output: ArgumentError: Error #2024: An object may not be added as a child of itself.
}
Nell'esempio seguente, gli oggetti RecordSetException e MalformedRecord sono sottoclassi della classe Error.
class RecordSetException extends Error { 
    public function RecordSetException () {
        message = "Record set exception occurred."; 
    }
}

class MalformedRecord extends Error { 
    public function MalformedRecord {
        message = "Malformed record exception occurred."; 
    }
}
All'interno del metodo sortRows() della classe RecordSet, viene generato uno degli errori precedentemente definiti, a seconda del tipo di eccezione che si è verificata. L'esempio seguente mostra il possibile aspetto di tale codice:
class RecordSet { 
    public function sortRows() { 
        var returnVal:Number = randomNum(); 
        if (returnVal == 1) { 
            throw new RecordSetException(); 
        } 
        else if (returnVal == 2) { 
            throw new MalformedRecord(); 
        } 
    }
    public function randomNum():Number { 
        return Math.round(Math.random() * 10) % 3; 
    }
}
Infine, il codice seguente richiama il metodo sortRows() su un'istanza della classe RecordSet. Il metodo definisce i blocchi catch per ciascun tipo di oggetto errore che viene generato da sortRows().
import RecordSet; 
var myRecordSet:RecordSet = new RecordSet();
try { 
    myRecordSet.sortRows(); 
    trace("everything is fine"); 
} 
catch (e:RecordSetException) { 
    trace(e.toString()); 
} 
catch (e:MalformedRecord) { 
    trace(e.toString()); 
}

Vedere anche

use namespacedirettiva 
Uso
use namespace ns1[, ns2, ...nsN]

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Determina l'aggiunta degli spazi dei nomi specificati alla serie di spazi dei nomi aperti. Gli spazi dei nomi specificati vengono rimossi dalla serie di spazi dei nomi aperti dopo l'uscita dal blocco di codice corrente. La direttiva use namespace può apparire al livello principale di un programma o di una definizione di pacchetto o di classe.

Parametri
nsN:Namespace — Determina l'aggiunta di uno o più spazi dei nomi alla serie di spazi dei nomi aperti.

Vedere anche

varparola chiave di definizione 
Uso
var variableName [= value1][...,variableNameN[=valueN]] 

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Specifica una variabile. Se si dichiarano delle variabili all'interno di una funzione, tali variabili sono locali, vengono definite per la funzione e scadono al termine della chiamata della funzione.

Se si dichiarano delle variabili fuori da una funzione, tali variabili sono disponibili lungo l'intera linea temporale che contiene l'istruzione.

Non è possibile dichiarare come variabile locale una variabile che si trova nell'area di validità un altro oggetto.

my_array.length = 25; // ok 
var my_array.length = 25; // syntax error 

È possibile assegnare un tipo di dati a una variabile aggiungendo un carattere di due punti seguito dal tipo di dati.

È possibile dichiarare più variabili in un'istruzione, separando le dichiarazioni mediante virgole (tuttavia, questa sintassi può ridurre la chiarezza del codice):

var first:String = "Bart", middle:String = "J.", last:String = "Bartleby";

Parametri
variableName:* — Un identificatore.

Esempio
Come utilizzare gli esempi
Il codice ActionScript seguente crea un nuovo array di nomi di prodotto. Array.push aggiunge un elemento alla fine dell'array.
var product_array:Array = new Array("Studio", "Dreamweaver", "Flash", "ColdFusion", "Contribute", "Breeze"); 
product_array.push("Flex"); 
trace(product_array); 
// output: Studio,Dreamweaver,Flash,ColdFusion,Contribute,Breeze,Flex

Vedere anche

whileistruzione 
Uso
while (condition) { 
	// statement(s)
}

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Valuta una condizione e, se questa restituisce true, esegue una o più istruzioni prima di tornare a valutare la condizione. Dopo che la condizione ha restituito false, le istruzioni vengono ignorate e il ciclo termina.

L'istruzione while esegue le serie di operazioni seguenti. Ogni ripetizione dal punto 1 al punto 4 viene definita iterazione del ciclo. La condizione viene verificata all'inizio di ogni iterazione, come nei passaggi seguenti:

  1. L'espressione condition viene valutata.
  2. Se condition restituisce true o un valore che viene convertito nel valore booleano true(ad esempio, un numero diverso da zero), passare al punto 3. Altrimenti, l'istruzione while viene completata e l'esecuzione viene ripresa in corrispondenza della prima istruzione dopo il ciclo while.
  3. Eseguire il blocco di istruzioni statement(s). Se viene incontrata un'istruzione continue, saltare le istruzioni rimanenti e passare al punto 1. Se viene incontrata un'istruzione break, l'istruzione while viene completata e l'esecuzione riprende dalla prima istruzione successiva al ciclo while.
  4. Andare al punto 1.

La ripetizione ciclica viene solitamente utilizzata per eseguire un'azione finché la variabile counter è inferiore al valore specificato. Alla fine di ogni ciclo, la variabile counter viene incrementata finché non viene raggiunto il valore specificato. A quel punto, condition non è più truee il ciclo termina.

Le parentesi graffe ({}) che racchiudono le istruzioni che devono essere eseguite while dall'istruzione non sono necessarie se viene eseguita una sola istruzione.

Parametri
condition:Boolean — Espressione che restituisce true o false.

Esempio
Come utilizzare gli esempi
Nell'esempio seguente, l'istruzione while viene utilizzata per provare un'espressione. Quando il valore di i è inferiore a 20, il valore di i viene tracciato. Quando la condizione non è più true, il ciclo viene terminato.
var i:Number = 0; 
while (i < 20) { 
    trace(i); 
    i += 3; 
}
/* output:
0 
3 
6 
9 
12
15 
18
*/

Vedere anche

withistruzione 
Uso
with (object:Object) { 
	// statement(s)
}

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Definisce un oggetto predefinito da utilizzare per l'esecuzione di una o più istruzioni, con il possibile risultato di ridurre la quantità di codice da scrivere.

Il parametro object diventa il contesto in cui le proprietà, le variabili e le funzioni del parametro statement(s) vengono lette. Ad esempio, se object è my_arraye due delle proprietà specificate sono length e concat, queste proprietà vengono automaticamente lette come my_array.length e my_array.concat. In un altro esempio, se object è state.california, qualsiasi azione o istruzione interna all'istruzione with chiamata dall'interno dell'istanza california.

Per trovare il valore di un identificatore nel parametro statement(s), ActionScript lo cerca in tutti i livelli della catena, secondo un ordine prestabilito, partendo dall'inizio della catena delle aree di validità specificata da object.

La catena delle aree di validità utilizzata dall'istruzione with per trovare gli identificatori comincia con il primo elemento dell'elenco seguente e continua fino all'ultimo elemento:

Per impostare una variabile all'interno di un'istruzione with, è necessario aver dichiarato la variabile fuori dall'istruzione with, oppure immettere il percorso completo della linea temporale in cui la variabile dovrà risiedere. Se si imposta una variabile in un'istruzione with senza dichiararla, l'istruzione with cerca il valore in base alla catena delle aree di validità. Se la variabile non esiste già, il nuovo valore viene impostato sulla linea temporale da cui l'istruzione with era stata chiamata.

Parametri
object:Object — Un'istanza di un clip filmato o oggetto ActionScript.

Esempio
Come utilizzare gli esempi
L'esempio seguente imposta le proprietà _x e _y dell'istanza someOther_mc, quindi indica a someOther_mc di andare al fotogramma 3 e fermarsi.
with (someOther_mc) { 
    _x = 50; 
    _y = 100; 
    gotoAndStop(3); 
}
Il frammento di codice seguente mostra come scrivere il codice precedente senza ricorrere a un'istruzione with.
someOther_mc._x = 50; 
someOther_mc._y = 100; 
someOther_mc.gotoAndStop(3);

L'istruzione with è utile per accedere a più elementi contemporaneamente in un elenco delle catene delle aree di validità. Nell'esempio seguente, l'oggetto Math incorporato viene collocato all'inizio della catena delle aree di validità. L'impostazione di Math come oggetto predefinito risolve gli identificatori cos, sine PI rispettivamente a Math.cos, Math.sine Math.PI. Gli identificatori a, x, ye r non sono metodi o proprietà dell'oggetto Math, ma poiché sono presenti nell'area di attivazione della funzione polar(), risolvono alle variabili locali corrispondenti.

function polar(r:Number):void { 
    var a:Number, x:Number, y:Number; 
    with (Math) { 
        a = PI * pow(r, 2); 
        x = r * cos(PI); 
        y = r * sin(PI / 2); 
    } 
    trace("area = " + a); 
    trace("x = " + x); 
    trace("y = " + y); 
} polar(3);
/* output: 
area = 28.2743338823081 
x = -3 
y = 3
*/

 

Inviami un messaggio e-mail quando vengono aggiunti dei commenti a questa | Rapporto sui commenti

Pagina corrente: http://livedocs.adobe.com/flash/9.0_it/ActionScriptLangRefV3/statements.html