Objetos e classes

No ActionScript 3.0, cada objeto é definido por uma classe. Uma classe pode ser entendida como um modelo ou uma cópia de um tipo de objeto. As definições de classe podem incluir variáveis e constantes, que mantêm valores de dados, e métodos, que são funções de encapsulamento de comportamento vinculadas à classe. Os valores armazenados em propriedades podem ser valores primitivos ou outros objetos. Os valores primitivos são números, seqüências de caracteres ou valores booleanos.

O ActionScript contém diversas classes embutidas que fazem parte da linguagem central. Algumas delas, como Number, Boolean e String, representam os valores primitivos disponíveis no ActionScript. Outras classes, como Array, Math e XML, definem objetos mais complexos.

Todas as classes, incorporadas ou definidas pelo usuário, derivam da classe Object. Para os programadores com experiência no ActionScript, é importante observar que o tipo de dados Object não é mais o tipo de dados padrão, muito embora todas as outras classes ainda derivem dessa. No ActionScript 2.0, as duas linhas de código a seguir eram equivalentes porque a falta de uma anotação de tipo significava que uma variável seria do tipo Object:

var someObj:Object; 
var someObj;

O ActionScript 3.0, porém, apresenta o conceito de variáveis sem tipo, que podem ser designadas destas duas formas:

var someObj:*; 
var someObj;

Uma variável sem tipo não é igual a uma variável do tipo Object. A principal diferença é que as variáveis sem tipo podem manter o valor especial undefined, enquanto que uma variável do tipo Object não pode.

Você pode definir suas próprias classes, usando a palavra-chave class. As propriedades de classe podem ser declaradas de três formas: as constantes podem ser definidas com a palavra-chave const, as variáveis são definidas com a palavra-chave var e as propriedades getter e setter são definidas usando os atributos get e set em uma declaração de método. Os métodos podem ser declarados com a palavra-chave function.

Uma ocorrência de uma classe é criada usando o operador new. O exemplo a seguir cria uma ocorrência da classe Date chamada myBirthday.

var myBirthday:Date = new Date();