Obiekty i klasy

W języku ActionScript 3.0 każdy obiekt jest zdefiniowany przez klasę. Klasę można wyobrazić sobie jako szablon lub wzorzec typu obiektu. Definicja klasy może zawierać zmienne i stałe przechowujące wartości danych oraz metody będące funkcjami, które realizują zachowania powiązane z klasą. Wartości przechowywane we właściwościach mogą być wartościami pierwotnymi lub innymi obiektami. Wartości pierwotne to liczby, ciągi znaków lub wartości typu Boolean.

Język ActionScript obejmuje szereg wbudowanych klas stanowiących część języka podstawowego. Niektóre z tych wbudowanych klas, takie jak Number, Boolean i String, odzwierciedlają wartości pierwotne dostępne w języku ActionScript. Inne klasy, takie jak Array, Math i XML, definiują bardziej złożone obiekty.

Wszystkie klasy, zarówno wbudowane, jak i zdefiniowane przez użytkownika, dziedziczą z klasy Object. Programiści znający poprzednie wersje języka ActionScript powinni zwrócić uwagę, że typ danych Object nie jest już domyślnym typem danych, mimo że dziedziczą z niego wszystkie pozostałe klasy. W języku ActionScript 2.0 poniższe dwa wiersze kodu były równoważne, ponieważ brak wskazania typu oznaczał, że zmienna jest typu Object:

var someObj:Object; 
var someObj;

Jednak w języku ActionScript 3.0 wprowadzono koncepcję zmiennych bez typu, które można definiować na dwa sposoby:

var someObj:*; 
var someObj;

Zmienna bez typu nie jest tożsama ze zmienną typu Object. Najważniejsza różnica polega na tym, że zmienne bez typu mogą przyjmować specjalną wartość undefined , natomiast zmienne typu Object nie mogą przyjmować tej wartości.

Programista może definiować własne klasy za pomocą słowa kluczowego class . Właściwości klasy można deklarować na trzy sposoby: stałe definiuje się za pomocą słowa kluczowego const , zmienne definiuje się za pomocą słowa kluczowego var , a właściwości pobierające/ustawiające definiuje się za pomocą odpowiednich atrybutów get i set w deklaracji metody. Do deklarowania metod służy słowo kluczowe function .

Instancję klasy tworzy się, korzystając z operatora new . Poniższy przykład ilustruje tworzenie instancji klasy Date o nazwie myBirthday .

var myBirthday:Date = new Date();