Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Movie Clip Łukasz Kulasza Mariusz Młynek. Movie Clip w java Script 2.0.

Podobne prezentacje


Prezentacja na temat: "Movie Clip Łukasz Kulasza Mariusz Młynek. Movie Clip w java Script 2.0."— Zapis prezentacji:

1 Movie Clip Łukasz Kulasza Mariusz Młynek

2 Movie Clip w java Script 2.0

3 Movie Clip - Opis Jest to najczesciej uywana klasa. Wszystkie obiekty typu Grupa lub Sprite sa zdefiniowane jako obiekty MovieClip. Główny film zdefiniowany jest jako obiekt o nazwie _root.

4 Omówienie funkcji MovieClip._alpha : Number Krycie obiektu od 0 do 100 % MovieClip._currentframe : Number Numer aktualnej ramki podczas odtwarzania MovieClip._droptarget : String Nazwa innego Sprita na który ten Sprite został przeciagniety i upuszczony MovieClip.enabled : Boolean Wartosc true jeżeli Sprite może odbierać zdarzenia myszy, w przeciwnym wypadku Sprite jest zablokowany

5 Omówienie funkcji MovieClip._droptarget : String Nazwa innego Sprita na który ten Sprite został przeciagniety i upuszczony MovieClip.enabled : Boolean Wartosc true jeżeli Sprite może odbierać zdarzenia myszy, w przeciwnym wypadku Sprite jest zablokowany MovieClip.focusEnabled : Boolean Wartosc true jeżeli Sprite może odbierac zdarzenia klawiszy, w przeciwnym wypadku Sprite jest zablokowany MovieClip._focusrect : Boolean Jeżeli true Sprite posiada prostokat naokoło oznaczajacy że przyjmuje zdarzenia klawiatury

6 Omówienie funkcji MovieClip.focusEnabled : Boolean Wartosc true jeżeli Sprite może odbierac zdarzenia klawiszy, w przeciwnym wypadku Sprite jest zablokowany MovieClip._focusrect : Boolean Jeżeli true Sprite posiada prostokat naokoło oznaczajacy że przyjmuje zdarzenia klawiatury MovieClip._framesloaded : Number Ilosc ramek Sprita dotychczas pobranych z internetu jeeli jest ładowany z pliku zewnetrznego MovieClip._height : Number Wysokosc Sprita w pikselach

7 Omówienie funkcji MovieClip.hitArea : MovieClip Wskaznik do innego Sprita jeeli Sprite ma inny obiekt słuacy jako pole aktywne przycisku MovieClip._lockroot : Boolean W przypadku gdy podfilm jest ładowany z pliku zewnetrznego _lockroot = true sprawia e odniesienia z podfilmu do obiektu _root odnosza sie do obiektu podfilmu a nie do filmu głównego który ładuje podfilm.

8 Omówienie funkcji MovieClip.hitArea : MovieClip Wskaznik do innego Sprita jeeli Sprite ma inny obiekt słuacy jako pole aktywne przycisku MovieClip._lockroot : Boolean W przypadku gdy podfilm jest ładowany z pliku zewnetrznego _lockroot = true sprawia e odniesienia z podfilmu do obiektu _root odnosza sie do obiektu podfilmu a nie do filmu głównego który ładuje podfilm.

9 Omówienie funkcji MovieClip.menu : ContextMenu Obiekt menu kontekstowego (pod prawym klawiszem myszy) przypisanego do danego Sprite. Plik musi byc wyeksportowany dla Flash Player 8 lub wyszej.

10 Omówienie funkcji MovieClip.menu – przykład W tym przykładzie dodamy element menu dla głównego filmu function goOnTheWeb() { getURL("http://www.selteco.com", "_blank"); } mymenu = new ContextMenu(); mymenu.customItems.push(new ContextMenuItem("www.selteco.com",goOnTheWeb)); _root.menu = mymenu;

11 Omówienie funkcji MovieClip._name : String Nazwa instancji Sprite Edit1 = Sprite1._name; MovieClip._parent : MovieClip Wskaznik do Sprita rodzica który zawiera tego sprite

12 Omówienie funkcji MovieClip._quality : String Jakosc filmu: "LOW" Niska jakosc, szybkie wyswietlanie "MEDIUM" Srednia jakosc, bitmapy i tekst nie sa optymalizowane "HIGH" Domyslna jakosc "BEST" Najwysza jakosc, bitmapy sa optymalizowane.

13 Omówienie funkcji MovieClip._rotation : Number Kat obrotu Sprite MovieClip._soundbuftime : Number Opóznienie w sekundach zanim buforowany dzwiek zacznie byc odtwarzany MovieClip.tabEnabled : Boolean True jeżeli Sprite jest w łancuch przełaczania pomiedzy elementami klawiszem Tab

14 Omówienie funkcji MovieClip.tabChildren : Boolean True jeeli dzieci Sprita maja take byc właczone do cyklu przełaczana klawiszem Tab MovieClip.tabIndex : Number Numer pozycji przełaczania klawiszem Tab

15 Omówienie funkcji MovieClip._target : String Scieka absolutna do Sprita Edit1 = Sprite1._target; MovieClip._totalframes : Number Całkowita ilosc ramek Sprite MovieClip.trackAsMenu : Boolean Jeżeli true dany Sprite przejmuje wszystkie zdarzenia zwolnienia klawisza myszy nawet spoza obszaru sprita MovieClip._url : String Adres internetowy z którego Sprite został załadowany MovieClip.useHandCursor : Boolean Jeżeli false Sprite bedzie miał kursor strzałki zamiast kursora linku o ile jest dla niego zdefiniowana akcjamyszy Sprite1.useHandCursor = false;

16 Omówienie funkcji MovieClip._visible : Boolean Okresla czy Sprite jest widoczny czy nie Pokazanie sprite: Sprite1._visible = true; Ukrycie sprite: Sprite1._visible = false; MovieClip._width : Number (szerokość) MovieClip._height : Number (wysokość) Szerokosc i wysokosc Sprite w pikselach MovieClip._x : Number MovieClip._y : Number Pozycja Sprite wewnatrz rodzica

17 Omówienie funkcji MovieClip._xmouse : Number MovieClip._ymouse : Number Pozycja kursora myszy function readmouse() { Edit1 = _root._xmouse + ", " + _root._ymouse; } setInterval(readmouse,10); MovieClip._xscale : Number MovieClip._yscale : Number Skala x i y Sprite w procentach, domyslnie 100

18 Omówienie funkcji MovieClip.createEmptyMovieClip(instanceName:String, depth:Number) : MovieClip Tworzy nowy i pusty obiekt Sprite o nazwie instanceName i na głebokosci depth, wiekszy depth chowa obiekt pod innymi obiektami MovieClip.createTextField(instanceName:String, depth:Number, x:Number, y:Number, width:Number, height:Number) Tworzy puste pole tekstowe o nazwie instanceName, na głebokosci depth i o podanych wymiarach. Wymiary podane sa w pikselach. _root.CreateTextField("EditField1",10,20,20,500,40); EditField1.text = "Moje pole tekstowe";

19 Omówienie funkcji MovieClip.duplicateMovieClip(newname:String, depth:Number) : MovieClip Powiela Sprite i umieszcza go na nowej głebokosci Sprite1.duplicateMovieClip("Sprite2",100); Sprite2._x = Sprite1._x + 10; Sprite2._y = Sprite1._y + 10; MovieClip.getBounds(targetCoordinateSpace:Sprite) : Object Zwraca prostokat zawierajacy elementy widoczne wewnatrz Sprite wzgledem obiektu targetCoordinateSpace, lub wzgledem siebie jeeli parametr nie jest podany rect = Sprite1.getBounds(); Edit1 = rect.yMin + ", " + rect.yMax + ", " + rect.xMin + ", " + rect.xMax;

20 Omówienie funkcji MovieClip.getBytesLoaded() : Number Zwraca ilosc bajtów załadowanych jeeli plik pobierany jest z internetu MovieClip.getBytesTotal(): Number Zwraca całkowita ilosc bajtów Sprite MovieClip.getDepth(): Number Zwraca głebokosc Sprite MovieClip.getInstanceAtDepth(depth:Number) : MovieClip Zwraca wskaznik do sprita na danej głebokosci MovieClip.getNextHighestDepth() : Number Zwraca wolna głebokosc na której mona umiescic nowy Sprite. Na kadej głebokosci moe byc tylko jeden obiekt.

21 Omówienie funkcji MovieClip.getSWFVersion(): Number Zwraca numer wersji dla której dany sprite został przeznaczony jeeli został załadowany z pliku zewnetrznego MovieClip.getTextSnapshot() : String Tworzy ciag znaków z zawartosci pól tekstowych w Spricie MovieClip.getURL(URL:String [,window:String, method:String]) Otwiera dany link URL: adres internetowy np window: _blank otwiera nowe okno przegladarki, _self otwiera link w dotychczasowym oknie method: ciag POST lub GET jeeli link zawiera parametry za znakiem ?, domyslna wartoscia jest GET MovieClip.globalToLocal(point:Object) Zamienia współrzedne punktu (x i y) globalnego na współrzedne wewnatrz Sprite

22 Omówienie funkcji MovieClip.gotoAndPlay(framename:String) Skacze do danej ramki o nazwie np "Frame 2" i rozpoczyna odtwarzanie MovieClip.gotoAndStop(framename:String) Skacze do danej ramki o nazwie np "Frame 2" i zatrzymuje film MovieClip.hitTest(target:Object) Zwraca true jeeli Sprite pokrywa sie (dotyka) Sprite podanego jako parametr target MovieClip.hitTest(x:Number, y:Number, shapeFlag:Boolean) Zwraca true jeeli punkt x,y (dotyka) Sprite, parametr shapeFlag okresla czy do obliczen przyjac elementy widoczne sprite czy cały prostokat MovieClip.loadMovie(url:String) Ładuje plik SWF, FLV lub JPG

23 Omówienie funkcji MovieClip.loadVariables(url:String) Ładuje zmienne z pliku tekstowego, plik tekstowy musi zawierac zmienne w takiej postaci jak adresy URL Przykład pliku.txt var1="hello"&var2="goodbye MovieClip.localToGlobal(point:Object) Zamienia współrzedne punktu (x i y) wewnatrz Sprite na współrzedne globalne MovieClip.nextFrame() Skacze do nastepnej ramki MovieClip.play() Rozpoczyna odtwarzanie filmu MovieClip.prevFrame() Skacze do poprzedniej rami

24 Omówienie funkcji MovieClip.setMask(target:Sprite) Ustala Sprite jako maske dla innego Sprite MovieClip.startDrag() Rozpoczyna przesuwanie Sprite za pomoca myszy MovieClip.startDrag([lock:Boolean, [left:Number, top:Number, right:Number, bottom:Number]]) Rozpoczyna przesuwanie Sprite za pomoca myszy ograniczajac dostepny obszar za pomoca liczb left, top, right i bottom. Parametr lock sprawia e srodek Sprita pokrywa sie ze srodkiem kursora myszy MovieClip.stop() Zatrzymuje odtwarzanie Sprite MovieClip.stopDrag() Konczy przesuwanie Sprite za pomoca myszy

25 Omówienie funkcji MovieClip.removeMovieClip() Usuwa Sprita utworzonego wczesniej komenda MovieClip.duplicateMovieClip() MovieClip.swapDepths(depth:Number) MovieClip.swapDepths(target:String) Zamienia 2 Sprite głebokosciami na danej głebokosci lub o danej nazwie MovieClip.unloadMovie() Usuwa z pamieci sprite załadowany dynamicznie z pliku zewnetrznego

26 Rysowanie w Spritach MovieClip.beginFill(rgb:Number) MovieClip.beginFill(rgb:Number, alpha:Number) Okresla kolor wypełnienia za pomoca kodu heksadecymalnego lub także krycia alpha MovieClip.beginGradientFill(fillType:String, colors:Array, alphas:Array, ratios:Array, matrix:Object) Okresla wypełnienie przejsciem tonalnym pomiedzy różnymi kolorami fillType: "linear" lub "radial" colors: tablica kolorów, maks 8 elementów alphas: tablica kryc (od 0 przezroczysty do 255 całkowicie kryjacy), maks 8 elementów ratios: tablica pozycji kolorów przejscia tonalnego, wartosci od 0 do 255, maks 8 elementów

27 Rysowanie w Spritach MovieClip.beginFill(rgb:Number) MovieClip.clear() Czysci to co zostało narysowane za pomoca komend rysujacych MovieClip.curveTo(cx:Number, cx:Number, x:Number, y:Number) Rysuje krzywa Beziera do pukntu x,y i punkcie kontrolnym cx i cy MovieClip.endFill() Zamyka rozpoczete linie i wypełnia krzywa kolorem okreslonym komendami MovieClip.beginFill() lub MovieClip.beginGradientFill(). MovieClip.lineStyle(thickness:Number, rgb:Number, alpha:Number) Ustala nowy styl linii o grubosci thickness, kolorze rgb i przezroczystosci alpha MovieClip.lineTo(x:Number, y:Number) Rysuje linie prosta do punktu x, y MovieClip.moveTo() Ustala nowa pozyce startowa do rysowania

28 Obsługa Zdarzeń Sprita Poniższe zdarzenia mona przypisac do zdefiniowanych wczesniej funkcji. MovieClip.onData : Function Wywoływane w casie poberania danych MovieClip.onDragOut : Function Wywoływane gdy użytkownik wcisnie przycisk myszy wewnatrz sprite i przesunie mysz poza obszar MovieClip.onDragOver : Function Wywoływane gdy użytkownik wcisnie przycisk myszy na zewnatrz sprite i przesunie mysz na jego obszar MovieClip.onEnterFrame : Function Wywoływane przed wyswietleniem każdej ramki fizycznej

29 Obsługa Zdarzeń Sprita MovieClip.onKeyDown : Function Wywoływane po nacisnieciu klawisza Uzyj funkcji Key.getCode() i Key.getAscii() aby uzyskac kod klawisza MovieClip.onKeyUp : Function Wywoływane po zwolnieniu klawisza MovieClip.onKillFocus : Function Wywoływane gdy Sprite straci moliwasc przyjmowania zdarzen klawiatury MovieClip.onLoad : Function Wywoływane zanim Sprite pojawi sie piewszy raz w filmie MovieClip.onMouseDown : Function Wywoływane po nacisnieciu lewego przycisku myszy MovieClip.onMouseMove : Function Wywoływane przy ruchu myszy MovieClip.onMouseUp : Function Wywoływane po zwolnieniu przycisku myszy MovieClip.onPress : Function Wywoływane po nacisnieciu lewego przycisku myszy

30 Obsługa Zdarzeń Sprita MovieClip.onRelease : Function Wywoływane po zwolnieniu przycisku myszy MovieClip.onReleaseOutside : Function Wywoływane gdy uytkownik wcisnie przycisk myszy wewnatrz sprite, przesunie mysz poza obszar i zwolni przycisk myszy MovieClip.onRollOut : Function Wywoływane gdy wskaznik myszy opusci obszar sprite MovieClip.onRollOver : Function Wywoływane gdy wskaznik myszy wejdzie w obszar sprite MovieClip.onSetFocus : Function Wywoływane gdy sprite przejmie zdarzenia klawiatury MovieClip.onUnload : Function Wywoływane gdy sprite jest usuniety z filmu

31 Obsługa Zdarzeń Sprita Przykład: Naryjsuj pole Edit1 i Sprite2, w sprite wstaw kólko: wklej poniszy kod w ActionScript ramki: Sprite2.onPress = function () { Edit1 = "onPress"; } Sprite2.onRelease = function () { Edit1 = "onRelease"; } Sprite2.onRollOut = function () { Edit1 = "onRollOut"; } Sprite2.onRollOver = function () { Edit1 = "onRollOver"; }

32 MovieClipLoader Klasa ta słuy do obsługi Spritów (plików SWF lub JPEG) ładowanych z zewnetrznego pliku jeżeli niezbedna jest wieksza kontrola nad procesem ładowania pliku ni w funkcji MovieClip.loadMovie() W tym przypadku naley uyc funkcji MovieClipLoader.loadClip zamiast funkcji MovieClip.loadMovie. Klasa jest dostepna w przypadku eksportu pliku SWF w wersji Flash Player 8 lub wyszej. Wersje eksportu naley ustalic w projekcie komenda Film > Czestotliwosc Ramki.

33 MovieClipLoader new MovieClipLoader() Tworzy nowy obiekt tej klasy MovieClipLoader.loadClip(url:String, target:MovieClip ) : Boolean Rozpoczyna pobieranie pliku url (w formacie SWF lub JPEG) celem umieszczenia go w obiekcie target MovieClipLoader.getProgress(target:MovieClip) : Object Zwraca obiekt zawierajacy ilosc pobranych bajtów oraz ilosc całkowita bajtów w pobieranym pliku. Zwrócony obiekt ma nastepujace atrybuty: bytesLoaded : Number Ilosc bajtów pobranych bytesTotal : Number Całkowita ilosc bajtów w pliku MovieClipLoader.unloadClip(target:MovieClip) Usuwa plik z pluginu i zwalnia pamiec

34 MovieClipLoader Zaawansowana obsługa zdarzen Dodaje listener do obsługi zdarzen new Object() Tworzy nowy obiekt który może byc użyty jako listener do obsługi zdarzen zwiazanych z ładowaniem filmu Przykład, ustaw Flash Player 8 lub wyższy w Film > Czestotliwosc Ramki, narysuj pole Edit1 oraz obiekt Sprite2, wklej kod ramki. W polu Edit1 pojawi sie komunikat błedu: loader = new MovieClipLoader(); listener = new Object(); listener.onLoadError = function(target, errorCode) { Edit1 = "Error loading file: " + errorCode; } loader.addListener(listener); loader.loadClip("http://www.non-existent- domain.com/error_file.jpeg",Sprite2); MovieClipLoader.removeListener(listenerObject:Object) Usuwa poprzednio dodany listener

35 MovieClipLoader Zdarzenia obiektu listener Kolejnosc wywoływania zdarzen w obiekcie MovieClipListener jest nastepujaca: MovieClipListener.onLoadStart : function( [target:MovieClip] ) W momencie nawiazania połaczenia i rozpoczecia przesyłu danych, opcjonalny parametr target wskazuje na Sprite użyty w funkcji loadClip. MovieClipListener.onLoadProgress : function (target: MovieClip, loadedBytes:Number,totalBytes:Number) W czasie przesyłu danych MovieClipListener.onLoadComplete : function( [target:MovieClip] ) Po zakonczeniu przesyłu MovieClipListener.onLoadInit : function( [target:MovieClip] ) 1Po inicjalizacji obiektu Sprite ale przed jego wyswietleniem

36 MovieClipLoader Zdarzenia obiektu listener MovieClipListener.onLoadError : function(target:MovieClip, errorCode:String) W momencie wystapienia błedu ładowania ErrorCode ma nastepujace wartosci "URLNotFound" – nie mona nawiazac połaczenia, w tym przypadku onLoadError jest wywoływane zamiast onLoadStart "LoadNeverCompleted" – pobieranie nie zakonczyło sie pomyslnie, w tym przypadku onLoadEror jest wywoływane zamiast onLoadComplete Przykład wyswietlania postepu przy pobieraniu duego pliku JPEG. Narysuj pole Edit1 oraz obiekt Sprite2, wklej kod ramki, ustaw Flash Player 8 lub wyższy w Film > Czestotliwosc Ramki.

37 MovieClipLoader Zdarzenia obiektu listener loader = new MovieClipLoader(); listener = new Object(); listener.onLoadStart = function() { Edit1 = "Connected"; } listener.onLoadProgress = function(target, bytesLoaded, bytesTotal) { Edit1 = "Loading: " + Math.round(bytesLoaded * 100 / bytesTotal) + "%"; } listener.onLoadComplete = function() { Edit1 = "Done!"; } loader.addListener(listener); loader.loadClip("http://www.selteco.com/flashdesigner/largebox.jpg",Sprite2 );

38 Movie Clip w ActionScript 3.0

39 ActionScript 3 Przeciąganie zasobów z biblioteki na stół montażowy w programie Flash to jeden, ale nie jedyny sposób dodawania treści. W przypadku złożonych projektów doświadczeniu programiści zwykle preferują programowe tworzenie klipów filmowych. Taka strategia ma szereg zalet: łatwiejsze ponowne wykorzystanie kodu, szybsza kompilacja i dostępność bardziej wyrafinowanych modyfikacji, możliwych do zrealizowania tylko w kodzie ActionScript. Interfejs API listy wyświetlania w języku ActionScript 3.0 usprawnia proces dynamicznego tworzenia obiektów MovieClip. Możliwość bezpośredniego utworzenia instancji klasy MovieClip, niezależnie od dodawania jej do listy wyświetlania, zapewnia elastyczność i swobodę, a jednocześnie prostotę programu.

40 ActionScript 3 W języku ActionScript 3.0 instancja klipu filmowego (i każdego innego obiektu wyświetlanego) nie jest widoczna na ekranie, dopóki nie zostanie dodana do listy wyświetlania poprzez wywołanie metody addChild() lub addChildAt() w kontenerze obiektu wyświetlanego. Umożliwia to utworzenie klipu filmowego, ustawienie jego właściwości, a nawet wywoływanie metod zanim zostanie wyświetlony na ekranie. Jeśli obiekt DisplayObjectContainer zostanie usunięty z listy wyświetlania lub gdy zostanie przeniesiony albo przekształcony w inny sposób, każdy obiekt kontenera DisplayObjectContainer również zostaje usunięty, przeniesiony lub przekształcony.

41 ActionScript 3 Kontener obiektów wyświetlanych jest typem obiektu wyświetlanego może zostać dodany do innego kontenera obiektów wyświetlanych. Na przykład: poniższy obraz przedstawia kontener obiektów wyświetlanych pictureScreen, który zawiera jeden kształt konturu oraz cztery inne kontenery obiektów wyświetlanych (typu PictureFrame): A. Kształt definiujący krawędź kontenera obiektów wyświetlanych pictureScreen B. Cztery kontenery obiektów wyświetlanych, które są elementami podrzędnymi obiektu pictureScreen

42 ActionScript 3 Aby obiekt wyświetlany pojawił się na liści wyświetlani, należy dodać obiekt do kontenera obiektów wyświetlanych, który znajduje się na liście. W tym celu należy użyć metody addChild() lub metody addChildAt() obiektu kontenera. Przykład: bez linii końcowej poniższego kodu obiekt myTextField nie zostałby wyświetlony: var myTextField:TextField = new TextField(); myTextField.text = "hello"; this.root.addChild(myTextField); W tym przykładowym kodzie this.root wskazuje kontener obiektów wyświetlanych MovieClip, który zawiera kod. W rzeczywistym kodzie możliwe jest określenie innego kontenera.

43 ActionScript 3 W celu dodania elementu podrzędnego do określonej pozycji na liście podrzędnej kontenera obiektów wyświetlanych należy użyć metody addChildAt(). Te pozycje indeksu na liście podrzędnej dotyczą warstw (w kolejności od przodu do tyłu) obiektów wyświetlanych. Przykład: rozważmy następujące trzy obiekty wyświetlane. Każdy obiekt został utworzony z niestandardowej klasy o nazwie Ball. Warstwy tych obiektów wyświetlanych w ich kontenerze można dostosować za pomocą metody addChildAt(). Weźmy na przykład pod uwagę następujący kod:

44 ActionScript 3 Warstwy tych obiektów wyświetlanych w ich kontenerze można dostosować za pomocą metody addChildAt(). Weźmy na przykład pod uwagę następujący kod: ball_A = new Ball(0xFFCC00, "a"); ball_A.name = "ball_A";ball_A.x = 20; ball_A.y = 20; container.addChild(ball_A); ball_B = new Ball(0xFFCC00, "b"); ball_B.name = "ball_B";ball_B.x = 70; ball_B.y = 20; container.addChild(ball_B); ball_C = new Ball(0xFFCC00, "c"); ball_C.name = "ball_C"; ball_C.x = 40; ball_C.y = 60; container.addChildAt(ball_C, 1);

45 ActionScript 3 Po wykonaniu tego kodu obiekty wyświetlane zostaną rozmieszczone w następujący sposób w obiekcie container DisplayObjectContainer. Widoczne są warstwy obiektów.

46 ActionScript 3 W celu sprawdzenia kolejności warstw obiektów wyświetlanych należy użyć metody getChildAt(). Metoda getChildAt() zwraca obiekty podrzędne kontenera w zależności od wprowadzonego numeru indeksu. Na przykład: poniższy kod zawiera nazwy obiektów wyświetlanych w różnych pozycjach na liście podrzędnej obiektu container DisplayObjectContainer: trace(container.getChildAt(0).name); // ball_Atrace(container.getChildAt(1).name); // ball_Ctrace(container.getChildAt(2).name); // ball_B

47 ActionScript 3 W celu ponownego umieszczenia obiektu na górze listy wyświetlanej należy ponownie dodać go do listy. Na przykład: w celu przeniesienia obiektu ball_A na górę stosu po wykonaniu poprzedniego kodu należy użyć następującej linii kodu: container.addChild(ball_A); Ten kod skutecznie usuwa obiekt ball_A z jego miejsca w liście wyświetlania container, a następnie dodaje go ponownie na górę listy, co w rezultacie powoduje przeniesienie do góry stosu.

48 ActionScript 3 W celu sprawdzenia kolejności warstw obiektów wyświetlanych należy użyć metody getChildAt(). Metoda getChildAt() zwraca obiekty podrzędne kontenera w zależności od wprowadzonego numeru indeksu. Na przykład: poniższy kod zawiera nazwy obiektów wyświetlanych w różnych pozycjach na liście podrzędnej obiektu container DisplayObjectContainer: trace(container.getChildAt(0).name); // ball_Atrace(container.getChildAt(1).name); // ball_Ctrace(container.getChildAt(2).name); // ball_B

49 ActionScript 3 Jeśli obiekt wyświetlany zostanie usunięty z listy podrzędnej kontenera nadrzędnego, elementy położone wyżej na liście zostaną przesunięte w dół o jedną pozycję do indeksu podrzędnego. Przykład: poniższy kod, stanowiący kontynuację poprzedniego, przedstawia przesunięcie obiektu wyświetlanego, który znajdował się w pozycji 2 w obiekcie container DisplayObjectContainer się do pozycji 1 po usunięciu obiektu wyświetlanego, który znajdować się niżej na liście wyświetlania: container.removeChild(ball_C); trace(container.getChildAt(0).name); // ball_Atrace(container.getChildAt(1).name); // ball_B

50 ActionScript 3 Metody removeChild() i removeChildAt() nie powodują usunięcia całej instancji obiektu wyświetlanego. Usuwają instancję tylko z listy podrzędnej kontenera. Do instancji nadal mogą się odwoływać inne zmienne. (W celu całkowitego usunięcia obiektu należy użyć operatora delete). Obiekt wyświetlany ma tylko jeden kontener nadrzędny, dlatego instancja obiektu może zostać dodana tylko do jednego kontenera obiektów wyświetlanych. Przykład: poniższy kod ilustruje, że obiekt wyświetlany tf1 może istnieć tylko w jednym kontenerze (w takim przypadku: Sprite, który stanowi rozszerzenie klasy DisplayObjectContainer):

51 ActionScript 3 tf1:TextField = new TextField(); tf2:TextField = new TextField(); tf1.name = "text 1"; tf2.name = "text 2"; container1:Sprite = new Sprite(); container2:Sprite = new Sprite(); container1.addChild(tf1); container1.addChild(tf2);container2.addChild(tf1); trace(container1.numChildren); // 1 trace(container1.getChildAt(0).name); // text 2 trace(container2.numChildren); // 1 trace(container2.getChildAt(0).name); // text 1

52 ActionScript 3 Jeśli jeden obiekt wyświetlany z jednego kontenera obiektów wyświetlanych zostanie dodany do innego takiego kontenera, ten obiekt zostanie usunięty z listy podrzędnej pierwszego kontenera.

53 ActionScript 3 Oprócz metod opisanych powyżej klasa DisplayObjectContainer definiuje kilka metod przeznaczonych do pracy z podrzędnymi elementami wyświetlanymi, między innymi następujące: –contains(): określa, czy obiekt wyświetlany jest elementem podrzędnym DisplayObjectContainer. –getChildByName(): pobiera obiekt wyświetlany wg nazwy. –getChildIndex(): zwraca indeks obiektu wyświetlanego. –setChildIndex(): zmienia pozycję podrzędnego elementu wyświetlanego. –swapChildren(): zamienia kolejność z przodu/z tyłu dwóch obiektów wyświetlanych. –swapChildrenAt(): zamienia kolejność z przodu/z tyłu dwóch obiektów wyświetlanych, która jest określona przez ich indeksy. Należy przypomnieć, że obiekt wyświetlany, który nie znajduje się na liście wyświetlania taki, który nie znajduje się w kontenerze obiektów wyświetlanych podrzędnym dla obiektu Stage jest również określany jako obiekt wyświetlany spoza listy.

54 ActionScript 3 Szczegół właściwości currentFrame:int [tylko do odczytu]int Określa numer ramki, którą pokazuje głowica odtwarzania na osi czasu instancji obiektu MovieClip. Jeżeli klip filmowy posiada wiele scen, wówczas ta wartość jest numerem klatki w obecnej scenie. currentFrameLabel:String [tylko do odczytu]String Etykieta w klatce bieżącej na osi czasu instancji MovieClip. Jeśli bieżąca klatka nie ma etykiety, currentLabel ma wartość null. currentLabels:Array [tylko do odczytu]Array Zwraca tablicę obiektów FrameLabel z bieżącej sceny. Jeżeli instancja MovieClip nie wykorzystuje scen, wówczas tablica zawiera wszystkie etykiety klatek całej instancji MovieClip.

55 ActionScript 3 Szczegół właściwości currentLabel:String [tylko do odczytu]String Etykieta wyznaczona przez bieżące położenie głowicy odtwarzania na osi czasu instancji obiektu MovieClip. Jeżeli obecna klatka nie posiada etykiety, wówczas właściwość currentLabel jest ustawiona na nazwę poprzedniej klatki, która posiada etykietę. Jeżeli poprzednie klatki wraz z obecną nie posiadają etykiet, wówczas właściwość currentLabel zwraca wartość null. currentScene:Scene [tylko do odczytu]Scene Scena wyznaczona przez bieżące położenie głowicy odtwarzania na osi czasu instancji obiektu MovieClip.

56 ActionScript 3 Szczegół właściwości enabled:Boolean [tylko do odczytu]Boolean Wartość typu Boolean wskazująca, czy klip filmowy jest aktywny. Wartość domyślna dla właściwości enabled wynosi true. Jeżeli właściwość enabled jest ustawiona na wartość true, wówczas klatki Over, Down i Up klipu filmowego są wyłączone. Klip filmowy wciąż jednak otrzymuje zdarzenia (na przykład mouseDown, mouseUp, keyDown oraz keyUp). Właściwość enabled zarządza tylko właściwościami klipu filmowego analogicznymi wobec właściwości przycisku. Możliwa jest zmiana właściwości enabled w dowolnym momencie; zmodyfikowany klip filmowy jest natychmiast włączany lub wyłączany. Jeżeli właściwość enabled jest ustawiona na wartość false, wówczas obiekt nie jest włączany do automatycznej kolejności uaktywniania dla klawisza Tab.

57 ActionScript 3 Szczegół właściwości framesLoaded:int [tylko do odczytu]int Liczba klatek wczytanych z pliku SWF. Możliwe jest wykorzystanie właściwości framesLoaded w celu określenia, czy zawartość danej klatki oraz wszystkich wcześniejszych klatek została załadowana i jest dostępna lokalnie w przeglądarce. Można również wykorzystać tę właściwość w celu monitorowania pobierania dużych plików SWF. Na przykład może zajść potrzeba wyświetlenia wiadomości użytkownikom, iż plik SWF jest ładowany do momentu załadowania określonej klatki. Jeżeli klip filmowy zawiera wiele scen, wówczas właściwość framesLoaded zwraca liczbę klatek załadowanych względem wszystkich scen w klipie filmowym.

58 ActionScript 3 Szczegół właściwości scenes:Array [tylko do odczytu]Array Tablica obiektów Scene, z których każdy jest opisany przez nazwę, liczbę klatek i etykiety klatek (na scenie instancji obiektu MovieClip). totalFrames:int [tylko do odczytu]int Całkowita liczba klatek w tej instancji obiektu MovieClip. Jeżeli klip filmowy zawiera wiele klatek, wówczas właściwość totalFrames zwraca liczbę klatek we wszystkich scenach w klipie filmowym.

59 ActionScript 3 Szczegół właściwości trackAsMenu:Boolean [tylko do odczytu]Boolean Wskazuje, czy inne obiekty wyświetlane, będące obiektami SimpleButton lub MovieClip, mogą reagować na zdarzenia zwalniania przycisku myszy. Właściwość trackAsMenu umożliwia tworzenie menu. Możliwe jest utworzenie właściwości trackAsMenu na dowolnym obiekcie SimpleButton lub MovieClip. Wartość domyślna właściwości trackAsMenu wynosi false. Możliwa jest zmiana właściwości trackAsMenu w dowolnym momencie; zmodyfikowany klip filmowy natychmiast wykorzystuje nowe zachowanie.

60 ActionScript 3 Szczegół konstruktora public function MovieClip() Tworzy nową instancję klasy MovieClip. Po utworzeniu obiektu MovieClip należy wywołać metodę addChild() lub addChildAt() kontenera obiektów wyświetlanych, który znajduje się na stole montażowym.

61 ActionScript 3 Szczegół metody public function gotoAndPlay(frame:Object, scene:String = null):voidObjectStringvoid Zaczyna odtwarzanie pliku SWF od określonej klatki. Dzieje się to po zakończeniu wykonywania wszystkich akcji w danej klatce. W celu wybrania sceny jak i klatki, należy określić wartość dla parametru scene. public function gotoAndStop(frame:Object, scene:String = null):voidObjectStringvoid Przesuwa głowicę odtwarzania do określonej klatki klipu filmowego i zatrzymuje ją. Dzieje się to po zakończeniu wykonywania wszystkich akcji w danej klatce. W celu wybrania sceny jak i klatki, należy określić wartość dla parametru scene.

62 ActionScript 3 Szczegół metody public function nextFrame():voidvoid Przesuwa głowicę odtwarzania do następnej klatki i zatrzymuje ją. Dzieje się to po zakończeniu wykonywania wszystkich akcji w danej klatce. public function nextScene():voidvoid Przesuwa głowicę do następnej sceny instancji obiektu MovieClip. Dzieje się to po zakończeniu wykonywania wszystkich akcji w danej klatce. public function play():voidvoid Przesuwa głowicę odtwarzania na osi czasu klipu filmowego.

63 ActionScript 3 Szczegół metody public function prevFrame():voidvoid Przesuwa głowicę odtwarzania do poprzedniej klatki i zatrzymuje ją. Dzieje się to po zakończeniu wykonywania wszystkich akcji w danej klatce. public function prevScene():voidvoid Przesuwa głowicę do poprzedniej sceny instancji obiektu MovieClip. Dzieje się to po zakończeniu wykonywania wszystkich akcji w danej klatce. public function stop():voidvoid Zatrzymuje głowicę odtwarzania w klipie filmowym.


Pobierz ppt "Movie Clip Łukasz Kulasza Mariusz Młynek. Movie Clip w java Script 2.0."

Podobne prezentacje


Reklamy Google