Tworzenie w programie Animate zawartości przeznaczonej do użytku na urządzeniach przenośnych

Podczas tworzenia w programie Animate zawartości przeznaczonej dla urządzeń przenośnych należy przestrzegać kilku podstawowych zasad. Podczas pracy z programem Animate programiści często unikają zbyt złożonych kompozycji oraz nadmiernego generowania animacji i elementów przezroczystych.

Programiści pracujący z programem Flash Lite mają do czynienia z dodatkowym wyzwaniem, ponieważ efekty uzyskiwane na poszczególnych urządzeniach przenośnych mogą znacznie od siebie odbiegać. Jeżeli zawartość ma być publikowana na wielu urządzeniach przenośnych, projektanci muszą znaleźć wspólny mianownik.

Optymalizacja zawartości przeznaczonych dla urządzeń przenośnych wymaga dokonywania pewnych zmian. Na przykład, jedna technika może poprawić wygląd zawartości, a inna zwiększyć jej wydajność. Oceniając te zmiany, będziesz wielokrotnie przechodził między testowaniem w emulatorze, a testowaniem na urządzeniu docelowym. Musisz obejrzeć zawartość na rzeczywistym urządzeniu, aby ocenić wierność kolorów, czytelność tekstu, oddziaływania fizyczne, odpowiedzi UI oraz inne aspekty dotyczące prawdziwych urządzeń przenośnych.

Uwaga:

Treść dotycząca wtyczki Flash Lite nie ma zastosowania w przypadku wtyczki Flash CC lub nowszej. 

Zasady animacji na urządzeniach przenośnych w programie Flash Lite

Tworząc zawartość animowaną przeznaczoną dla urządzeń przenośnych, pamiętaj o ograniczeniach CPU tych urządzeń. Stosowanie się do poniższych zasad pozwoli zagwarantować, że zawartość Flash Lite będzie działać bez opóźnień:

  • Podczas tworzenia nowego pliku w programie Flash Lite sprawdź, czy dokument jest poprawnie skonfigurowany. Chociaż pliki w programie Animate skalują się płynnie, wydajność może się pogorszyć, jeśli plik nie będzie uruchomiony w oryginalnym rozmiarze stołu montażowego i będzie skalowany w odtwarzaczu. Spróbuj ustawić rozmiar stołu montażowego dokumentu odpowiadający rozdzielczości urządzenia docelowego. Ustaw też odpowiednią wersję programu Flash Lite w programie Flash Player.

  • W programie Flash Lite można renderować grafikę wektorową w niskiej, średniej i wysokiej jakości. Im wyższa jest jakość renderowania, tym płynniejsze i dokładniejsze będzie odwzorowanie grafiki wektorowej w programie Flash Lite i tym większe są wymagania dotyczące procesora urządzenia. Aby uruchomić skomplikowaną animację, spróbuj zmieniać ustawienia jakości odtwarzacza i uważnie testuj plik SWF. Aby regulować jakość renderowania pliku SWF, użyj właściwości _quality lub polecenia SetQuality. Poprawnymi ustawieniami właściwości _quality są: NISKA, ŚREDNIA i WYSOKA.

  • Ogranicz liczbę jednoczesnych klatek pośrednich. Zmniejsz liczbę klatek pośrednich oraz ułóż kolejność animacji tak, aby następna zaczynała się po zakończeniu poprzedniej.

  • Rzadko używaj efektów przezroczystości (alfa) symboli, ponieważ efekty te obciążają CPU. W szczególności, unikaj tworzenia klatek pośrednich dla symboli częściowo przezroczystych (alfa mniejsze niż 100%).

  • Unikaj efektów wizualnych obciążających procesor, takich jak duże maski, ruch dużych obszarów, mieszanie alfa, duże gradienty i złożone układy wektorów.

  • Aby osiągnąć najlepszy wynik, wypróbuj różne ustawienia animacji opartych na klatkach pośrednich i kluczowych, a także ruchu sterowanego przez kod ActionScript.

  • Renderowanie wektorowych owali i okręgów bardziej obciąża pamięć niż renderowanie czworokątów. Używanie obrysów okrągłych i owalnych również znacznie zwiększa obciążenie CPU.

  • Często testuj animacje na rzeczywistych urządzeniach docelowych.

  • Gdy program Animate rysuje obszar animowany, określa prostokątną obwiednię wokół tego obszaru. Aby zoptymalizować rysowanie, postaraj się, aby ten prostokąt był jak najmniejszy. Unikaj nachodzących na siebie klatek pośrednich, ponieważ w programie Animate będą one traktowane jak jeden duży prostokąt. Aby zoptymalizować animację, skorzystaj z funkcji Pokaż odrysowane obszary programu Animate.

  • Unikaj ukrywania klipów filmowych na ekranie ustawiając _alfa = 0 lub _widoczny = fałsz. Jeśli po prostu wyłączysz widoczność klipu filmowego albo zmniejszysz jego przezroczystość alfa do zera, to klip nadal będzie uwzględniany w obliczeniach renderowania, co może wpływać na wydajność jego odtwarzania.

  • Podobnie, nie ukrywaj klipu filmowego zasłaniając go innym elementem kompozycji. Będzie on nadal uwzględniany w obliczeniach odtwarzacza. Lepiej przesuń klipy filmowe poza stół montażowy albo usuń je, wywołując funkcję removeMovieClip.

Grafika bitmapowa i wektorowa programu Flash Lite na urządzeniach przenośnych

Program Flash Lite może renderować zarówno grafikę wektorową, jak i bitmapową. Każdy typ grafiki ma swoje zalety i wady. Decyzja o użyciu grafiki wektorowej zamiast bitmapowej nie zawsze jest jasna i zwykle zależy od kilku czynników.

Grafika wektorowa jest zapisana w postaci równań matematycznych w niewielkich plikach SWF. Jest renderowana w trakcie odtwarzania przez odtwarzacz Flash Lite. Natomiast grafika bitmapowa jest przechowywana w postaci tablic elementów obrazu (pikseli), wymagających znacznie więcej danych. Dlatego też stosowanie grafiki wektorowej powoduje zmniejszenie rozmiaru pliku oraz rozmiaru używanej pamięci.

Kształty w grafice wektorowej pozostają gładkie także po przeskalowaniu. Obrazy bitmapowe po przeskalowaniu mogą wyglądać jak zbudowane z kwadratów lub pikseli.

Grafika wektorowa, w porównaniu z bitmapową, wymaga do renderowania więcej mocy obliczeniowej, zwłaszcza jeśli zawiera dużo złożonych kształtów i wypełnień. Dlatego też stosowanie wielu kształtów wektorowych może czasem pogorszyć wydajność pliku. Ponieważ grafika bitmapowa nie wymaga tak dużo czasu do renderowania jak grafika wektorowa, to czasem lepiej jest ją zastosować, jak np. w przypadku skomplikowanej mapy drogowej, animowanej i przewijanej w telefonie komórkowym.

Pamiętaj przy tym o następujących uwagach:

  • Unikaj używania konturów kształtów wektorowych. Kontury mają krawędź wewnętrzną i zewnętrzną (wypełnienia mają tylko jedną krawędź) a ich renderowanie jest podwójnie pracochłonne.

  • Łatwiej renderować narożniki niż krzywe. Kiedy jest to możliwe, stosuj płaskie krawędzie, zwłaszcza w przypadku bardzo małych kształtów wektorowych.

  • Optymalizacja jest przydatna, zwłaszcza w przypadku małych kształtów wektorowych, takich jak ikony. W trakcie renderowania skomplikowanych ikon mogą być utracone szczegóły i praca spędzona nad renderowaniem tych szczegółów będzie niepotrzebna.

  • Należy stosować bitmapy w przypadku małych, złożonych obrazów (takich jak ikony), a grafiki wektorowe w przypadku większych i prostszych obrazów.

  • Grafikę bitmapową należy importować w odpowiednim rozmiarze. Nie należy importować dużych obrazów w celu zmniejszenia ich później w programie Animate, ponieważ zwiększa to rozmiar pliku i wymaga więcej pamięci.

  • W odtwarzaczu Flash Lite nie jest obsługiwane wygładzanie grafiki bitmapowej. Grafika bitmapowa po przeskalowaniu lub obrocie wygląda topornie. Jeżeli grafika ma być skalowana lub obracana, lepiej używać grafiki wektorowej.

  • W zasadzie tekst jest bardzo złożonym kształtem wektorowym. Oczywiście, zwykle tekst jest bardzo ważny, więc nie można go całkiem pominąć. Gdy używasz tekstu, unikaj jego animacji oraz umieszczania go nad inną animacją. Zastanów się nad użyciem tekstu w postaci bitmapy. Pozycja łamania wiersza tekstu wielowierszowego dynamicznego i wprowadzanego nie jest buforowana. Program Animate łamie wiersze w trakcie odtwarzania i przelicza położenie końców wierszy za każdym razem, gdy pole tekstowe musi być odświeżone. Pola z tekstem statycznym nie powodują tylu problemów, ponieważ łamanie wierszy jest przeliczane w czasie kompilacji. W przypadku zawartości dynamicznej nie można uniknąć stosowania dynamicznych pól tekstowych, ale jeżeli jest to możliwe, przemyśl możliwość stosowania zamiast nich statycznych pól tekstowych.

  • Należy stosować jak najmniej efektów przezroczystości w plikach PNG. Program Animate musi przeliczać odświeżanie nawet przezroczystych fragmentów bitmapy. Na przykład, jeśli chcesz uzyskać przezroczysty plik PNG reprezentujący element pierwszego planu, nie eksportuj przezroczystego pliku PNG w pełnym rozmiarze ekranu. Zamiast tego eksportuj plik w rzeczywistym rozmiarze elementu pierwszego planu.

  • Postaraj się zgrupować razem warstwy bitmapowe, a oddzielnie warstwy wektorowe. Program Animate stosuje inne renderowanie zawartość bitmapowej, a inne wektorowej. Przełączanie między mechanizmami renderowania jest czasochłonne.

Ustaw kompresję bitmap programu Flash Lite odpowiednią dla urządzeń przenośnych.

Stosując bitmapy, można ustawić opcje kompresji obrazu (dla każdego obrazu oddzielnie albo globalnie dla wszystkich obrazów bitmapowych) redukujące rozmiar pliku SWF.

Ustawianie opcji kompresji pojedynczego pliku bitmapowego

  1. Uruchom program Animate i utwórz dokument.

  2. Wybierz bitmapę w oknie Biblioteka.
  3. W oknie Biblioteka kliknij ikonę bitmapy prawym przyciskiem myszy (Windows) lub przytrzymując klawisz Control (Macintosh), następnie wybierz z menu kontekstowego polecenie Właściwości, aby otworzyć okno dialogowe Właściwości bitmapy.
  4. W menu wyskakującym Kompresja wybierz jedną z następujących opcji:
    • Wybierz opcję Fotograficzna (JPEG) dla obrazów zawierających wiele zmian kolorów albo tonów, takich jak fotografie czy obrazy z wypełnieniem gradientowym. Opcja ta powoduje utworzenie pliku JPEG. Zaznacz pole wyboru Użyj importowanych danych JPEG, aby zastosować do importowanego obrazu domyślną jakość kompresji. Aby określić inne ustawienia jakości kompresji, usuń zaznaczenie pola wyboru Użyj importowanych danych JPG i wpisz w polu tekstowym Jakość odpowiednią wartość między 1 a 100. Wpisanie większej wartości powoduje utworzenie obrazu lepszej jakości, ale również i większego pliku, wybierz więc tę wartość odpowiednio.

    • Wybierz opcję Bezstratna dla obrazów zawierających proste kształty i kilka kolorów. Opcja ta kompresuje obraz stosując kompresję bezstratną, nie usuwając żadnych danych.

  5. Kliknij przycisk Test, aby sprawdzić efekty kompresji pliku.

    Porównaj oryginalny rozmiar pliku z rozmiarem pliku skompresowanego i zdecyduj, czy wybrane ustawienia kompresji są odpowiednie.

Ustawianie opcji kompresji wszystkich obrazów bitmapowych

  1. Wybierz Plik > Ustawienia publikowania i kliknij zakładkę Flash, aby wyświetlić opcje kompresji.
  2. Ustaw suwak Jakość JPEG lub wpisz odpowiednią wartość. Większa wartość jakości JPEG powoduje utworzenie obrazu lepszej jakości, ale także większego pliku SWF. Gorsza jakość obrazu, powoduje utworzenie mniejszego pliku SWF. Wypróbuj różne ustawienia tej opcji, aby określić najlepszy kompromis pomiędzy wielkością pliku a jakością obrazu.

Optymalizacja klatek programu Flash Lite dla urządzeń przenośnych

  • Większość urządzeń obsługujących program Flash Lite odtwarza zawartość z szybkością około 15 do 20 klatek na sekundę (fps). Szybkość odtwarzania może być jednak niska, np. 6 fps. W trakcie projektowania, ustaw szybkość odtwarzania dokumentu na zbliżoną do szybkości odtwarzania urządzenia docelowego. Pokaże to, jak będzie działała zawartość w urządzeniu o ograniczonej wydajności. Przed publikacją ostatecznego pliku SWF, ustaw szybkość odtwarzania dokumentu na przynajmniej 20 fps lub większą, aby uniknąć ograniczenia wydajności, gdy urządzenie obsługuje większą szybkość odtwarzania.

  • Używając funkcji gotoAndPlay, należy pamiętać, że wszystkie klatki pomiędzy bieżącą a żądaną muszą zostać zainicjowane, zanim program Animate odtworzy żądaną klatkę. Jeżeli wiele z tych klatek zawiera różną zawartość, bardziej efektywne może być stosowanie różnych klipów filmowych zamiast korzystania z osi czasowej.

  • Chociaż wstępne wczytanie całej zawartości za pomocą umieszczenia jej na początku pliku jest wygodne przy odtwarzaniu na pulpicie, na urządzeniu przenośnym może to jednak opóźnić uruchomienie pliku. Rozmieść zawartość równomiernie w całym pliku, aby klipy filmowe były inicjowane w momencie użycia.

Optymalizacja zawartości ActionScript programu Flash Lite na urządzeniach przenośnych

Ze względu na ograniczenia pamięci i szybkości przetwarzania na większości urządzeń przenośnych, tworząc zawartość ActionScript for Flash Lite dla takich urządzeń warto stosować się do następujących wskazówek:

  • Utwórz plik i zawarty w nim kod tak prosty, jak tylko się da. Usuń nieużywane klipy filmowe, niepotrzebne pętle klatek i kodu, nie używaj zbyt wielu oraz unikaj niepotrzebnych klatek.

  • Stosowanie pętli FOR może być kosztowne ze względu na koszty wstępne, ponoszone przy sprawdzaniu warunku przy każdej iteracji. Gdy koszty iteracji są porównywalne z kosztami wstępnymi pętli, wykonaj kilka operacji pojedynczo zamiast używać pętli. Kod wtedy będzie dłuższy, ale poprawi się wydajność.

  • Pętle oparte na klatkach należy kończyć, gdy tylko nie są potrzebne.

  • Gdy jest to możliwe, nie należy przetwarzać ciągów i tablic, ponieważ może to obciążać procesor.

  • Należy używać właściwości bezpośrednio, zamiast korzystać z metod pobierających i ustawiających języka ActionScript, które wymagają więcej obliczeń niż inne wywołania metod.

  • Rozsądnie zarządzaj zdarzeniami. Zmniejsz tablice detektorów zdarzeń używając warunków sprawdzających czy detektor istnieje (nie jest null) przed jego wywołaniem. Usuń wszystkie aktywne przedziały wywołując clearInterval oraz usuń wszystkie aktywne detektory wywołując removeListener przed usunięciem zawartości za pomocą unloadapplication lub removeapplicationClip. Program Animate nie odzyskuje pamięci danych SWF (na przykład po przedziałach i detektorach), jeżeli jakieś funkcje ActionScript nadal odwołują się do tych danych SWF po wczytaniu klipu filmowego.

  • Gdy zmienne nie są już używane, usuń je albo nadaj im wartość null, co powoduje dołączenie ich do kolekcji zbędnych danych. Usuwanie zmiennych optymalizuje wykorzystanie pamięci w trakcie odtwarzania, ponieważ nieużywane zasoby są usuwane z pliku SWF. Lepiej jest usuwać zmienne niż nadawać im wartość null.

  • Usuń detektory z obiektów, wywołując metodę removeListener przed dołączeniem do kolekcji zbędnych danych.

  • Gdy funkcja jest wywoływana dynamicznie i przekazuje stały zestaw parametrów, należy stosować wywołanie call zamiast apply.

  • Twórz mniejsze przestrzenie nazw (takich jak ścieżki) aby przyspieszyć uruchamianie. Każdy poziom w pakiecie jest kompilowany do instrukcji IF i powoduje wywołanie utwórz Object , tak więc mniej poziomów w ścieżce oszczędza czas. Na przykład, ścieżka z poziomami com.xxx.yyy.aaa.bbb.ccc.functionName powoduje utworzenie instancji obiektu com.xxx.yyy.aaa.bbb.ccc. Niektórzy programiści używają oprogramowania preprocesora redukującego ścieżkę do pojedynczego identyfikatora, jak 58923409876.functionName, przed kompilacją kodu SWF.

  • Gdy plik składa się z wielu plików SWF korzystających z tych samych klas ActionScript, wyłącz te klasy z kompilacji w wybranych plikach SWF. Zmniejszy to czas pobierania pliku i rozmiar pamięci wymaganej przy odtwarzaniu.

  • Unikaj korzystania z funkcji Object.watch i Object.unwatch, ponieważ każda zmiana właściwości obiektu wymaga od odtwarzacza sprawdzenia, czy ma być wysłane powiadomienie o zmianie.

  • Jeśli czas wykonywania kodu ActionScript w klatce kluczowej jest dłuższy niż 1 sekunda, spróbuj podzielić ten kod tak, aby był wykonywany w wielu klatkach kluczowych.

  • Usuń instrukcje trace z kodu przed opublikowaniem pliku SWF. Aby to zrobić, wybierz pole wyboru Pomiń operacje śledzenia w zakładce Flash okna dialogowego Ustawienia publikowania.

  • Dziedziczenie zwiększa ilość wywołań metod i powoduje większe zużycie pamięci: klasa zawierająca całą wymaganą funkcjonalność jest bardziej efektywna przy odtwarzaniu niż klasa dziedzicząca część funkcjonalności po klasie nadrzędnej. Tak więc, projektując możesz wybierać pomiędzy rozszerzalnością klas a efektywnością kodu.

  • Gdy plik SWF wczytuje inny plik SWF, zawierający własną klasę ActionScript (na przykład, foo.bar.CustomClass), a następnie usuwa ten plik SWF, to definicja klasy pozostaje w pamięci. Aby odzyskać pamięć, usuń wszystkie klasy z usuniętych plików SWF. Stosuj instrukcję delete podając pełną złożoną nazwę klasy, np.: delete foo.bar.CustomClass.

  • Ogranicz stosowanie zmiennych globalnych, ponieważ nie są one dołączane do kolekcji zbędnych danych, gdy definiujący je plik jest usuwany.

  • Unikaj stosowania składników standardowego interfejsu użytkownika (dostępnego w panelu Składniki programu Flash). Składniki te są zaprojektowane do pracy na komputerach biurkowych a nie są zoptymalizowane do pracy na urządzeniach przenośnych.

  • Gdy jest to możliwe, unikaj głęboko zagnieżdżonych funkcji.

  • Unikaj odwoływania się do nieistniejących zmiennych, obiektów i funkcji. W porównaniu z wersją programu Flash Player na komputery stacjonarne, program Flash Lite 2 powoli wyszukuje odwołania do nieistniejących zmiennych, co może znacząco wpływać na wydajność.

  • Unikaj definiowania funkcji używając składni anonimowej. Na przykład, myObj.eventName = function{ ...}. Funkcje zdefiniowane jawnie są efektywniejsze, jak np. function myFunc { ...}; my Obj.eventName = myFunc;.

  • Używaj jak najmniej funkcji matematycznych oraz liczb zmiennoprzecinkowych. Obliczanie takich wartości pogarsza wydajność. Jeżeli musisz używać procedur matematycznych, zastanów się nad wcześniejszymi obliczeniami i przechowaniem ich wyników w tablicy zmiennych. Odczytywanie wartości z tablicy danych jest dużo szybsze niż obliczanie ich przez program Flash w trakcie odtwarzania.

Zarządzanie pamięcią pliku Flash Lite na urządzeniach przenośnych

Program Flash Lite często usuwa z pamięci wszystkie obiekty i zmienne, do których plik już się nie odwołuje. Nazywa się to usuwaniem kolekcji zbędnych danych. Program Flash Lite uruchamia proces usuwania kolekcji zbędnych danych co 60 sekund oraz wtedy, gdy pamięć pliku zwiększy się nagle o 20% lub więcej.

Chociaż programista nie ma wpływu na to, jak i kiedy program Flash Lite usunie kolekcję zbędnych danych, może samodzielnie zwalniać niepotrzebną już pamięć. Aby zwolnić pamięć używaną przez obiekty ActionScript, stosuj polecenie delete dla zmiennych osi czasu i zmiennych globalnych. W przypadku zmiennych lokalnych—na przykład, zmiennej zdefiniowanej wewnątrz definicji funkcji—nie możesz używać polecenia delete aby zwolnić pamięć obiektu, ale możesz też nadać wartość null zmiennym odwołującym się do tego obiektu. Spowoduje to zwolnienie pamięci używanej przez obiekt pod warunkiem, że nie będzie innych odwołań do tego obiektu.

Poniższe dwa przykłady kodu pokazują, jak zwalniać pamięć zajmowaną przez obiekty za pomocą usunięcia zmiennej odwołującej się do tych obiektów. Przykłady te są prawie takie same, poza tym, że w pierwszym tworzona jest zmienna osi czasu, a w drugim tworzona jest zmienna globalna.

// First case: variable attached to a movie or 
// movie clip timeline 
// 
// Create the Date object. 
var mcDateObject = new Date(); 
// Returns the current date as a string. 
trace(mcDateObject); 
// Delete the object. 
delete mcDateObject; 
// Returns undefined. 
trace(mcDateObject); 
// 
// Second case: global variable attached to a movie or 
// movie clip timeline 
// 
// Create the Date object. 
_global.gDateObject = new Date(); 
// Returns the current date as a string. 
trace(_global.gDateObject); 
// Delete the object. 
delete _global.gDateObject; 
// Returns undefined. 
trace(_global.gDateObject);

Jak wspomniano wcześniej, nie możesz użyć polecenia delete, aby zwolnić pamięć zajmowaną przez zmienną lokalną funkcji. Zamiast tego nadaj zmiennej wartość null, co spowoduje ten sam efekt jak użycie polecenia delete.

function func() 
{ 
    // Create the Date object. 
    var funcDateObject = new Date(); 
    // Returns the current date as a string. 
    trace(funcDateObject); 
    // Delete has no effect. 
    delete funcDateObject; 
    // Still returns the current date. 
    trace(funcDateObject); 
    // Set the object reference to null. 
    funcDateObject = null; 
    // Returns null. 
    trace(funcDateObject); 
} 
// Call func() function. 
func();

Wczytywanie danych w programie Flash Lite na urządzenia przenośne

Projektując pliki przeznaczone dla urządzeń przenośnych, ograniczaj ilość danych wczytywanych naraz. Podczas wczytywania danych zewnętrznych do pliku Flash Lite (na przykład za pomocą funkcji XML.load), system operacyjny urządzenia może wygenerować „błąd pamięci”, jeśli dla wczytywanych danych nie zostało przydzielone dość pamięci. Taka sytuacja może wystąpić nawet wtedy, gdy całkowita ilość pozostałej pamięci będzie dostateczna.

Załóżmy na przykład, że plik próbuje wczytać plik XML o rozmiarze 100 KB, ale system operacyjny urządzenia przydzielił tylko 30 KB do przetwarzania strumienia danych wejściowych. W takim przypadku program Flash Lite wyświetli komunikat o błędzie wskazujący na brak pamięci.

Aby wczytać duże ilości danych, pogrupuj dane w mniejsze fragmenty—na przykład, w kilka plików XML—i wykonaj kilka wczytań danych dla każdego fragmentu. Rozmiar każdego fragmentu danych, a więc i liczba wczytań danych, które musisz wykonać zależy od urządzenia i pliku. Aby określić właściwe proporcje pomiędzy liczbą wczytań danych i prawdopodobieństwem błędu pamięci, przetestuj pliki na różnych urządzeniach docelowych.

Aby zwiększyć wydajność, unikaj jeśli jest to możliwe wczytywania i parsowania plików XML. Lepiej zapisz dane w postaci prostych par nazwa/wartość i wczytaj dane z pliku tekstowego stosując polecenie loadVars lub ze skompilowanych wcześniej plików SWF.

Wyłączanie klas z kompilacji przez program Flash Lite

Aby zmniejszyć rozmiar pliku SWF, możliwe jest wyłączenie klas z kompilacji z pozostawieniem dostępu i możliwością sprawdzenia typu. Na przykład, zrób tak, jeżeli tworzysz plik korzystający z wielu plików SWF albo bibliotek współużytkowanych, zwłaszcza takich, które mają dostęp do tych samych klas. Wyłączanie klas pozwala uniknąć duplikowania klas w tych plikach.

  1. Tworzenie nowego pliku XML.
  2. Nazwij plik XML FLA_filename_exclude.xml, gdzie FLA_filename jest nazwą pliku FLA bez rozszerzenia .fla. Na przykład, gdy plikiem FLA jest sellStocks.fla, wtedy plikiem XML musi być sellStocks_exclude.xml.
  3. Zapisz plik w tym samym katalogu co plik FLA.
  4. Umieść następujące znaczniki w pliku XML:
    <excludeAssets> 
        <asset name=”className1” /> 
        <asset name=”className2” /> 
    </excludeAssets>

    Wartości określone w atrybutach nazw w znacznikach <asset> będą nazwami klas, które mają być wyłączone z pliku SWF. Dodaj ich tyle, ile jest potrzebne dla tego pliku. Na przykład, następujący plik XML wyłącza klasy mx.core.UIObject i mx.screens.Slide z pliku SWF:

    <excludeAssets> 
        <asset name=”mx.core.UIObject” /> 
        <asset name=”mx.screens.Slide” /> 
    </excludeAssets>

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