Części składowe języka HTML
Ten rozdział nauczy cię tworzenia współdzielonych bibliotek i zewnętrznych skryptów, udostępniających często używane elementy - symbole i kod - grupie projektantów pracujących nad filmem Flasha. W niniejszym rozdziale zapoznasz się też z paletami Movie Explorer, Debugger i oknem Output, które dają dostęp do informacji na temat organizacji i statusu twojego filmu. Te trzy okna pozwalają ogarnąć skrypt z perspektywy różnych elementów filmu, wyświetlają też ostrzeżenia o błędach i monitorują zmiany w wartościach zmiennych oraz właściwości w czasie odtwarzania filmu. Na zakończenie zapoznasz się z kilkoma technikami pomagającymi uczynić film bardziej zwartym i szybkim - dzięki optymalizacji grafiki, właściwej organizacji środowiska pracy i sposobom unikania powszechnych błędów. Wspomniane techniki, uczynią z ciebie lepszego animatora i bardziej doświadczonego twórcę filmów Flasha.
|
Flash umożliwia zespołom animatorów i programistów korzystanie ze współdzielonych bibliotek w czasie pracy nad złożonymi projektami. Każdy z animatorów może pracować nad oddzielnym filmem, używającym jednak tego samego symbolu - np. głównego bohatera animowanego komiksu. Identyczny symbol tego bohatera powinien rezydować w bibliotece każdego z filmów, a jeśli dyrektor artystyczny zdecyduje się zmienić twarz postaci, to nowy symbol musi zostać skopiowany do wszystkich bibliotek - tzn., dzieje się tak, dopóki nie przygotuje się współdzielonej biblioteki. Biblioteki tego typu służą do przechowywania symboli najczęściej używanych w wielu filmach. Możesz więc przechować symbol swojego bohatera w takiej bibliotece, udostępniając go zarazem dla wszystkich filmów, które muszą z niego skorzystać. To bardzo upraszcza proces edycyjny i zapewnia spójność całemu projektowi (rys. 12.1). Odbiorcy także odnoszą korzyści z używania współdzielonej biblioteki, jako że muszą wczytać ją tylko raz. Przykładowo, wspominany już bohater mógłby być wczytany tylko jednokrotnie - dla pierwszego filmu, a zarazem wszystkich innych dodatkowych filmów, także korzystających z tego symbolu. W celu utworzenia współdzielonej biblioteki, oznaczasz symbol, który chcesz udostępnić za pomocą takiego samego identyfikatora łączenia, jakiego używałeś w przypadku dźwięków i filmów na potrzeby metod attachSound i attachMovie. Po wyeksportowaniu pliku SWF, zidentyfikowane w ten sposób symbole będą dostępne jako symbole współdzielone.
|
Rys. 12.1. Współdzielona biblioteka (u góry) umożliwia wielu plikom SWF korzystanie z tego samego symbolu
|
Rys. 12.2. Wybierz Options/Linkage z menu biblioteki
Rys. 12.3. W celu oznaczenia symbolu jako współdzielonego, nadaje mu się identyfikator w oknie dialogowym Symbol Linkage Properties i zaznacza jako element do wyeksportowania
Rys. 12.4. W celu uzyskania dostępu do współdzielonych symboli z biblioteki innego filmu, wybierz File/Open as Shared Library
|
W celu utworzenia
Pojawi się okno dialogowe Symbol Linkage Properties.
Wybrany w ten sposób symbol jest zaznaczony do wyeksportowania i gotowy do współdzielenia przez inne filmy.
Po utworzeniu współdzielonej biblioteki możesz wykorzystywać jej zawartość w różnych filmach. W tym celu trzeba tylko otworzyć współdzieloną bibliotekę w nowym dokumencie Flasha, a następnie przeciągnąć wybrany symbol do okna dokumentu. Pomiędzy plikiem SWF używającym takiego symbolu oraz plikiem SWF, który symbol współdzielony zawiera (czyli współdzieloną biblioteką), tworzone jest połączenie. Oryginalny plik źródłowy (FLA), zawierający bibliotekę współdzieloną, jest plikiem głównym, jedynym miejscem, w którym możesz dokonywać edycji współdzielonych symboli.
W celu użycia
|
Pojawi się nowe okno biblioteki, ukazujące wszystkie symbole z wybranego pliku FLA. Tło biblioteki ma kolor szary, wskazując w ten sposób, że ta biblioteka nie należy do aktualnie otwartego pliku Flasha. Z poziomu tego pliku nie możesz modyfikować, dodawać czy usuwać symboli z tej biblioteki (rys. 12.5).
Współdzielony symbol zostanie dodany do bieżącej biblioteki i będzie dostępny do wykorzystania w filmie. Wybierz Options/Linkage w celu sprawdzenia, czy symbol jest połączony ze współdzieloną biblioteką (rys. 12.6).
Kiedy odtworzysz film używający wspólnego symbolu, symbol ten zostanie wczytany ze współdzielonej biblioteki zapisanej w pliku SWF. Wskazówka
|
Rys. 12.5. Biblioteka po lewej zawiera symbol przeznaczony do współdzielenia. Biblioteka po prawej to twoja bieżąca biblioteka
Rys. 12.6. Okno dialogowe Symbol Linkage Properties wskazuje, że ten symbol jest importowany z pliku o nazwie sharedLibrary.swf
Rys. 12.7. Dwa pliki SWF umieszczono w tej samej lokalizacji |
Rys. 12.8. Okno dialogowe Symbol Linkage Properties wskazuje, że ten symbol jest importowany z pliku o nazwie sharedLibrary.swf, znajdującego się w folderze sharedFolder
Rys. 12.9. Dwa pliki SWF umieszczone w różnych lokalizacjach
Rys. 12.11. Ścieżka dostępu podana w polu URL określa lokalizację współdzielonych symboli. Umieść zatem swoją współdzieloną bibliotekę w miejscu, na które wskazuje pole URL |
Domyślną lokalizacją dla współdzielonej biblioteki jest katalog zawierający plik SWF, korzystający z tej biblioteki. Jeśli chciałbyś umieścić bibliotekę w innej lokalizacji, musisz podać do jej pliku bezwzględną lub względną ścieżkę dostępu. Można to zrobić zarówno w pliku samej biblioteki, jak i w pliku, który tej współdzielonej biblioteki używa. W celu wprowadzenia innej lokalizacji dla współdzielonej biblioteki:
Pojawi się okno dialogowe Symbol Linkage Properties. Zaznaczona będzie pozycja Import this symbol w opcji URL, a w dolnym polu ukaże się bieżąca ścieżka dostępu do współdzielonej biblioteki.
lub
|
Tak jak możesz identyfikować współdzielone symbole, tak też istnieje możliwość tworzenia symboli pozwalających na współdzielenie fontów. Po utworzeniu symbolu czcionki, identyfikujesz go jako przeznaczony do wyeksportowania (Linkage) w procesie identycznym, jak w przypadku tworzenia współdzielonych symboli. Jeśli wiele filmów używa tego samego fontu ze współdzielonej biblioteki, jest on wczytywany tylko raz dla pierwszego filmu, redukując w ten sposób rozmiar pliku i czas wczytywania kolejnych filmów.
W celu utworzenia
Pojawi się okno dialogowe Font Symbol Properties.
W bibliotece pojawi się symbol fontu.
Pojawi się okno dialogowe Symbol Linkage Properties.
Wybrany symbol fontu jest już oznaczony jako element do wyeksportowania i współdzielenia przez inne filmy.
Wybrany symbol fontu będzie rezydował w pliku SWF, udostępniającym ów współdzielony font innym filmom. |
Rys. 12.12. W oknie biblioteki wybierz Options/New Font
Rys. 12.13. Utwórz symbol fontu, wybierając czcionkę i nadając mu nazwę w oknie dialogowym Font Symbol Properties
Rys. 12.14. Oznacz swój symbol fontu jako przeznaczony do współdzielenia za pomocą okna dialogowego Symbol Linkage Properties
|
Rys. 12.15. Współdzielone fonty są dostępne na palecie Character jako oznaczone gwiazdką, widoczną obok ich nazwy
|
W celu użycia
Współdzielony symbol fontu pojawi się na liście dostępnych fontów palety Character.
|
Kiedy skrypt widoczny w oknie skryptu palety akcji staje się długi i rozbudowany, możesz zacząć go sprawdzać, edytować i zarządzać jego zawartością za pomocą poleceń dostępnych w menu rozwijanym palety akcji. Oprócz możliwości wyboru pomiędzy trybami Normal i Expert, menu to udostępnia opcje szukania i zastępowania wyrazów, importowania i eksportowania skryptów, jak również drukowania skryptu oraz różne sposoby jego wyświetlania (rys. 12.16). Wszystkie te funkcje są dostępne w obydwu trybach pracy palety - Normal i Expert. W celu sprawdzenia składni skryptu:
Flash sprawdzi zawartość okna skryptu w poszukiwaniu błędów w składni. W przypadku odnalezienia błędu, zobaczysz ostrzegawcze okno dialogowe i listę ewentualnych błędów wyświetloną w oknie Output (rys. 12.17). Wykorzystaj informacje zawarte w tym oknie do zlokalizowania i naprawienia zgłoszonych błędów. |
Wskazówka
|
Rys. 12.16. Menu rozwijane opcji palety akcji zawiera funkcje edycyjne dla okna skryptu |
Rys. 12.17. Napisany skrypt (u góry) zawiera niepotrzebnie wstawioną klamrę zamykającą. Flash informuje cię o rodzaju i lokalizacji błędu w oknie Output (u dołu)
Rys. 12.18. Flash informuje także o tym, że twój skrypt jest wolny od błędów składni
Rys. 12.19. Każde wystąpienie wyrażenia _root.myPaddle._x zostanie zamienione na _root.myPaddle._y
|
Używaj funkcji Find oraz Replace, dostępnych na palecie akcji, do szybkiej zmiany nazw zmiennych, właściwości, a nawet akcji. Przykładowo, jeśli utworzyłeś długi skrypt, w którym pojawia się zmienna redTeamStatus, możesz skopiować i wkleić skrypt, a następnie zmienić wszystkie elementy redTeamStatus na blueTeamStatus. Możliwe jest wyszukanie wszystkich występujących w skrypcie właściwości _x i zamienienie ich na właściwości _y, albo odnalezienie wszystkich wystąpień akcji gotoAndStop i wstawienie na ich miejsce akcji gotoAndPlay.
W celu odnalezienia elementu
Pojawi się okno dialogowe Replace.
Wskazówki
|
W celu zaimportowania skryptu:
Flash zastąpi bieżącą zawartość okna skryptu zawartością importowanego pliku tekstowego. W celu wyeksportowania skryptu:
Flash dokona zapisu pliku tekstowego, w którym znajdzie się cała bieżąca zawartość okna skryptu. Polecane dla eksportowanych w ten sposób plików rozszerzenie to .as, jak w mójKod.as.
|
|
Rys. 12.20. Flash dołącza zewnętrzny skrypt za pomocą akcji #include po wyeksportowaniu pliku SWF (z lewej). Natomiast współdzielona biblioteka jest dołączana do pliku SWF w czasie odtwarzania (z prawej)
|
Dołączanie Możliwe jest tworzenie zewnętrznych plików ActionScript w celu współdzielenia pewnych fragmentów kodu przez wiele filmów. Utwórz taki kod, pojawiający się wielokrotnie w różnych filmach, i trzymaj go w pliku tekstowym poza środowiskiem Flasha. Gdybyś chciał coś w nim zmienić, będziesz musiał to zrobić tylko raz, w jednym miejscu. Zewnętrzne fragmenty kodu można dołączać do filmu Flasha za pomocą akcji #include, która wprowadza do Flasha taki zewnętrzny plik tekstowy ze skryptem i dołącza jego zawartość do istniejącego już w oknie skryptu kodu. Jednakże istnieje zasadnicza różnica pomiędzy używaniem akcji #include do współdzielenia kodu ActionScript i używaniem współdzielonych bibliotek do dzielenia symboli. Dołączany z zewnątrz kod ActionScript nie jest kompilowany dynamicznie w czasie odtwarzania, tak więc zachodzi potrzeba powtórnego wyeksportowania filmu Flasha, jeśli taki kod ma zostać wprowadzony do bieżącego skryptu. Oznacza to, że akcja #include, chociaż użyteczna, ma ograniczone działanie w środowisku autorskim Flasha (rys. 12.20).
|
W celu dołączenia
|
Rys. 12.21. Fragment skryptu zapisany w pliku tekstowym myCode.as
Rys. 12.22. Podczas wprowadzania tego klipu filmowego do pamięci, zewnętrzny plik tekstowy o nazwie myCode.as jest dołączany do tego fragmentu skryptu
Wskazówka
|
Rys. 12.23. Paleta Movie Explorer wyświetla w hierarchicznej postaci różne elementy filmu
|
Posługiwanie się Jeśli chcesz obejrzeć cały swój film „z lotu ptaka”, wykorzystaj paletę Movie Explorer (Ctrl+Alt+M). Jest to potężne narzędzie - do śledzenia wszystkich elementów filmu - które pomoże ci dotrzeć bezpośrednio do wybranego fragmentu skryptu, grafiki czy też ujęcia przeznaczonego do modyfikacji. Paleta Movie Explorer pozwoli przedstawiać wybiórczo graficzną reprezentację komponentów filmu i uzyska informacje o poszczególnych ujęciach, warstwach, jak również fragmentach skryptu przypisanych do przycisków, klipów filmowych i ujęć kluczowych. Wyświetlana zawartość jest ułożona hierarchicznie, dzięki czemu łatwo dostrzec powiązania pomiędzy różnymi elementami filmu (rys. 12.23). Paleta Movie Explorer jest uaktualniana w czasie rzeczywistym, tak więc kiedy pracujesz w środowisku autorskim Flasha, paleta zawsze wyświetla wyniki ostatnich modyfikacji. Korzystaj z niej w celu odnajdywania określonych elementów filmu. Na przykład, jeśli chcesz znaleźć wszystkie klony klipu filmowego, możesz nakazać Flashowi wyszukanie ich, a następnie wyświetlenie dokładnej sceny, warstwy i klatki, w której rezyduje każdy z klonów. Później możesz szybko udać się do wskazanego punktu na listwie czasowej i dokonać edycji takiego klonu. Ponadto w samej palecie Movie Explorer możesz edytować różne elementy, np. nazwy symboli lub zawartość selekcji tekstu. Paleta Movie Explorer znacznie ułatwia orientację w rozbudowanym filmie z racji wyświetlania zawartości na różne sposoby i szybkiego nawigowania do wskazanego elementu.
|
Z rozwijanego menu opcji w prawym górnym rogu palety Movie Explorer wybierz jedną (lub więcej) z opcji (rys. 12.24):
lub Show Symbol Definitions wyświetla wszystkie elementy powiązane z klonami symboli obecnymi na scenie. lub Show All Scenes wyświetla wszystkie elementy filmu we wszystkich scenach.
W celu wyświetlenia Z rzędu przycisków określających sposób wyświetlania zawartości, umieszczonych w górnej części palety, kliknij jeden lub więcej, żeby dodać kolejne kategorie elementów do wyświetlenia (rys. 12.25).
lub Show Buttons, Movie Clips, and Graphics wyświetla nazwy symboli przycisków, klipów filmowych i grafik na scenie, jak również nazwy klonów klipów filmowych. lub Show ActionScripts wyświetla akcje przypisane przyciskom, klipom filmowym i ujęciom. lub Show Video, Sound, and Bitmaps wyświetla nazwy symboli zaimportowanych klipów wideo, dźwięków i bitmap obecnych na scenie. |
Rys. 12.24. Menu rozwijane opcji palety Movie Explorer
Rys. 12.25. Przyciski sposobu wyświetlania zawartości pozwalają selektywnie wybierać wyświetlane elementy
|
Rys. 12.26. Wpisanie dowolnej frazy w polu Find spowoduje wyświetlenie wszystkich miejsc jej wystąpienia. Tutaj została znaleziona nazwa klonu myReferecnePoint odnosząca się do symbolu klipu filmowego ball
|
lub Show Frames and Layers wyświetla nazwy warstw, ujęć kluczowych i etykiet poszczególnych klatek filmu. lub Customize which Items to Show wyświetla okno dialogowe, w którym możesz dokonać wyboru elementów przeznaczonych do wyświetlenia. W celu odnalezienia i edycji wyświetlanych elementów:
Wszystkie elementy filmu o podanej nazwie zostaną wyświetlone automatycznie w czasie wpisywania.
Spowoduje to jednocześnie zaznaczenie tego elementu na listwie czasowej i na scenie. Jeśli zaznaczono scenę lub ujęcie kluczowe, Flash przeniesie cię do tej sceny lub ujęcia kluczowego.
lub
lub Kliknij dwukrotnie wybrany element w celu zmodyfikowania go. W zależności od typu elementu, Flash może otworzyć dodatkowe okno:
|
W celu wymiany wszystkich wystąpień określonego fontu:
Wyświetlone zostaną wszystkie miejsca występowania tego fontu (rys. 12.27).
Wszystkie zaznaczone elementy zmienią się stosownie do modyfikacji, jakie wprowadziłeś na palecie Character (rys. 12.28).
W celu wyszukania wszystkich
|
Rys. 12.27. Wyświetlone zostaną wszystkie miejsca występowania fontu Times
Rys. 12.28. Mając zaznaczone elementy tekstowe pisane czcionką Times, wybierz inny font, np. Verdana (u góry) z listy na palecie Character. Flash wymieni czcionkę zaznaczonych elementów tekstowych z Times na Verdana (u dołu)
|
Rys. 12.30. Obiekt myArray jest tworzony za pomocą funkcji konstruktora new Array
|
Wyświetlanie zmiennych Chociaż paleta Movie Explorer daje dostęp do większości elementów graficznych filmu oraz fragmentów skryptu, to jednak nie umożliwia wyświetlania zmiennych lub ścieżek dostępu do obiektów. W tym celu używa się okna Output. Często w czasie odtwarzania filmu będziesz chciał znać wartości przyjmowane przez zmienne i ścieżki dostępu do klipów filmowych, żeby móc ocenić, czy Flash właściwie manipuluje danymi. Jest to szczególnie ważne w przypadku najbardziej skomplikowanych filmów, być może zawierających wiele parametrów przekazywanych między funkcjami lub dużą ilość dynamicznie przydzielanych zmiennych. Załóżmy na przykład, że chcesz zadeklarować i wypełnić obiekt tablicowy w pierwszym ujęciu na listwie czasowej. Po przypisaniu skryptu do odpowiedniego ujęcia, możesz przetestować film, ale tak naprawdę nie będziesz wiedział, czy Flash właściwie wypełnił tablicę, jako że na scenie nie będzie widać nic konkretnego. W celu sprawdzenia, czy tablica jest rzeczywiście wypełniona poprawnymi wartościami, możesz wyświetlić zmienne w oknie Output w trybie testowym. Polecenie List Variables wyświetla wszystkie zmienne istniejące w filmie wraz z przypisanymi im wartościami. W kolejnym ćwiczeniu utworzysz najpierw obiekt tablicowy, a następnie przypiszesz mu wartości za pomocą wyrażenia wykonywanego w pętli. Będąc w trybie testowym, wyświetlisz zmienne filmu w oknie Output, żeby zobaczyć ostateczne wartości podstawione do tablicy.
W celu wyświetlenia zmiennych
|
Po każdym wykonaniu pętli przez wyrażenie for, wartość i zwiększa się o 1. Flash przypisuje każdemu wpisowi w tablicy myArray wartość jego indeksu pomnożoną przez 5. Pętla ta wypełnia tablicę myArray (rys. 12.32).
Otworzy się okno Output, ukazujące wszystkie zmienne pojawiające się w filmie. Pierwszą widoczną zmienną jest $version, informująca o wersji przeglądarki Flasha i platformie systemowej. Drugą zmienną jest obiekt myArray. Flash wyświetla jego lokalizację (_level0.myArray), typ danych (object) i wszystkie wartości w poszczególnych indeksach (0, 5, 10, 15, 20). Trzecią zmienną jest zmienna licznika, i, używana w wyrażeniu wykonywanym w pętli (rys. 12.33). Wskazówka
|
Rys. 12.31. Stwórz pętlę, która zaczyna się od i=0 i zwiększa wartość o 1, dopóki nie przyjmie wartości 4
Rys. 12.32. Obiekt myArray jest automatycznie wypełniany wartościami okreśonymi przez wykonywane w pętli wyrażenie
Rys. 12.33. W trybie testowym wybierz Debug/List Variables, żeby zobaczyć wszystkie aktualne zmienne. Wyświetlone zostaną obiekt myArray oraz jego zmienne, umożliwiając sprawdzenie wyrażenia wykonywanego w pętli |
Rys. 12.34. Ten sam film wyświetlany na palecie Movie Explorer (u góry) oraz w oknie Output (u dołu). Na palecie Movie Explorer widoczny jest klip filmowy spaceship, jego przycisk i akcje przypisane do przycisku. Okno Output wyświetla ścieżkę dostępu do klipu filmowego spaceship i wskazuje, że wewnątrz klipu są jeszcze kształt oraz przycisk. Ponadto okno Output informuje, że w ujęciu 64. umieszczony jest klip filmowy asteroid (w momencie, kiedy wybrano polecenie List Objects)
Rys. 12.35. W trybie testowym wybierz Debug/List Objects |
Okno Output można też wykorzystać do wyświetlania obiektów w filmie. Ponieważ okno to nie wyświetla informacji w charakterze graficznym, możesz uzyskać w nim informacje niedostępne z poziomu palety Movie Explorer (posługującej się właśnie taką graficzną reprezentacją elementów). Informacje o obiektach, wyświetlane w oknie Output, zawierają poziom obiektu, numer ujęcia, typ symbolu (klip filmowy, przycisk), typ grafiki (tekst, kształt) i bezwzględną ścieżkę dostępu do klipów filmowych. Ścieżka dostępu jest najważniejszą informacją, którą możesz uzyskać w oknie Output wprost (Movie Explorer wyświetla informacje ościeżkach pośrednio). rys. 12.34 przedstawia porównanie typowych informacji wyświetlanych dla jednego filmu, zarówno w oknie Output, jak i za pomocą palety Movie Explorer.
W celu wyświetlenia obiektów
W oknie Output zostaną wyświetlone wszystkie obiekty filmu w aktualnym stanie. Wskazówka
|
Czasem będziesz chciał znać status zmiennej lub wyrażenia w określonym momencie w czasie odtwarzania filmu. Przykładowo, wyobraź sobie, że przygotowałeś grę Pong, w której klip filmowy w formie piłeczki odbija się od dwóch innych klipów filmowych, przedstawiających rakietki. Chcesz poznać, na potrzeby testów, pozycję rakietki w momencie jej kolizji z piłeczką. Użycie w tym miejscu polecenia List Variables niewiele pomoże, jako że zmienne obrazujące położenie rakietki zmieniają się bardzo szybko. Rozwiązaniem jest skorzystanie z akcji trace. Możesz umieścić tę akcję w dowolnym punkcie filmu i tym samym nakazać Flashowi wysyłanie wybranego komunikatu do okna Output w trybie testowym. Tym komunikatem będzie wyrażenie, utworzone w celu przekazywania ci potrzebnej informacji we właściwym momencie. W przypadku wspomnianej gry Pong, wyrażenie śledzące mogłoby wyglądać tak: trace ("pozycja X rakietki wynosi " + mojaRakietka._x); trace ("pozycja Y rakietki wynosi " + mojaRakietka._y); Umieść powyższe wyrażenia w wyrażeniu warunkowym, odpowiadającym za detekcję kolizji. W przypadku spełnieniu warunku, Flash wyśle komunikat (w momencie wystąpienia kolizji) do okna Output. Komunikat może wyglądać następująco: pozycja X rakietki wynosi 25 pozycja y rakietki wynosi 89
|
|
Rys. 12.36. Akcja startDrag sprawi, że ten klip filmowy będzie podążał za wskaźnikiem myszy
Rys. 12.37. Akcja trace szacuje wyrażenie w polu Message i wyświetla wartość w oknie Output
Rys. 12.38. Okno Output wyświetla wartość false (fałsz), jeśli nie zachodzi kolizja między klipami filmowymi myMovieClip i rock (u góry). W przypadku nastąpienia kolizji, w oknie Output pojawi się wartość true (prawda) (u dołu)
|
Akcji trace można też użyć do monitorowania warunku wyrażenia, dzięki czemu będziesz mógł zrozumieć okoliczności zmieniające jego wartość. Na przykład w poniższym ćwiczeniu, utworzysz prosty przeciągany klip filmowy oraz drugi klip, tym razem stacjonarny. Przypiszesz akcję trace do metody hitTest przeciąganego klipu filmowego, pozwalającej zobaczyć, kiedy i gdzie wartości są prawdziwe lub fałszywe.
W celu
this.hitTest(_root.rock) Zaznacz pole Expression (rys. 12.37). Flash oszacuje metodę hiTest w celu ustalenia, czy przeciągany klip filmowy wchodzi w kolizję z klipem filmowym rock. Zwracana wartość jest wyświetlana w oknie Output w trybie testowym.
Otworzy się okno Output, wyświetlając rezultat działania akcji trace (rys. 12.38).
|
W celu określenia typu danych przechowywanych w zmiennej:
Flash oszacuje zmienną myArray i wyświetli jej typ danych w oknie Output w trybie testowym.
|
Rys. 12.39. Typ danych zawartych w tablicy myArray zostanie oszacowany
Rys. 12.40. Dodaj akcje trace w celu oszacowania i wyświetlenia typów danych 3. indeksu tablicy myArray oraz metody toString tej tablicy
Rys. 12.41. Rezultaty wykonania akcji trace widoczne w oknie Output
|
Rys. 12.42. Paleta Debugger wyświetla hierarchię klipów filmowych wraz z wszystkimi ich właściwościami i zmiennymi. Tutaj, zmienne myDegrees, myRadians i pressing są osadzone w klipie filmowym _level0.myReferencePoint
Rys. 12.43. Użyj menu Control do kontrolowania sposobu odtwarzania filmu w trybie testowym
|
Posługiwanie się Paleta Debugger daje ci możliwość monitorowania i modyfikowania wartości wszystkich zmiennych i właściwości występujących w filmie, i to w czasie jego odtwarzania. Można nawet sprawdzać wartości obiektów przechowujących dane, takich jak klony obiektu daty lub dźwięku. Korzystaj z palety Debugger w celu sprawdzenia, czy Flash manipuluje informacjami zawartymi w zmiennych w określony przez ciebie sposób, a także w celu szybkiego sprawdzania warunków i innych efektów przetwarzania zmiennych. Wyobraź sobie np., że utworzyłeś animację ze zmienną o nazwie mojaSzybkość, kontrolującą prędkość poruszania się statku kosmicznego. Dzięki palecie Debugger zmienną tę możesz modyfikować podczas odtwarzania filmu i na bieżąco oceniać jej wpływ na ruch statku. Zwiększaj więc lub zmniejszaj wartość zmiennej tak długo, aż uzyskasz zadowalające rezultaty. Paletę Debugger otwiera się i używa w specjalnej wersji odtwarzacza Flasha, dostępnej z poziomu środowiska autorskiego programu. Po otwarciu i uaktywnieniu, paleta Debugger wyświetla informacje w dwóch oknach: w oknie wyświetlania u góry palety oraz w zakładkach Properties, Variables i Watch w dolnej części palety. Okno wyświetlania pokazuje główną listwę czasową wraz z hierarchią klipów filmowych obecnych na tej listwie. Możesz zaznaczyć listwę główną albo inną, obecną w filmie, i zobaczyć właściwości przypisane do tej określonej listwy czasowej lub wszystkie osadzone w niej zmienne (rys. 12.42). Użyj poleceń menu Control do przewijania, odtwarzania i przemieszczania się w przód i w tył w obrębie filmu, także klatka po klatce, w celu skrupulatnego sprawdzania właściwości i zmiennych filmu (rys. 12.43). |
Flash wyeksportuje plik SWF i uruchomi tryb testowy. Zostanie otwarta i uruchomiona paleta Debugger. lub
Pojawi się menu podręczne Flasha (rys. 12.45).
W celu zmodyfikowania
Nowa wartość musi być raczej stałą (łańcuch znakowy, liczba, wartość boole'owska), niż wyrażeniem odnoszącym się do innej zmiennej lub właściwości. Przykładowo, możesz wpisać 35, ale nie 35 + myAlpha. Po poprawnym podstawieniu nowej wartości, film natychmiast reaguje na zmiany.
|
Rys. 12.44. Wybierz Control/Debug Movie
Rys. 12.45. Dostęp do palety Debugger można uzyskać również za pośrednictwem menu podręcznego
Rys. 12.46. Wartości właściwości mogą być zaznaczane (u góry) i modyfikowane (u dołu), a wszelkie zmiany zostaną wprowadzone do filmu natychmiast, nawet w czasie jego odtwarzania |
Rys. 12.47. Zaznaczona zmienna (myRadians) jest dodawana do zakładki Watch przy pomocy menu rozwijanego opcji
Rys. 12.48. Zaznaczona zmienna (myRadians) jest dodawana do zakładki Watch przy pomocy menu podręcznego
|
Wskazówka
Zakładka Variables palety Debugger pozwala śledzić tylko zmienne zogniskowane na tym samym poziomie. Gdybyś chciał obserwować zmienne należące do różnych poziomów struktury filmu, możesz posłużyć się zakładką Watch do wybrania odpowiednich zmiennych. Dzięki temu możesz utworzyć sobie listę krytycznych dla twojego filmu zmiennych i zgrupować je w jednym miejscu, pozwalającym na ich obserwację i modyfikację. Zmienne w zakładce Watch są wyświetlane wraz z ich bezwzględnymi ścieżkami dostępu, napisanymi w składni z ukośnikiem.
W celu dodania zmiennych
Obok wybranej zmiennej pojawi się niebieska kropka, wskazując, że została ona wybrana do wyświetlania jej w zakładce Watch. lub
Obok wybranej zmiennej pojawi się niebieska kropka, wskazując, że została ona wybrana do wyświetlania jej w zakładce Watch. |
W celu usunięcia zmiennych
lub W zakładce Variables - kliknij prawym klawiszem myszy zmienną i wybierz polecenie Watch (oznaczone „ptaszkiem”). lub W zakładce Variables lub Watch - zaznacz zmienną, a potem wybierz Remove Watch z menu rozwijanego opcji w prawym górnym rogu palety Debugger.
|
Rys. 12.49. Wybierz Add z menu podręcznego zakładki Watch w celu wprowadzenia zmiennej ręcznie
|
Rys. 12.50. Dobrze zorganizowane warstwy - jak te powyżej - są łatwe do ogarnięcia i wprowadzania zmian
|
Optymalizowanie filmu Zrozumienie działania narzędzi, których używasz do tworzenia, grafiki, animacji, dźwięku i skryptu jest ważne, jednak nie mniej istotne jest uświadomienie sobie, jak zrobić z nich najlepszy użytek do przygotowywania efektywnie działających filmów Flasha. Takie filmy wymagają optymalizacji, która pozwala na zachowanie minimalnych rozmiarów pliku, płynnej animacji i prostych przeglądów. Wpływ na końcowy rozmiar i pracę pliku SWF ma wiele czynników. Bitmapy, dźwięki, skomplikowane kształty, przejścia tonalne, przezroczystości i osadzone fonty - wszystkie te elementy zwiększają rozmiar pliku i pogarszają jego wydajność. Tylko ty możesz wyważyć jakość z ilością i rozmiar z wydajnością. Pamiętaj o odbiorcach twoich filmów - czy mają połączenie z Internetem za pośrednictwem linii T1, czy też może korzystają z modemów 28,8 k? Znajomość odpowiedzi na to pytanie pomoże ci wybrać najwłaściwszą zawartość dla twojego filmu i efektywnie skonstruować całość. Niżej przedstawione strategie z pewnością pomogą ci w opracowywaniu mniejszych, łatwiejszych w zarządzaniu i wydajniejszych filmów Flasha.
W celu optymalizacji
lub Używaj jednolitego nazewnictwa w przypadku zmiennych, klipów filmowych, obiektów i innych elementów, które muszą być zidentyfikowane. |
lub Dołączaj do swoich skryptów komentarze, wyjaśniające znaczenie poszczególnych fragmentów kodu, zarówno tobie, jak i innym programistom, którzy mogą w przyszłości wprowadzać jakieś poprawki. Komentarz możesz również dołączać do ujęć kluczowych, w celu objaśnienia różnych partii listwy czasowej. lub Korzystaj z bloków dynamicznego tekstu jako dodatku do okna Output i palety Debugger w czasie obserwacji zmiennych obecnych w twoim filmie. Bloki dynamicznego tekstu umożliwiają wyświetlanie zmiennych i wyrażeń w kontekście twojego filmu. lub Unikaj stosowania wielu scen w swoich filmach. Chociaż stanowią one dobry element organizacyjny w przypadku prostych filmów, listwy czasowe zawierające sceny są trudniejsze w nawigacji od klipów filmowych. Ponadto klony klipów filmowych nie zachowują ciągłości pomiędzy scenami. Korzystaj raczej z etykiet do oznaczania różnych obszarów listwy czasowej.
W celu optymalizacji bitmap
lub Dźwięki strumieniowe umieszczaj raczej na listwie czasowej, niż wewnątrz klipu filmowego. |
|
Rys. 12.51. Jakość JPEG (JPEG Quality) oraz opcje kompresji audio (Audio Stream, Audio Event) dostępne w oknie dialogowym Publish Settings
|
Przed odtworzeniem klip filmowy musi zostać wczytany w całości. Natomiast dźwięk strumieniowy na listwie czasowej będzie odtwarzany już w momencie wczytywania filmu. lub Używaj maksymalnego dopuszczalnego stopnia kompresji dla bitmap i dźwięków. Poziom jakości zapisu JPEG dla eksportowanych plików SWF możesz ustawić w oknie Publish Settings. Możliwe jest także ustawienie stopnia kompresji oddzielnie dla dźwięków strumieniowych i zdarzeń dźwiękowych, dzięki czemu możesz zachować wyższą jakość dźwięku dla narracji i muzyki - kosztem niższej jakości w przypadku zdarzeń dźwiękowych towarzyszących klikaniu przycisków (rys. 12.51). lub Unikaj używania polecenia Trace Bitmap do tworzenia obrazów wektorowych stanowiących dokładne odwzorowanie importowanych bitmap. Złożoność zwektoryzowanej bitmapy może bardziej zwiększyć rozmiar pliku i zmniejszyć wydajność, niż dzieje się to w przypadku używania samej zaimportowanej bitmapy. lub Importuj bitmapy i dźwięki w rozmiarach dokładnie odpowiadających tym, jakich planujesz użyć we Flashu. Chociaż edycja we Flashu jest możliwa, lepiej jest importować tylko te informacje, których potrzebujesz i dzięki temu zaoszczędzić na wielkości pliku. Przykładowo, nie importuj bitmapy, którą we Flashu będziesz musiał zmniejszyć o 50 procent. Lepiej najpierw ją zmniejsz, a dopiero potem zaimportuj do Flasha.
|
lub Animuj pojedyncze symbole zamiast grup. W przypadku animacji grup, muszą być one wczytywane w całości, podczas gdy symbole mogą być ładowane pojedynczo. Ponadto grupy nie pozwalają na używanie efektów klonów, np. tinty, jasności czy przezroczystości. Używanie w animacjach grup utrudnia edycję, jako że musisz dokonywać tej samej edycji z osobna na każdej grupie, która wchodzi w skład ujęć kluczowych animacji. lub Unikaj tworzenia animacji, w których pojawia się wiele obiektów poruszających się w tym samym czasie, ewentualnie tych, które mają duże obszary zmian. Obydwie sytuacje spowalniają proces odtwarzania filmu. lub Rozdzielaj grupy w obrębie symboli w celu ich uproszczenia. Kiedy już będziesz usatysfakcjonowany ilustracją w symbolu, rozdziel grupy na kształty w celu jej „spłaszczenia”. Flash będzie miał do zapamiętania mniej krzywych i tym samym szybciej dokona animacji klonu symbolu. Także efekty przezroczystości klonu będą wtedy oddziaływać na cały symbol, a nie na indywidualne grupy w jego obrębie (rys. 12.52). |
Rys. 12.52. Symbol zdefiniowany z użyciem oddzielnych grup (u góry z lewej) zawiera więcej informacji (u góry w środku) i może prowadzić do powstawania niepożądanych efektów przezroczystości (u góry z prawej). Symbol zdefiniowany jako kształt (u dołu z lewej) zawiera mniej informacji (u dołu w środku) i stanie się przezroczysty jako pojedyncza jednostka (u dołu z prawej)
lub Z przejść tonalnych kolorów i przezroczystości staraj się korzystać możliwie najrzadziej. lub Korzystaj z palety Effect do zmiany koloru tinty i jasności klonów - w miejsce tworzenia oddzielnych symboli różnych kolorów. lub Optymalizuj krzywe, unikając stosowania specjalnych stylów linii (np. linii kropkowanej) i używając raczej narzędzia Pencil, niż Brush. Staraj się też redukować złożoność krzywych za pomocą polecenia Modify/Optimize (Ctrl+Alt+Shift+C). lub Korzystaj z niewielu fontów i dołączaj do plików tylko niezbędne czcionki. |
|
Unikanie Kiedy będziesz starał się rozwiązać problemy związane z funkcjonowaniem twojego filmu Flasha, wiedz, że istnieją pewne oczywiste miejsca, od których powinieneś rozpocząć poszukiwania źródła zamieszania. Błędy takie polegają zazwyczaj na pomijaniu cudzysłowów, względnych ścieżek dostępu czy nazw klonów. Zwróć szczególną uwagę na poniższą listę błędów, żeby uniknąć podobnych sytuacji we własnych projektach Flasha.
W celu
lub Sprawdzaj dwukrotnie ścieżki dostępu do klipów filmowych, zmiennych i obiektów. lub Pamiętaj o nadawaniu nazw klonom klipów filmowych. lub Sprawdzaj, czy wyrażenia ActionScript zawierają właściwie rozmieszczone nawiasy i klamry. Przykładowo, wyrażenia należące do instrukcji if lub onClipEvent powinny znajdować się między klamrami. lub Sprawdzaj, czy dla klonów przycisków lub klipów filmowych zostały wybrane właściwe zdarzenia (zdarzenie myszy czy zdarzenia klipu filmowego).
|
Umieszczaj akcję stop w pierwszym ujęciu kluczowym klipu filmowego, żeby zabezpieczyć go przed automatycznym odtwarzaniem i zapętleniem. lub Upewniaj się, że symbol przycisku zawiera zdefiniowany obszar aktywny. lub W celu sprawdzania prostych akcji i przycisków - pamiętaj o wybraniu poleceń Enable Simple Frame Actions oraz Enable Simple Buttons z menu Control. lub Pamiętaj, że domyślnym ustawieniem dla twojego filmu Flasha w trybie testowym jest odtwarzanie w pętli. Wskazówka
|
Rys. 12.53. Dostęp do palety Macromedia Dashboard uzyskasz w menu Help. Zajrzyj tam w poszukiwaniu najświeższych wieści, porad i samouczków
|
Rozdział 12.
414
413
Zarządzanie zawartością i rozwiązywanie problemów
12
Zarządzanie zawartością
i rozwiązywanie problemów
Zapisuje zawartość okna skryptu w formie pliku tekstowego
Zmienia rozmiary wyświetlania okna skryptu
Plik SWF używający współdzielonych symboli z pliku sharedLibrary.swf
Plik SWF używający współdzielonych symboli z lokalizacji sharedFolder/ sharedLibrary.swf
Plik sharedLibrary.swf zawierający symbole przeznaczone do współdzielenia
Wyświetla akcje niepolecane do wykorzystania
Wyróżnia kolorami różne elementy skryptu
Zaznacza wybraną linię wyrażenia
Drukuje zawartość okna skryptu
Plik FLA
Rys. 12.10. Z menu Options współdzielonej biblioteki wybierz Shared Library Properties
Folder sharedFolder
Plik sharedLibrary.swf zawierający współdzielone symbole
Oddzielne filmy SWF
Współny symbol we współdzielonej bibliotece
Importuje kod ActionScript z zewnętrznego pliku tekstowego
Sprawdza okno skryptu w poszukiwaniu błędów
Zastępuje dane słowo lub frazę innymi
W oknie skryptu wyszukuje określonego słowa lub frazy
Plik FLA
Plik sharedLibrary.fla
Plik tekstowy ActionScript
Plik sharedLibrary.swf
Plik SWF
Plik SWF
Kliknij, żeby zwinąć lub rozwinąć
Pole Find (znajdź)
Obszar wyświetlania
Przyciski sposobu wyświetlania zawartości
Rys. 12.29. Wpisanie w polu Find nazwy ball spowoduje wyświetlenie wszystkich klonów symbolu o tej nazwie
Klip filmowy myMovieClip (przeciągany)
Klip filmowy rock
Hierarchia klipów filmowych
Okno wyświetlania
Zakładki Properties, Variables i Watch
Miejsce osadzenia w hierarchii
Zarządzanie zawartością
Tworzenie współdzielonych bibliotek
Tworzenie współdzielonych bibliotek
Współdzielenie fontów
Edytowanie skryptu
Dołączanie zewnętrznych skryptów
Paleta Movie Explorer
Paleta Movie Explorer
Wyświetlanie zmiennych i obiektów
Wyświetlanie zmiennych i obiektów
Śledzenie zmiennych w oknie Output
Posługiwanie się paletą Debugger
Posługiwanie się paletą Debugger
Optymalizowanie filmu
Optymalizowanie filmu
Unikanie najczęstszych błędów
Tworzenie współdzielonych bibliotek
Tworzenie współdzielonych bibliotek
Współdzielenie fontów
Edytowanie skryptu
Edytowanie skryptu
Dołączanie zewnętrznych skryptów
Paleta Movie Explorer
Paleta Movie Explorer
Wyświetlanie zmiennych i obiektów
Śledzenie zmiennych w oknie Output
Śledzenie zmiennych w oknie Output
Posługiwanie się paletą Debugger
Posługiwanie się paletą Debugger
Optymalizowanie filmu
Optymalizowanie filmu
Unikanie najczęstszych błędów