Podręcznik użytkownika Anuluj

Osie czasu a język ActionScript

 

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 na stronie internetowej.

Ś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 we wtyczce 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 we wtyczce 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 ilustruje, 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
_level5.georgia.atlanta
_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). Jeśli na przykład klipy filmowe southcarolina i florida ostały wczytane na tym samym poziomie, 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
_root.eastCoast.florida
_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 wtyczki Flash Player. Jeśli na przykład 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 wtyczki 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 wtyczki 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
_parent
_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
_parent._parent
_parent._parent

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

_parent._parent.georgia.atlanta
_parent._parent.georgia.atlanta
_parent._parent.georgia.atlanta

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

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

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

 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";
_root.form.name = "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, określana jest jako oś sterująca, a oś podlegająca tej operacji — oś docelowa. Na przykład z osią czasu ostatniej klatki animacji (osią sterującą) może zostać 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 ilustruje 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
_level0 westCoast california sanfrancisco bakersfield oregon portland ashland washington olympia ellensburg
_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 przez 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 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 odpowiednim 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 odpowiednim miejscu skryptu. 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();

Pomoc dostępna szybciej i łatwiej

Nowy użytkownik?