ActionScript

ActionScript

ActionScript to obiektowy język programowania, bazujący na ECMAScripcie, wykorzystywany w Adobe Flash do kontrolowania animacji oraz w Adobe Flex do tworzenia aplikacji typu Rich Internet Application.

Historia

Obecna składnia ActionScript zadebiutowała w Flashu 5, co umożliwiło pełne programowanie w tym środowisku. Ta wersja została oznaczona jako ActionScript 1.0. Flash 6 (MX) rozszerzył możliwości programistyczne, dodając szereg wbudowanych funkcji oraz poprawiając kontrolę nad klipami. Z kolei Flash 7 (MX 2004) wprowadził ActionScript 2.0, który wprowadził cechy obiektowe takie jak: typowanie sztywne, jawne deklaracje klas, dziedziczenie, interfejsy oraz ściśle typowane dane.

  • Flash Player 2: pierwsza wersja z obsługą skryptów (np. gotoAndPlay, gotoAndStop, nextFrame, nextScene).
  • Flash Player 3: rozszerzenie możliwości języka skryptowego o funkcję ładowania zewnętrznych plików SWF (loadMovie).
  • Flash Player 4: pierwszy Flash Player z pełną implementacją skryptów (nazywanych Actions), wspierający pętle, konstrukcje warunkowe oraz zmienne.
  • Flash Player 5: zawierał pierwszą wersję ActionScriptu, co pozwoliło na programowanie w paradygmacie proceduralnym i obiektowym.
  • Flash Player 6: dodał model sterowania zdarzeniami oraz konstrukcję switch.
  • Flash Player 7: wprowadza nowe funkcje takie jak CSS text oraz poprawę wydajności, przy zachowaniu możliwości kompilacji do ActionScript 1.0.
  • Flash Player 8: dalsze udoskonalenia ActionScript 2.0, w tym nowe biblioteki klas i możliwość ładowania plików.
  • Flash Player 9 (wstępnie nazwany 8.5): wprowadzenie ActionScript 3.0 z nową maszyną wirtualną AVM2, która zapewnia zgodność z wcześniejszymi wersjami oraz poprawia wydajność.

W ActionScript 2.0 dodano cechy obiektowe takie jak: deklaracje klas, dziedziczenie oraz hermetyzacja. Kod ActionScript jest zazwyczaj tworzony w środowisku programistycznym Flasha, które oferuje dynamiczną pomoc oraz podświetlanie składni. Kod jest zapisywany razem z animacją w pliku .fla. Możliwe jest również importowanie kodu z plików tekstowych za pomocą polecenia #include, a pliki te zazwyczaj mają rozszerzenie .as, chociaż nie jest to reguła.

W ActionScript 2.0 mogą istnieć klasy, które można powiązać z obiektami w bibliotece (klipami). Klasy muszą być zawsze zapisane w zewnętrznych plikach tekstowych z rozszerzeniem .as. Do momentu wydania Flash 8, kompilator był znany z powolności – kompilowanie 100 klas mogło zająć nawet kilka minut. Obecnie ten problem został rozwiązany.

Przykłady

Poniżej przedstawiamy przykład skryptu, który wyświetla tekst „Witaj świecie!” w oknie debugera:

Następny przykład przypisany do obiektu MovieClip w aplikacji Flash ustawia jego przezroczystość na 70% po załadowaniu i przesuwa jego położenie w osi x o 2 piksele w każdej klatce filmu. Oto kod w wersji ActionScript 2.0:

Ten sam kod dla obiektu MovieClip o nazwie movie_mc, napisany w ActionScript 3.0, wygląda tak:

To wynika z wysokiego poziomu obiektowości programowania w tym języku.

ActionScript 3.0

To najnowsza wersja języka programowania dla aplikacji Flash. Adobe skupiło się na szybkości i wydajności, maksymalizując możliwości nowej wersji tego języka. Wprowadzono nowe restrykcje dotyczące głównie deklaracji zmiennych oraz funkcji, a niemal wszystkie zdarzenia zostały przeniesione na tzw. obiekty nasłuchujące (EventListener), które w nowej wersji ActionScript są funkcjami, a nie obiektami.

Poniżej zwięzłe zestawienie podstawowych różnic między AS2.0 a AS3.0.

Dzięki takim deklaracjom kod jest znacznie bardziej wydajny, ponieważ FlashPlayer „wie”, czego się spodziewać po określonych obszarach pamięci. Zmiany dotyczą także odbierania zdarzeń. Oto porównanie:

Obie funkcje wykonują tę samą operację. Warto jednak zwrócić uwagę na precyzyjne określenie typu parametrów przyjmowanych przez funkcję w AS3.0 (jeden parametr event typu Event) oraz wartości, które zwraca (w tym przypadku void – funkcja nie zwraca nic, co sprawia, że FlashPlayer nie oczekuje na rezultat). Takie restrykcje znacząco przyspieszają działanie filmu. Nawet jeśli zmiany nie są widoczne przy pojedynczym kliknięciu przycisku na scenie, to przy wielokrotnym wywoływaniu funkcji w pętli różnicę można zauważyć.

Zobacz też

Linki zewnętrzne

Adobe Flash Support Center: Using ActionScript. [zarchiwizowane z tego adresu (2008-05-17)]. – Tutoriale i artykuły w Macromedia.

ActionScript references and documentation