Oggetti e classi

In ActionScript 3.0 ogni oggetto è definito da una classe. Una classe può essere considerata come un modello di base per un tipo di oggetto. Le definizioni di classe possono riguardare variabili e costanti, che memorizzano valori di dati, oppure metodi, ovvero funzioni che incorporano un comportamento associato alla classe. I valori memorizzati nelle proprietà possono essere valori di base (primitive values) o altri oggetti. I valori di base sono numeri, stringhe o valori booleani.

ActionScript contiene una serie di classi incorporate che fanno parte del linguaggio di base. Alcune di tali classi, quali Number, Boolean e String, rappresentano i valori di base disponibili in ActionScript. Altre, come ad esempio le classi Array, Math e XML, definiscono oggetti complessi.

Tutte le classi, incorporate o definite dall'utente, derivano dalla classe Object. Per i programmatori che hanno già utilizzato ActionScript in precedenza è importante notare che il tipo di dati Object non è più quello predefinito, anche se tutte le altre classi derivano ancora da esso. In ActionScript 2.0 le due righe di codice seguenti erano equivalenti perché l'assenza di un'annotazione di tipo comportava che una variabile fosse del tipo Object:

var someObj:Object; 
var someObj;

ActionScript 3.0 invece introduce il concetto di “variabili senza tipo”, che possono essere indicate nei due modi seguenti:

var someObj:*; 
var someObj;

Una variabile senza tipo non è la stessa cosa di una variabile del tipo Object. La differenza fondamentale consiste nel fatto che le variabili senza tipo possono contenere il valore speciale undefined, mentre una variabile del tipo Object non può.

Si possono definire classi personalizzate utilizzando la parola chiave class. Sono disponibili tre metodi per dichiarare le proprietà della classe: le constanti possono essere definite con la parola chiave const, le variabili vengono definite con la parola chiave var e le proprietà di acquisizione e impostazione sono definite utilizzando gli attributi get e set in una dichiarazione di metodo. I metodi vengono dichiarati con la parola chiave function.

Un'istanza di una classe viene creata utilizzando l'operatore new. Nell'esempio seguente viene creata un'istanza della classe Date denominata myBirthday.

var myBirthday:Date = new Date();