Za pomocą kodu ActionScript® można kontrolować oś czasu w środowisku wykonawczym. Pisząc skrypt w języku ActionScript, można w pliku FLA tworzyć zachowania interakcyjne oraz realizować inne funkcje niedostępne, gdy używana jest wyłącznie oś czasu.

Za pomocą kodu ActionScript® można kontrolować oś czasu w środowisku wykonawczym. Pisząc skrypt w języku ActionScript, można w pliku FLA tworzyć zachowania interakcyjne oraz realizować inne funkcje niedostępne, gdy używana jest wyłącznie oś czasu.

Aby uzyskać informacje o sterowaniu osią czasu za pomocą kodu ActionScript, należy zapoznać się z omówieniem osi czasu i języka ActionScript w Pomocy dostępnej w sieci Web.

Ścieżki bezwzględne

Ścieżka bezwzględna zaczyna się od nazwy poziomu, na którym wczytano dokument, a po tej nazwie następują kolejne pozycje z listy wyświetlania. Za pomocą aliasu _root można odnieść się do głównej osi czasu na bieżącym poziomie. Na przykład, operacja zdefiniowana w klipie filmowym california, odnosząca się do klipu oregon, mogłaby zostać opisana ścieżką bezwzględną _root.westCoast.oregon.

Pierwszy z dokumentów, które będą otwierane w programie Flash Player, jest wczytywany na poziomie 0. Z każdym kolejnym wczytywanym dokumentem należy skojarzyć odpowiedni numer poziomu. W kodzie ActionScript wszelkie odwołania bezwzględne do wczytanych dokumentów muszą mieć formę _levelX, gdzie X oznacza numer poziomu, na którym wczytano dany dokument. Na przykład pierwszy z dokumentów otwieranych w programie Flash Player jest oznaczany jako _level0; dokument wczytany na poziomie 3 jest oznaczany jako _level3.

Aby zapewnić komunikację między dokumentami na różnych poziomach, w ścieżkach docelowych należy używać nazw poziomów. Następujący przykład pokazuje, jak obiekt portland odwołuje się do obiektu atlanta zlokalizowanego w klipie filmowym georgia (klip georgia znajduje się na tym samym poziomie co klip oregon):

_level5.georgia.atlanta

Za pomocą aliasu _root można odnieść się do głównej osi czasu na bieżącym poziomie. W przypadku głównej osi czasu alias _root oznacza poziom _level0 (gdy odwołuje się do niego klip filmowy z poziomu _level0). W przypadku dokumentu wczytanego na poziomie _level5 alias _root odnosi się do poziomu _level5 (gdy odwołuje się do niego klip filmowy z poziomu level 5). Na przykład, jeśli klipy filmowe southcarolina i florida ostały wczytane na tym samym poziomie, to operacja wywoływana przez obiekt southcarolina mogłaby odwoływać się do obiektu florida za pomocą następującej ścieżki bezwzględnej:

_root.eastCoast.florida

Ścieżki względne

Kształt ścieżki względnej zależy od relacji między źródłową i docelową osią czasu. Ścieżki względne mogą łączyć obiekty znajdujące się na tym samym poziomie programu Flash Player. Na przykład, jeśli pewna operacja jest realizowana na poziomie _level0, a ma odnosić się do osi czasu na poziomie _level5, nie można użyć ścieżki względnej.

W przypadku ścieżek względnych słowo kluczowe this odnosi się do bieżącej osi czasu na bieżącym poziomie, a alias _parent oznacza nadrzędną oś czasu osi bieżącej. Alias _parent może być stosowany wielokrotnie, co pozwala przywoływać kolejne poziomy hierarchii klipu w ramach tego samego poziomu programu Flash Player. Na przykład fraza _parent._parent pozwala przesunąć się o dwa poziomy w górę hierarchii klipu. Jedynie w przypadku głównej, czyli najbardziej nadrzędnej, osi czasu na danym poziomie programu Flash Player znaczenie frazy _parent jest niezdefiniowane.

Operacja na osi czasu obiektu charleston, zdefiniowana o jeden poziom poniżej obiektu southcarolina, mogłaby odwoływać się do obiektu southcarolina za pomocą następującej ścieżki docelowej:

_parent

Aby odwołać się do obiektu eastCoast (o jeden poziom w górę) z poziomu operacji charleston, można by użyć następującej ścieżki względnej:

_parent._parent

Aby odwołać się do obiektu atlanta z poziomu operacji na osi czasu obiektu charleston, można by użyć następującej ścieżki względnej:

_parent._parent.georgia.atlanta

Ścieżki względne umożliwiają wielokrotne uaktywnianie skryptów. Na przykład, z klipem filmowym można skojarzyć następujący skrypt powiększający obiekt nadrzędny klipu o 150%:

onClipEvent (load) {    _parent._xscale 
= 150;    _parent._yscale = 150; 
}

Ten sam skrypt można skojarzyć z dowolnymi instancjami klipu (dzięki czemu będzie on uaktywniany wielokrotnie).

Uwaga:

W programach Flash Lite 1.0 i 1.1 skrypty mogą być przypisywane tylko do przycisków. Łączenie skryptów z klipami filmowymi nie jest obsługiwane.

Niezależnie od typu ścieżki, względnej lub bezwzględnej, każda zmienna na osi czasu lub właściwość obiektu jest identyfikowana za pomocą kropki (.), po której następuje nazwa zmiennej lub właściwości. Na przykład, następująca instrukcja powoduje przypisanie zmiennej name w obiekcie form wartości "Gilbert":

_root.form.name = "Gilbert";

Korzystanie z bezwzględnych i względnych ścieżek docelowych

Komunikację między różnymi osiami czasu można kontrolować za pomocą kodu ActionScript. Oś czasu, która zawiera kod pewnej operacji, nazywa się osią sterującą, a oś podlegająca tej operacji osią docelową. Na przykład, z osią czasu ostatniej klatki animacji (osią sterującą) może być skojarzona operacja, która powoduje odtwarzanie obiektu z inną osią czasu (osią docelową). Dostęp do docelowej osi czasu zapewnia ścieżka docelowa, która wskazuje położenie odpowiedniego klipu na liście wyświetlania.

Poniższy przykład pokazuje hierarchię dokumentu westCoast na poziomie 0, który zawiera trzy klipy filmowe: california, oregon i washington. Każdy z tych trzech klipów zawiera z kolei dwa inne klipy.

_level0 
        westCoast 
                california 
                        sanfrancisco 
                        bakersfield 
                oregon 
                        portland 
                        ashland 
                washington 
                        olympia 
                        ellensburg

Podobnie jak ma to miejsce w przypadku serwerów internetowych, każda oś czasu programu Animate może być identyfikowana na dwa sposoby: za pomocą ścieżki bezwzględnej lub względnej. Bezwzględna ścieżka obiektu jest zawsze ścieżką pełną, zaczynającą się od nazwy poziomu — niezależnie od osi czasu, która wywołuje daną operację. Na przykład: ścieżka bezwzględna obiektu california to _level0.westCoast.california. Ścieżki względne wyglądają różnie w przypadku różnych obiektów wywołujących; na przykład ścieżka do obiektu california od obiektu sanfrancisco to _parent, ale ścieżka od obiektu portland to _parent._parent.california.

Określanie ścieżek docelowych

Aby sterować klipem filmowym, wczytanym plikiem SWF lub przyciskiem, należy określić ścieżkę docelową. Można ją określić ręcznie, za pomocą okna dialogowego Wstaw ścieżkę docelową lub poprzez utworzenie wyrażenia definiującego ścieżkę docelową. Aby określić ścieżkę docelową klipu filmowego lub przycisku, należy przypisać do niego nazwę obiektu. Wczytany dokument nie wymaga określenia ścieżki docelowej, ponieważ funkcję nazwy pełni tu numer poziomu (np. _level5).

Przypisywanie do klipu filmowego lub przycisku nazwy obiektu

  1. Zaznacz klip filmowy lub przycisk na stole montażowym.
  2. Wprowadź nazwę obiektu w oknie Inspektora właściwości.

Określanie ścieżki docelowej za pomocą okna dialogowego Wstaw ścieżkę docelową

  1. Zaznacz klip filmowy, klatkę lub przycisk, z którym chcesz skojarzyć operację.

    Oś zaznaczonego obiektu stanie się sterującą osią czasu.

  2. Przejdź do panelu Operacje (Okno > Operacje), przejdź do przybornika Operacje po lewej stronie, po czym wybierz operację lub metodę, która wymaga określenia ścieżki docelowej.
  3. Kliknij pole parametru lub miejsce wewnątrz skryptu, gdzie zostanie wstawiona ścieżka docelowa.
  4. Kliknij przycisk Wstaw ścieżkę docelową  nad okienkiem Skrypt.
  5. Wybierz typ ścieżki docelowej: bezwzględna lub względna.
  6. Zaznacz klip filmowy na liście wyświetlania Wstaw ścieżkę docelową i kliknij przycisk OK.

Ręczne określanie ścieżki docelowej

  1. Zaznacz klip filmowy, klatkę lub przycisk, z którym chcesz skojarzyć operację.

    Oś zaznaczonego obiektu stanie się sterującą osią czasu.

  2. Przejdź do panelu Operacje (Okno > Operacje), przejdź do przybornika Operacje po lewej stronie, po czym wybierz operację lub metodę, która wymaga określenia ścieżki docelowej.
  3. Kliknij pole parametru lub miejsce wewnątrz skryptu, gdzie zostanie wstawiona ścieżka docelowa.
  4. W panelu Operacje wpisz bezwzględną lub względną ścieżkę docelową.

Określanie ścieżki docelowej za pomocą wyrażenia

  1. Zaznacz klip filmowy, klatkę lub przycisk, z którym chcesz skojarzyć operację.

    Oś zaznaczonego obiektu stanie się sterującą osią czasu.

  2. Przejdź do panelu Operacje (Okno > Operacje), przejdź do przybornika Operacje po lewej stronie, po czym wybierz operację lub metodę, która wymaga określenia ścieżki docelowej.
  3. Wykonaj jedną z następujących czynności:
    • W polu parametru wprowadź wyrażenie, za pomocą którego będzie wyznaczana ścieżka docelowa.

    • Kliknij w wybranym miejscu skryptu. W przyborniku Operacje przejdź do kategorii Funkcje i kliknij dwukrotnie funkcję targetPath. Funkcja targetPath konwertuje odniesienie do klipu filmowego na ciąg znaków.

    • Kliknij w miejscu skryptu, gdzie ma zostać wstawiony element. W przyborniku Operacje przejdź do kategorii Funkcje i zaznacz funkcję eval. Funkcja eval konwertuje ciąg znaków na odniesienie do klipu filmowego — odniesienie pozwalające wywoływać różne metody, np. play.

      Poniższy skrypt zaczyna się od instrukcji przypisania zmiennej i wartości 1. Kolejna instrukcja zawiera wywołanie funkcji eval, która generuje odniesienie do obiektu typu klip filmowy. Odniesienie to jest przypisywane zmiennej x. Dzięki temu zmienna x pozwala wywoływać metody obiektu MovieClip.

      i = 1; x = eval("mc"+i); x.play(); // odpowiednik wywołania mc1.play();

      Funkcja eval umożliwia również bezpośrednie wywoływanie metod, co pokazuje kolejny przykład:

      eval("mc" + i).play();

Ta zawartość jest licencjonowana na warunkach licencji Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License  Posty z serwisów Twitter™ i Facebook nie są objęte licencją Creative Commons.

Informacje prawne   |   Zasady prywatności online