Optymalizacja dokumentów programu Animate

Pliki o dużych rozmiarach są wolniej pobierane i wolniej odtwarzane. Projektant ma kilka możliwości przygotowania dokumentu do właściwego odtwarzania. Niektóre czynności przygotowawcze (optymalizacyjne) są wykonywane automatycznie przez program Animate w procesie publikowania dokumentu. Przed wyeksportowaniem pliku można wykonać inne jeszcze czynności optymalizacyjne. Przed opublikowaniem plik SWF można także skompresować. Po wprowadzeniu jakichkolwiek zmian należy przetestować dokument na różnych komputerach, w różnych systemach operacyjnych i przy różnych połączeniach z Internetem.

Optymalizacja dokumentów

  • Wszelkie elementy (animowane lub inne), które pojawiają się w pliku wielokrotnie, należy definiować za pomocą symboli.

  • Wszędzie, gdzie jest to możliwe, należy tworzyć animacje z klatkami pośrednimi. Animacje z klatkami pośrednimi zajmują mniej miejsca niż sekwencje klatek kluczowych.

  • W animacjach należy stosować klipy filmowe, a nie symbole graficzne.

  • W każdej klatce kluczowej należy maksymalnie ograniczyć obszar podlegający zmianom.

  • Nie należy animować elementów bitmap; obrazy bitmapowe powinny służyć jako tło lub elementy statyczne.

  • Wszędzie, gdzie jest to możliwe, dźwięk należy zapisywać w oszczędnym formacie mp3.

Optymalizacja elementów i linii

  • Elementy należy grupować.

  • Za pomocą warstw należy oddzielić zmienne elementy animacji od elementów statycznych.

  • Za pomocą polecenia Modyfikuj > Kształt > Optymalizuj należy zminimalizować liczbę linii definiujących kształty.

  • Należy ograniczyć liczbę linii specjalnego typu, np. przerywanych, kropkowanych i postrzępionych. Linie ciągłe zajmują najmniej pamięci. Linie utworzone za pomocą narzędzia Ołówek wymagają mniej pamięci niż pociągnięcia pędzlem.

Optymalizacja tekstu i czcionek

  • Należy ograniczyć liczbę czcionek i stylów czcionek. Nie należy używać zbyt wielu czcionek osadzonych, ponieważ zwiększają one rozmiar pliku.

  • W ramach opcji Osadź czcionki należy zaznaczyć tylko wybrane znaki, a nie całą czcionkę.

Optymalizacja kolorów

  • Zaleca się tworzenie wielu instancji tego samego symbolu i przypisywanie im różnych kolorów. Umożliwia to menu Kolor w oknie inspektora właściwości symbolu.

  • Za pomocą panelu Kolor (Okno > Kolor) należy dopasować paletę kolorów dokumentu do palety kolorów przeglądarki.

  • Należy ograniczyć stosowanie gradientów. Wypełnienie obszaru gradientem wymaga o 50 bajtów więcej niż wypełnienie go zwykłym kolorem.

  • Należy ograniczyć efekty przezroczystości alfa, ponieważ spowalniają one odtwarzanie.

Przyspieszanie odtwarzania dokumentu

Aby przyspieszyć wyświetlanie dokumentu, należy skorzystać z poleceń menu Widok i wyłączyć funkcje renderowania (wizualizacji), które wymagają dodatkowych obliczeń.

Żadne z tych poleceń nie ma wpływu na to, jak program Animate eksportuje dokument. Określenie jakości wyświetlania dokumentów z programu Animate w przeglądarce umożliwiają parametry object i embed. Przy publikowaniu dokumentu (za pomocą polecenia Publikuj) jakość jest wybierana automatycznie.

  1. Należy wybrać polecenie Widok > Tryb podglądu i ustawić następujące opcje:

    Kontury

    Są wyświetlane tylko kontury kształtów i cienkie linie (niezależnie od oryginalnej grubości linii). Dzięki temu zawartość pliku pojawia się szybciej i łatwiej jest zmienić kształty elementów graficznych.

    Szybko

    Pozwala wyłączyć wygładzanie i wyświetlić wszystkie kolory oraz style linii.

    Wygładzanie

    Pozwala włączyć wygładzanie linii, kształtów i bitmap, dzięki czemu obraz ma lepszą jakość. Rysowanie przebiega wolnie niż w przypadku zaznaczenia opcji Szybko. Wygładzanie działa najlepiej, gdy komputer jest wyposażony w kartę graficzną zapewniającą tysiące (karta 16‑bitowa) lub miliony (karta 24‑bitowa) kolorów. W trybie 16 lub 256 kolorów czarne linie są wygładzane; natomiast jeśli chodzi o kolory, to mogą one wyglądać lepiej w trybie szybkiego wyświetlania.

    Wygładzanie tekstu

    Pozwala wygładzić krawędzie tekstu. Funkcja działa najlepiej w przypadku dużych czcionek, może działać wolno w przypadku dużej ilości tekstu. Zwykle funkcja ta jest włączona.

    Pełny

    Na stole montażowym jest wizualizowana cała zawartość pliku. Wyświetlanie może zostać spowolnione.

Optymalizacja grafiki i animacji

Przed przejściem do etapu optymalizacji animacji i grafiki, należy wyraźnie sprecyzować swoje oczekiwania. Przede wszystkim należy określić planowany rozmiar pliku i pożądaną długość animacji. Należy też wypróbować różne ustawienia.

Optymalizując grafikę i animację, należy przestrzegać następujących zasad:

  • Nie należy używać gradientów. Wymagają one dużej liczby kolorów i obliczeń, a to obciąża pamięć i procesor komputera.

  • Z tego samego powodu należy ograniczyć stosowanie przezroczystości i efektów alfa.

    Animacje obiektów o elementach przezroczystych mocno obciążają procesor i powinny zostać ograniczone do minimum. Szczególnie wymagające pod tym względem są animacje przezroczystych bitmap — należy je ograniczyć do absolutnego minimum lub w ogóle wyeliminować.

    Uwaga: Najlepszy format importowania obrazów bitmapowych do programu Animate to PNG — format natywny programu Macromedia Fireworks firmy Adobe. W plikach PNG do opisu poszczególnych pikseli są dołączane dane RGB i dane alfa. Dzięki importowaniu obiektów graficznych z programu Fireworks do programu Animate w formacie PNG istnieje możliwość ich edycji w pliku FLA.

  • Bitmapy powinny być optymalizowane bez stosowania zbyt dużego współczynnika kompresji. Dla potrzeb Internetu wystarczająca rozdzielczość to 72 dpi. Skompresowanie obrazu zmniejsza początkowy rozmiar pliku, ale zbyt duża intensywność kompresji pogarsza jakość obrazu. Należy sprawdzić, czy ustawienia jakości JPEG z okna dialogowego Ustawienia publikowania nie określają zbyt dużej intensywności kompresji. W większości wypadków zaleca się stosowanie wektorowej reprezentacji grafiki. Zapis wektorowy pozwala uzyskać mniejszy plik, ponieważ przy jego użyciu są opisywane nie piksele obrazów, lecz ich kształty. Inna metoda zmniejszenia rozmiaru pliku to ograniczenie liczby kolorów.

    Uwaga: Należy unikać powiększania oryginalnych wymiarów bitmap, ponieważ ich powiększanie obniża jakość obrazu i nadmiernie obciąża procesor.

  • Właściwość _visible należy ustawić jako false; nie należy natomiast zmieniać poziomu _alpha (na 0 lub 1) w pliku SWF. Obliczanie poziomu _alpha obiektów na stole montażowym mocno obciąża procesor komputera. Jeśli obiekt uczyni się niewidocznym, procesor i pamięć komputera będą mniej obciążone, co zwiększy płynność animacji. Zamiast wyładowywać i ponownie załadowywać zasoby, lepiej jest ustawić właściwość _visible jako false i zapewnić w ten sposób mniejsze obciążenie procesora.

  • Należy zmniejszyć liczbę linii i punktów zdefiniowanych w pliku SWF. Okno dialogowe Optymalizacja krzywych (Modyfikuj > Kształt > Optymalizuj) pozwala zmniejszyć liczbę wektorów definiujących kształty. Wyższy stopień optymalizacji zapewnia opcja Użyj wielu przejść. Zoptymalizowanie grafiki zmniejsza początkowy rozmiar pliku, ale zbyt duża intensywność kompresji pogarsza jakość obrazu. Zoptymalizowanie krzywych zmniejsza rozmiar pliku oraz zwiększa efektywność pliku SWF. Optymalizację krzywych i punktów zapewniają również pewne zewnętrzne narzędzia, które jednak działają bardzo różnie.

 

W celu uzyskania najlepszego efektu należy wypróbować różne narzędzia tego typu.

Wybierając wyższe szybkości odtwarzania animacji (mierzone w liczbie klatek na sekundę, czyli w jednostkach fps), uzyskuje się bardziej płynne animacje, ale też obciąża się bardziej procesor komputera. Należy wypróbować różne szybkości odtwarzania i wybrać ustawienie optymalne.

Przykład animacji ze skryptem znajduje się na stronie internetowej przykładów programu Animate pod adresem www.adobe.com/go/learn_fl_samples_pl. Należy pobrać i wyodrębnić plik zip Samples i przejść do folderu ActionScript2.0/Animation, aby otworzyć plik przykładu.

Szybkość odtwarzania a wydajność animacji

Wprowadzane do aplikacji animacje mogą mieć różne szybkości odtwarzania. Szybkość ich odtwarzania może mieć wpływ na wydajność pliku SWF oraz szybkość komputera. Wybór zbyt dużej szybkości odtwarzania może prowadzić do różnych problemów — zwłaszcza wtedy, gdy używa się wielu zasobów lub animacje są opisane za pomocą kodu ActionScript.

Szybkość odtwarzania nie może jednak być za mała, ponieważ znika wtedy wrażenie płynności animacji. Przykładowo: wybór szybkości 12 fps (za pomocą Inspektora właściwości) powoduje, że w ciągu każdej sekundy program odtwarza 12 klatek animacji. Przy szybkości 24 fps animacja wydaje się bardziej płynna niż przy szybkości 12 fps. Animacja taka jest jednak odtwarzana szybciej, co powoduje, że trwa krócej (zajmuje mniejszą liczbę sekund). Dlatego też, aby animacja o większej szybkości odtwarzania miała określony czas trwania (powiedzmy 5 sekund), musi zawierać więcej klatek niż animacja o mniejszej szybkości odtwarzania (co zwiększa rozmiar pliku animacji). Animacja 5-sekundowa o szybkości 24 fps zajmuje zwykle więcej miejsca niż animacja 5-sekundowa o szybkości 12 fps.

Uwaga:

Jeśli przy tworzeniu animacji opartych na skryptach jest używane zdarzenie onEnterFrame, to animacje są odtwarzane z szybkością określoną w dokumencie (przypomina to generowanie klatek pośrednich na osi czasu). Zamiast zdarzenia onEnterFrame można użyć zdarzenia setInterval (więcej informacji w podręczniku ActionScript 2.0 Language Reference). W tym wypadku zamiast stałej szybkości odtwarzania obowiązuje stały interwał wywoływania funkcji. Podobnie jak w przypadku zdarzenia onEnterFrame, im częściej zdarzeniu setInterval będzie towarzyszyło wywoływanie funkcji, tym więcej zasobów komputera będzie wymagała animacja.

Należy używać najmniejszej możliwej szybkości odtwarzania, która powala zachować wrażenie płynności animacji. Dzięki temu komputery użytkowników nie będą nadmiernie obciążone. Wysokie szybkości odtwarzania (większe niż 30 lub 40 fps) bardzo mocno obciążają procesor, nie powodują natomiast zauważalnych zmian wyglądu animacji.

Wyboru szybkości odtwarzania animacji należy dokonać na jak najwcześniejszym etapie projektowania. Podczas testowania plików SWF należy sprawdzać uważnie czasy trwania animacji i wielkość ich plików. Szybkość odtwarzania ma największy wpływ na czas trwania animacji.

Filtry i wydajność pliku SWF

Jeśli aplikacja zawiera zbyt wiele filtrów, to zwiększa się jej zapotrzebowanie na pamięć, a to zmniejsza istotnie wydajność programu Flash Player. Ponieważ klip filmowy z dołączonymi filtrami wykorzystuje dwie 32-bitowe bitmapy, aplikacja zawierająca takie klipy także zużywa dużo pamięci. Jeśli aplikacja ma wymienione wyżej własności, system operacyjny komputera może wygenerować błąd braku pamięci. Na komputerach wyposażonych w modemy błędy braku pamięci są raczej rzadkie. Mogą jednak wystąpić, jeśli aplikacja zawiera wiele efektów opartych na filtrach (np. jeśli na stole montażowym znajduje się tysiące bitmap).

Błędom braku pamięci mogą towarzyszyć następujące objawy:

  • Tablica filtrów jest pomijana.

  • Klip filmowy jest wizualizowany na podstawie reprezentacji wektorowej.

  • Nie są buforowane żadne bitmapy klipu filmowego.

    Po wystąpieniu błędu braku pamięci klip filmowy nigdy nie odwołuje się do tablicy filtrów ani do bufora bitmap. Inny czynnik, który może mieć wpływ na wydajność odtwarzacza, to wartości parametrów jakości poszczególnych filtrów. Przy wyższych wartościach tych parametrów, aplikacja wykazuje wyższe zapotrzebowanie na pamięć i czas procesora; przy niższych wartościach aplikacja potrzebuje mniej zasobów. Dlatego też, należy ograniczyć liczbę filtrów i w miarę możliwości używać jak najmniejszego ustawienia jakości.

    Uwaga: Jeśli obiekt o wymiarach 100 na 100 pikseli zostanie powiększony raz, czyli uzyska wymiary 200 na 200 pikseli, będzie zajmował czterokrotnie więcej pamięci niż pierwotnie. Jeśli zostanie powiększony jeszcze dwa razy, czyli uzyska wymiary 800 na 800 piksel, jego zapotrzebowanie na pamięć wzrośnie aż 64-krotnie (w stosunku do pierwotne obiektu o wymiarach 100 na 100 pikseli). Dlatego też, jeśli w pliku SWF są używane filtry, należy wyłączyć w menu kontekstowym pliku SWF opcje powiększania.

    Częstą przyczyną błędów są nieprawidłowe typy parametrów. Niektóre parametry filtrów mają też pewien dozwolony zakres. Jeśli zostanie wybrana wartość spoza tego zakresu, program zmienia ją na wartość prawidłową. Na przykład, wartość parametru jakości, która w przypadku standardowych operacji należy do zakresu od 1 do 3, ma dozwolony zakres od 1 do 15. Wszelkie wartości wyższe od 15 są zamieniane na wartość 15.

    W przypadku niektórych konstruktorów obowiązują ograniczenia co do długości tablic będących parametrami wejściowymi. Na przykład, jeśli przy tworzeniu filtra konwolucji lub filtra macierzy kolorów zostanie podana nieprawidłowa tablica (o nieprawidłowym rozmiarze), konstruktor zwróci błąd i filtr nie zostanie utworzony. Jeśli następnie filtr zostanie użyty jako jedna z pozycji tablicy filtrów klipu filmowego, zostanie zignorowany.

    Wskazówka: W przypadku filtra rozmywającego parametry blurX i blurY (rozmycieX i rozmycieY) warto ustawić jako potęgi dwójki (to znaczy 2, 4, 8, 16 i 32), ponieważ takie wartości są przetwarzane szybciej i zapewniają wzrost wydajności programu o 20–30%.

Buforowanie bitmap i wydajność pliku SWF

Buforowanie bitmap pozwala zwiększyć wydajność statycznych (czyli nie zmieniających się) klipów filmowych. Jeśli właściwość MovieClip.cacheAsBitmap lub Button.cacheAsBitmap ma wartość true, program Flash Player buforuje wewnętrzną reprezentację bitmapy klipu filmowego lub przycisku. Dzięki temu można uzyskać większą wydajność klipów filmowych ze złożonymi obiektami wektorowymi. Wszelkie dane wektorowe klipu filmowego, który zawiera buforowaną bitmapę, są wizualizowane w ramach bitmapy, a nie na głównym stole montażowym.

Uwaga:

Bitmapa jest kopiowana na główny stół montażowy w postaci nierozciągniętych i nieobróconych pikseli, które są przyciągane do najbliższych pikseli. Piksele są kojarzone z obiektem nadrzędnym zgodnie z zasadą jeden-na-jeden. Jeśli granice bitmapy ulegną zmianie, bitmapa zostanie utworzona ponownie, a nie rozciągnięta.

Szczegółowe informacje dotyczące buforowania instancji przycisku lub klipów filmowych można znaleźć w następujących tematach:

  • Informacje o buforowaniu i przewijaniu klipów filmowych w kodzie ActionScript zawiera dokumentacja Nauka języka ActionScript 2.0

  • Informacje o buforowaniu klipów filmowych zawiera dokumentacja Nauka języka ActionScript 2.0

    Właściwość cacheAsBitmap powinna być stosowana do takich klipów filmowych, które nie są zbyt często obracane ani skalowane, a zawierają raczej elementy statyczne. Gdy klipy takie zmieniają położenie, właściwość cacheAsBitmap zapewnia lepszą wydajność programu (chodzi o zmiany współrzędnych x i y).

    Po włączeniu funkcji buforowania klipu filmowego powstaje powierzchnia, która daje szereg korzyści, np. umożliwia szybszą wizualizację skomplikowanych animacji wektorowych. W niektórych sytuacjach jednak włączenie buforowania nie zwiększa wydajności programu, lecz nawet ją obniża.

    Całkowita wydajność buforowania danych zależy od takich czynników jak złożoność danych wektorowych obiektów, intensywność zmian danych oraz ustawienie właściwości opaqueBackground. Jeśli zmiany dotyczą niewielkich obszarów, różnica między stosowaniem powierzchni i wykorzystywaniem danych wektorowych jest minimalna. Przed udostępnieniem aplikacji użytkownikom należy przetestować obydwa scenariusze.

Kiedy należy używać buforowania bitmap?

Poniżej wymieniono typowe okoliczności, w których funkcja buforowania bitmap może przynieść zauważalne korzyści.

Złożony obraz tła

Tło aplikacji stanowi złożony i pełen detali obraz, opisany wektorowo. Aby zwiększyć wydajność programu, należy zaznaczyć zawartość okna, zapisać ją w postaci klipu filmowego i przypisać właściwości opaqueBackground wartość true. Tło zostanie przekonwertowane na bitmapę, dzięki czemu będzie można je szybko odświeżać; dzięki temu z kolei animacja będzie szybciej odtwarzana.

Przewijanie pola tekstowego

Aplikacja zawiera przewijalne pole tekstowe z dużą ilością tekstu. Pole tekstowe należy umieścić w klipie filmowym, który będzie można przewijać w określonych granicach (właściwość scrollRect) dzięki włączeniu szybkiego przewijania pikseli. Kiedy użytkownik będzie przewijał klip filmowy, przewijane piksele będą generowane w nowym obszarze; program nie będzie natomiast ponownie generował całego pola tekstowego.

System obsługi okien

Aplikacja daje możliwość wyświetlania wielu, zachodzących na siebie okien. Każde z okien można zamknąć lub otworzyć (np. mogą to być okna przeglądarki). Jeśli poszczególne okna zostaną wyróżnione jak powierzchnie (właściwość cacheAsBitmap ma wartość true), będą one od siebie niezależne i będą buforowane. Użytkownicy będą mogli przeciągać okna, również nakładać je na siebie, przy czym nie będzie konieczności ponownego generowania wektorowej zawartości okien.

Kiedy należy unikać buforowania bitmap?

Niepoprawne wykorzystywanie funkcji buforowania bitmap może mieć negatywny wpływ na plik SWF. Przygotowując plik FLA z powierzchniami, należy przestrzegać następujących zasad:

  • Nie należy używać zbyt wielu powierzchni (klipów filmowych z aktywną funkcją buforowania). Każda z powierzchni wykorzystuje więcej pamięci niż zwykły klip filmowy; powierzchnie należy uaktywniać tylko w razie potrzeby.

  • Buforowana bitmapa może zużywać o wiele więcej pamięci niż zwykły klip filmowy. Na przykład, jeśli klip filmowy na stole montażowym ma wymiary 250 na 250 pikseli, to jego wersja buforowana może zająć 250 KB, podczas gdy zwykły klip filmowy zajmuje tylko 1 KB.

  • Należy unikać powiększania elementów na buforowanych powierzchniach. Zbyt intensywne stosowanie funkcji buforowania bitmap przyczynia się do dużego obciążenia pamięci (zobacz poprzedni punkt), zwłaszcza w przypadku powiększania obiektów.

  • Powierzchnie powinny być stosowane w przypadku raczej statycznych klipów filmowych (nie animowanych). Klip może być przeciągany lub przesuwany, ale jego zawartość nie powinna w zbyt dużym stopniu się zmieniać. Na przykład, jeśli klip zostanie obrócony lub przekształcony, niektóre dane powierzchni staną się danymi wektorowymi, co będzie miało negatywny wpływ na wydajność pliku SWF.

  • Przemieszanie danych powierzchni z danymi wektorowymi powoduje, że program Flash Player (a czasami i inne programy na komputerze) musi wykonywać zbyt wiele obliczeń. Dlatego też zaleca się grupowanie powierzchni; np. wtedy, gdy aplikacje muszą obsługiwać wiele okien.

Praca ze składnikami w programie Flash Player

Składniki dodaje się do aplikacji w celu zaimplementowania pewnych dodatkowych funkcji. Po dodaniu składników plik aplikacji staje się większy. Składniki dziedziczą swoje właściwości. Dodanie do dokumentu programu Animate pierwszego składnika zwiększa rozmiar dokumentu, ale dodawanie kolejnych — opartych na tej samej platformie — nie musi mieć tego skutku. Zwykle dzieje się tak, że pierwszych kilka składników powoduje powiększanie się pliku, ale począwszy od pewnego momentu, kiedy nie są już potrzebne nowe klasy (bo nowe składniki odwołują się do już dodanych klas), plik nie powiększa się.

Należy pamiętać jednak, że jeśli składniki nie korzystają z tej samej infrastruktury, mogą powodować bardzo intensywne powiększanie się pliku SWF. Na przykład, składnik XMLConnector zajmuje 17K (plik SWF powiększa się o 17K), a składniki typu TextInput zajmują 24K. Jeśli jednak do dokumentu zostanie dodany składnik ComboBox, nie wykorzystujący tej samej infrastruktury co poprzednie składniki, dokument powiększy się o 28K. Ponieważ składnik XMLConnector wykorzystuje wiązania danych, do pliku SWF zostanie dodane dodatkowe 6K. Dokument, do którego zostaną dołączone wszystkie wymienione składniki, powiększy się zatem o 77K. Reasumując więc: przy dodawaniu składników do pliku SWF należy na bieżąco kontrolować jego rozmiar.

Składniki muszą znajdować się w głównej bibliotece pliku SWF. W głównej bibliotece aplikacji muszą być przechowywane nawet te składniki, które są wymagane przez podrzędne pliki SWF, wczytywane w czasie wykonywania aplikacji. Przed udostępnieniem aplikacji należy sprawdzić, czy dodane do niej składniki działają poprawnie. Składniki wydłużają czas wczytywania głównego pliku SWF. Należy pamiętać też, że główna biblioteka nie jest dziedziczona ani współużytkowana przez podrzędne pliki SWF, wczytywane do głównego pliku. Każdy podrzędny plik SWF musi zostać wczytany ze swoją własną kopią tych samych składników.

Jeśli publikowany plik SWF ma być zgodny ze starszymi wersjami programu, należy używać tylko takich składników, które zapewnią pożądany stopień zgodności. Poniższa tabela zawiera informacje o dostępności składników w różnych wersjach programu Flash Player:

Składniki

Flash Player 6 (6.0.65.0) i starsze wersje

Flash Player 6 (6.0.65.0)

Flash Player 7 i 8

Flash Player 9

ActionScript 3.0

Nie obsługiwany

Nie obsługiwany

Nieobsługiwany

Obsługiwany

ActionScript 2.0

Obsługiwany

Obsługiwany

Obsługiwany

Obsługiwany

Zestaw składników interfejsu V2 UI

Nieobsługiwany

Obsługiwany

Obsługiwany

Obsługiwany

Składniki multimedialne

Nie obsługiwany

Nieobsługiwany

Obsługiwany

Obsługiwany

Składniki danych

Nie obsługiwany

Nieobsługiwany

Obsługiwany

Obsługiwany

Aby składniki interfejsu V2 UI działały, w ustawieniach publikowania nie należy zaznaczać opcji Optymalizuj dla programu Flash Player 6r65.

Optymalizacja stylów i wydajności składników

Gdy jest używany język ActionScript 2.0, to jednym wywołań najbardziej obciążających procesor komputera jest wywołanie metody setStyle. Wynika to ze sposobu implementacji metody setStyle. Metoda setStyle nie zawsze jest używana, ale jeśli jest już używana, należy mieć na uwadze jej wymagania co do czasu procesora.

Aby uniknąć nadmiernego obciążenia procesora, wszelkie style można zmodyfikować przed ich wczytaniem i zastosowaniem do obiektów w pliku SWF. W takiej sytuacji nie trzeba będzie wywoływać metody setStyle.

Aby zmaksymalizować wydajność obsługi stylów, właściwości poszczególnych obiektów należy ustawiać wtedy, gdy są one wywoływane. Gdy obiekty są dynamicznie wywoływanie i umieszczane na stole montażowym, należy ustawić właściwości klasy initObj. Trzeba w tym celu wywołać metodę createClassObject(), np. tak jak w poniższym kodzie ActionScript:

createClassObject(ComponentClass, "myInstance", 0, {styleName:"myStyle", color:0x99CCFF});

W przypadku obiektów umieszczanych bezpośrednio na stole montażowym można użyć metody onClipEvent() albo skorzystać z podklas (strategia zalecana). Informacje na temat podklas zawiera sekcja Informacje o pisaniu podklas w dokumentacji Nauka języka ActionScript 2.0.

Jeśli zachodzi potrzeba zmiany stylu składników, najlepsza metoda polega na wykorzystaniu składnika Loader. Jeśli zachodzi potrzeba zaimplementowania wielu stylów w różnych składnikach, każdy składnik należy umieścić w osobnym pliku SWF. Zmiana stylów w obrębie składnika Loader i ponowne wczytanie pliku SWF spowoduje ponowne utworzenie składników w pliku SWF. Po ponownym utworzeniu składnika zostanie opróżniony bufor stylów, a styl składnika zostanie zresetowany i ponownie wywołany.

Uwaga:

Aby zastosować jeden styl do wszystkich wystąpień składnika w pliku SWF, należy przeprowadzić globalną zmianę stylu za pomocą metody _global.styles.ComponentName.

Korzystanie z udostępnianych bibliotek czasu wykonywania

Chcąc skrócić czas wczytywania aplikacji, można skorzystać z udostępnianych bibliotek czasu wykonywania. Zwykle biblioteki takie są potrzebne w przypadku dużych aplikacji lub w sytuacjach, gdy wiele aplikacji z tej samej witryny wykorzystuje te same składniki lub symbole. Dzięki umieszczeniu wspólnych zasobów plików SWF w lokalizacji zewnętrznej, czyli bibliotece, nie trzeba wciąż na nowo wczytywać tych samych klas. Pierwszy z plików SWF odwołujących się do udostępnionej biblioteki jest wczytywany dłużej niż inne, ponieważ musi zostać wczytany i sam plik, i biblioteka. Biblioteka zostaje zapisana w buforze na komputerze użytkownika i wszystkie kolejne pliki SWF będą mogły się do niej odwoływać. Rozwiązanie takie pozwala istotnie skrócić czas wczytywania złożonych aplikacji.

Wyświetlanie znaków specjalnych

Systemy operacyjne komputerów odwołują się zawsze do konkretnej strony kodowej, związanej z danym regionem. Na przykład, komputer działający w Japonii korzysta z innej strony kodowej niż komputer w Anglii. Program Flash Player w wersji 5 (lub starszej) wyświetla tekst na podstawie strony kodowej; natomiast program Flash Player w wersji 6 (lub nowszej) wyświetla tekst zgodnie ze standardem Unicode. Ponieważ zestaw znaków Unicode obejmuje znaki ze wszystkich języków, wykorzystujące go systemy są bardziej uniwersalne niż systemy odwołujące się do strony kodowej. Większość nowszych aplikacji korzysta ze standardu Unicode.

W programie Flash Player 6 i jego nowszych wersjach można wyświetlać znaki specjalne przy użyciu specjalnych sekwencji tymczasowej zmiany kodowania na Unicode. Jeśli jednak zostaną użyte niepoprawne sekwencje Unicode albo wczytany tekst nie będzie zakodowany w formacie UTF‑8 lub UTF‑16 (Unicode), to niektóre znaki specjalne będą wyświetlane nieprawidłowo. Zestaw kodów standardu Unicode można znaleźć na witrynie internetowej Unicode.org. Listę najczęściej używanych sekwencji Unicode zamieszczono w dalszej części niniejszego rozdziału.

W aplikacjach nie obsługujących standardu Unicode znaki są wyświetlane na podstawie strony kodowej systemu operacyjnego. W ich wypadku wyświetlane znaki zależą od używanej strony kodowej. Dlatego też są one wyświetlane poprawnie, o ile strona kodowa systemu operacyjnego jest zgodna ze stroną kodową aplikacji. Strona kodowa, z wykorzystaniem której utworzono plik SWF, powinna być zgodna ze stroną kodową na komputerze użytkownika. Korzystanie ze stron kodowych nie ma sensu, jeśli tworzone aplikacje będą użytkowane w różnych krajach; w takich wypadkach należy korzystać ze standardu Unicode.

Zastosowanie właściwości System.useCodepage sprawia, że w pliku SWF będzie używana strona kodowa systemu, a nie system znaków Unicode.

Właściwości tej należy używać tylko wtedy, gdy do aplikacji jest wczytywany tekst niezgodny ze standardem Unicode, a ponadto tekst ten zakodowano przy użyciu takiej samej strony kodowej jak strona stosowana na komputerze użytkownika. Jeśli są spełnione obydwa warunki, tekst jest wyświetlany bez żadnych problemów. Jeśli obydwa warunki nie są spełnione, należy użyć standardu Unicode i sformatować tekst za pomocą skrótów Unicode z klawiszem Esc. Oto przykład kodu ActionScript 2.0 z sekwencją Unicode:

this.createTextField("myText_txt", 99, 10, 10, 200, 25); 
myText_txt.text = "this is my text, \u00A9 2004";

Powyższy kod ActionScript powoduje utworzenie pola tekstowego i wstawienie w tym polu symbolu praw autorskich (©).

Za pomocą właściwości useCodepage można sprawić, aby w pliku SWF była używana strona kodowa systemu operacyjnego. Kiedy program Animate eksportuje plik SWF, domyślnie jest używane kodowanie Unicode, a właściwość System.useCodepage ma wartość false. Jeśli występują problemy z poprawnym wyświetlaniem znaków specjalnych lub wyświetlaniem tekstu w innych językach, czasami problemom tym można zaradzić poprzez odwołanie się do strony kodowej systemu. Należy pamiętać jednak, że użycie właściwości System.useCodePage stanowi wyjście ostateczne.

Aby była używana strona kodowa systemu, w 1. klatce na osi czasu należy umieścić następujący wiersz kodu ActionScript 2.0:

System.useCodepage = true;
<< need an AS3 example here as well. See
dev/qa. >>

Uwaga:

Dany znak specjalny jest wyświetlany pod warunkiem, że na komputerze użytkownika jest używana czcionka obejmująca ten znak. Jeśli nie ma co do tego pewności, odpowiedni znak lub jego czcionkę należy osadzić w pliku SWF.

W poniższej tabeli zestawiono najczęściej używane sekwencje Unicode.

Opis znaku

Sekwencja Unicode

pauza ()

\u2014

zarejestrowany znak handlowy (®)

\u00AE

znak praw autorskich (©)

\u00A9

znak handlowy (™)

\u2122

Znak euro ()

\u20AC

odwrócony ukośnik (\)

\u005C

zwykły ukośnik (/)

\u002F

otwierający nawias klamrowy ({)

\u007B

zamykający nawias klamrowy (})

\u007D

większe niż (<)

\u003C

mniejsze niż (>)

\u003E

gwiazdka (*)

\u002A

Sprawdzanie szybkości pobierania dokumentów

Program Flash Player zawsze usiłuje dopasować aktualną szybkość odtwarzania klatek do szybkości określonej przez projektanta aplikacji; mimo to na różnych komputerach mogą być uzyskiwane różne szybkości. Jeśli podczas wczytywania dokumentu program napotyka klatkę, która wymaga wczytania dodatkowych danych, wczytywanie zostaje wstrzymane aż do momentu nadejścia danych.

Za pomocą programu profilującego przepustowość można oglądać postępy wczytywania w postaci graficznej. Program pokazuje ilości danych wczytane dla poszczególnych klatek animacji.

Uwaga: (Tylko Animate CC) Program profilujący przepustowość łącza nie jest dostępny w programie Animate CC. Zamiast tego można używać z programem Animate narzędzia Adobe Scout. Więcej informacji można znaleźć w artykule Korzystanie z programu Adobe Scout z programem Animate.

Przy symulowaniu szybkości wczytywania danych program Animate odwołuje się do typowej szybkości łączy internetowych, a nie do faktycznej szybkości modemu. Jeśli na przykład wybrano opcję symulacji modemu o szybkości 28,8 Kb/s, to program Animate ustawia szybkość na 2,3 Kb/s (co odpowiada rzeczywistej szybkości pobierania danych z Internetu). Program profilujący uwzględnia również ewentualną kompresję pliku SWF, która prowadzi do mniejszych plików i lepszej wydajności wczytywania strumieniowego.

Jeśli zewnętrzne pliki SWF, pliki GIF, pliki XML i zmienne są przesyłane do odtwarzacza strumieniowo, za pośrednictwem metod loadMovie i getUrl, dane są wczytywane z szybkością określoną dla wczytywania strumieniowego. Szybkość wczytywania strumieniowego głównego pliku SWF może zostać zmniejszona wskutek dodatkowych żądań danych, które zmniejszają przepustowość łącza. Dokument należy przetestować przy różnych szybkościach i na różnych komputerach, tak aby mieć pewność, że łącza i komputery potencjonalnych odbiorców dokumentu nie zostaną przeciążone.

Program pozwala też wygenerować raport dotyczący klatek, które spowalniają odtwarzanie, a następnie zoptymalizować lub skasować część zawartości tych klatek.

Aby zmienić ustawienia pliku SWF utworzonego za pomocą poleceń Testuj film lub Testuj scenę, należy użyć polecenia Plik > Ustawienia publikowania.

Sprawdzanie szybkości wczytywania

  1. Wykonaj jedną z następujących czynności:
    • Wybierz opcję Sterowanie > Testuj scenę lub Sterowanie > Testuj.

      W wyniku uaktywnienia funkcji testowania sceny lub testowania dokumentu program Animate publikuje bieżące zaznaczenie w postaci pliku SWF, stosując ustawienia określone w oknie dialogowym Ustawienia publikowania. Plik SWF jest otwierany w nowym oknie i natychmiast zaczyna być odtwarzany.

    • Wybierz polecenie Plik > Otwórz i zaznacz plik SWF.

  2. Wybierz polecenie Widok > Ustawienia pobierania, po czym wybierz szybkość pobierania, którą ma symulować program Animate. Aby określić niestandardowe ustawienia, wybierz opcję Dostosuj.

  3. Podczas przeglądania pliku SWF, wybierz polecenie Widok > Program profilujący przepustowość, aby wyświetlić wykres wydajności wczytywania danych.

    W lewej części okna programu są widoczne informacje o dokumencie: jego ustawienia, jego stan oraz dane o strumieniach (o ile dokument zawiera strumienie).

    W prawej części okna jest widoczny nagłówek osi czasu i wykres. Poszczególne paski na wykresie odpowiadają pojedynczym klatkom dokumentu. Rozmiar paska odpowiada rozmiarowi klatki (w bajtach). Czerwona linia pod nagłówkiem osi czasu wskazuje, czy dana klatka jest wczytywana w czasie rzeczywistym, z szybkością równą bieżącemu ustawieniu szybkości modemu w menu Kontrola. Jeśli pasek wykracza poza czerwoną linię, oznacza to, że dokument musi czekać na wczytanie klatki.

    Uwaga: (Tylko Animate CC) Program profilujący przepustowość łącza nie jest dostępny w programie Animate CC. Zamiast tego można używać z programem Animate narzędzia Adobe Scout. Więcej informacji można znaleźć w artykule Korzystanie z programu Adobe Scout z programem Animate.

     

  4. Wybierz polecenie Widok > Symuluj pobieranie, aby włączyć lub wyłączyć wczytywanie strumieniowe.

    Jeśli funkcja ta zostanie wyłączona, dokument będzie wczytywany od początku, bez symulowania połączenia internetowego.

    Uwaga: (Tylko Animate CC) Funkcja symulacji pobierania nie jest dostępna w programie Animate CC.

     

  5. Kliknij pasek na wykresie, aby wyświetlić w lewej części okna ustawienia odpowiadającej mu klatki i zatrzymać dokument.
  6. jeśli zachodzi taka potrzeba, dostosuj wygląd wykresu, wykonując jedną z następujących czynności:
    • Wybierz polecenie Widok > Wykres strumieniowania, aby stwierdzić, które klatki powodują przerwy.

      W widoku domyślnym poszczególne klatki są reprezentowane przez jasnoszare i ciemnoszare bloki. Wielkość bloku odpowiada rozmiarowi klatki (w bajtach). Pierwsza klatka mieści w sobie zawartość symbolu, jest więc większa od innych klatek.

    • Wybierz polecenie Widok > Wykres klatka po klatce, aby obejrzeć wielkości poszczególnych klatek.

      W tym widoku można stwierdzić, które ramki powodują opóźnienia we wczytywaniu danych. Jeśli jakaś klatka wykracza poza czerwoną linię na wykresie, oznacza to, że program Flash Player musi zatrzymać odtwarzanie do momentu wczytania całej klatki.

  7. Zamknij okno testowe, aby powrócić do środowiska projektowania.

    Po skonfigurowaniu środowiska testowego za pomocą programu profilującego przepustowość każdy z plików SWF można będzie otworzyć bezpośrednio w środowisku testowym. Plik zostanie otwarty w oknie programu Flash Player. Będą obowiązywały opcje programu profilującego przepustowość i inne zaznaczone opcje.

    Uwaga: (Tylko Animate CC) Program profilujący przepustowość łącza nie jest dostępny w programie Animate CC. Zamiast tego można używać z programem Animate narzędzia Adobe Scout. Więcej informacji można znaleźć w artykule Korzystanie z programu Adobe Scout z programem Animate.

     

Generowanie raportu końcowego

  1. Wybierz polecenie Plik > Ustawienia publikowania i kliknij zakładkę Animate.

  2. Wybierz opcję Generuj raport rozmiaru.
  3. Kliknij przycisk Publikuj.

    Program Animate wygeneruje plik tekstowy z rozszerzeniem TXT. (Na przykład, jeśli dokument ma nazwę myMovie.fla, plik tekstowy będzie miał nazwę myMovie Report.txt.) W raporcie będą podane rozmiary wszystkich klatek, kształtów, obiektów tekstowych, plików dźwiękowych, plików wideo i skryptów ActionScript.

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