Części składowe języka HTML
W tym rozdziale dowiesz się też, czym są samodzielne odtwarzacze Flasha, zwane projektorami (projectors), i jak specjalne instrukcje pozwalają określić ich wygląd, funkcje oraz charakter współpracy z innymi programami. Jako że projektory nie potrzebują przeglądarki, by móc funkcjonować, są one idealnym sposobem dystrybucji dokumentów Flasha za pomocą nośników CD-ROM lub innych mediów. Na koniec zobaczysz, w jaki sposób Flash komunikuje się z drukarką. Program umożliwia odbiorcy wydrukowanie tekstu i grafiki całej sceny lub jej części, w tym elementów niewidocznych na scenie. Z taką różnorodnością opcji drukowania, wyrafinowanymi sposobami komunikacji z siecią i serwerami, a także możliwością dokonywania natychmiastowych aktualizacji, Flash staje się kluczowym elementem w budowaniu dynamicznych, komercyjnych aplikacji. |
Flash łączy się z przeglądarką internetową za pośrednictwem podstawowej akcji getURL dostępnej z palety akcji (rys. 6.1). Akcja ta jest bardzo zbliżona do znacznika <A HREF> w HTML-u, gdzie adres URL witryny podaje się w formie - http://www.nazwadomeny. com/katalog. Adresów URL bezwzględnych (kompletnych adresów określonego pliku) używa się do łączenia z dowolną witryną sieciową, natomiast adresów URL względnych (ścieżek dostępu do pliku pozostającego w relacji z bieżącym katalogiem) używa się do łączenia z plikami lokalnymi, znajdującymi się na dysku lub nośniku CD-ROM. Ponadto akcja getURL umożliwia dostęp do różnych ujęć tworzonych wewnątrz okna przeglądarki, a także całkiem nowych okien przeglądarki. Możesz tworzyć filmy Flasha funkcjonujące w obrębie tych ujęć oraz okien i mieć kontrolę od tym, co jest wczytywane do każdego z nich. Łączenie się z siecią Wykorzystaj akcję getURL do nawiązania połączenia z siecią, posługując się standardowym schematem http://, za którym podaje się resztę adresu sieciowego. Używaj schematów odpowiednich dla rodzaju protokołu, np. ftp:// dla transmisji plików, czy mailto: w przypadku poczty. Jeśli odtworzysz swój film Flasha za pomocą polecenia Control/Test Movie lub używając odtwarzacza Flasha, akcja getURL spowoduje automatyczne uruchomienie domyślnej przeglądarki internetowej i wczytanie podanej witryny w nowym oknie.
|
Rys. 6.1. Akcja getURL na palecie akcji
Rys. 6.2. Akcja getURL posiada parametry: adres URL (URL), nazwę okna (Window) oraz metody wstawiania zmiennych do skryptów CGI (Variables)
Rys. 6.3. Wprowadź adres URL w bloku edycji parametrów akcji getURL
|
Rys. 6.4. Jeżeli pole Window pozostawisz puste, film Flasha (u góry) połączy się z witryną firmy Macromedia, korzystając z tego samego okna (u dołu)
|
W celu nawiązania połączenia
Wskazówki
|
Przed akcję getURL zostanie automatycznie wstawiony manipulator zdarzenia on (release).
|
Rys. 6.6. Adres FTP wpisywany do pola URL akcji getURL może zawierać nazwę użytkownika i hasło lub po prostu adres FTP w przypadku anonimowego dostępu
Rys. 6.7. Typowy katalog FTP w oknie przeglądarki
|
Rys. 6.8. Wprowadź adres odbiorcy wiadomości po instrukcji mailto: w polu URL. Dodatkowe adresy oddzielaj za pomocą przecinków
Rys. 6.9. Projekt nowej wiadomości e-mail pojawia się w nowym oknie nad filmem Flasha
Rys. 6.10. Ten adres e-mail jest także przyciskiem uruchamiającym przeglądarkę za pośrednictwem akcji mailto:
Rys. 6.11. Niektórzy używają oddzielnych programów do obsługi poczty i przeglądania witryn sieciowych. W takich przypadkach ich przeglądarki nie są skonfigurowane tak, żeby wysyłać wiadomości za pomocą łączy Flasha |
W celu utworzenia
Wskazówka
|
Do określania plików lokalnych, a nie plików w sieci, używaj raczej względnych ścieżek dostępu niż pełnych adresów URL. Dzięki temu można umieszczać filmy Flasha na dyskietkach lub płytach CD-ROM bez konieczności łączenia z Internetem. Przykładowo, zamiast używać pełnego adresu URL, http://www. myServer.com/images/photo.jpg, wystarczy podać po prostu images/ photo.jpg, a Flash - szukając pliku o nazwie photo.jpg - przeszuka tylko folder images. W celu połączenia z plikiem lokalnym:
|
Rys. 6.12. Ten względny adres URL powoduje przejście do katalogu o jeden poziom wyżej i odszukanie folderu o nazwie images, zawierającego plik photo.jpg
Rys. 6.13. Twój film Flasha (SWF) wraz z towarzyszącym plikiem HTML znajdują się w katalogu na tym samym poziomie w strukturze, co katalog zawierający plik photo.jpg
|
Rys. 6.14. Film Flasha (u góry) otwiera plik lokalny w tym samym oknie przeglądarki (u dołu)
|
Wskazówki
Rys. 6.15. Oddzielenie pliku SWF od towarzyszącego pliku HTML sprawia, że w Microsoft Internet Explorerze 4 w wersji dla MacOS odpowiadający tym plikom adres URL funkcjonuje inaczej. Używając adresu URL photo.jpg, Internet Explorer szuka odpowiadającego mu pliku SWF i może próbować odnaleźć go w katalogu data. Internet Explorer 4 dla Windows i inne przeglądarki wyszukują plik HTML, więc odwołają się raczej do katalogu my_Files. Problem ten nie istnieje jednak w Internet Explorerze 5 dla MacOS |
Kiedy odtwarzasz swój film Flasha w oknie przeglądarki, akcja getURL wczytuje nową witrynę w tym samym oknie, zajmując miejsce filmu Flasha. Jeśli chcesz, żeby witryna została wczytana do nowego okna lub nowej ramki, nie zastępując filmu Flasha, skorzystaj z opcji Window akcji getURL (rys. 6.16). Jaka jest różnica pomiędzy oknem i ramką? Okna przeglądarki mogą być dzielone na odrębne obszary lub ramki (frames), zawierające pojedyncze witryny sieciowe. Grupa ramek nazywa się zestawem ramek (frameset), a odpowiedni plik HTML pozwala zdefiniować proporcje i nazwę każdej ramki wchodzącej w skład grupy (rys. 6.17). Parametr Window może używać nazwy, którą plik HTML zestawu ramek przypisuje ramce w tym celu, żeby załadować adres URL bezpośrednio do wskazanej ramki. Podobnie używa się atrybutu TARGET znacznika HTML <A HREF>. Na przykład, jeśli podzielisz witrynę sieciową na dwie ramki, ramkę po lewej możesz nazywać Navigator (nawigacja), a ramkę po prawej Contents (zawartość). Umieść film Flasha w ramce Navigator z przyciskami, którym przypisano akcję getURL. Wprowadzając nazwę ramki Contents w polu parametru Window akcji getURL, nakazujesz ramce po prawej (czyli Contents) wczytać podany adres URL. Parametr Window przewiduje także wprowadzanie pewnych zarezerwowanych nazw, możliwych do wykorzystania (rys. 6.18). Poniższa tabela opisuje każdą z nich.
|
Rys. 6.16. Pole Window daje dostęp do menu rozwijanego, z którego możesz wybrać zarezerwowane słowo kluczowe
Rys. 6.17. Typowa witryna korzystająca z ramek do dzielenia zawartości. Okno podzielone jest poziomo na dwie ramki. Dolna ramka dodatkowo została podzielona na dwie pionowe ramki. Bannery, suwaki i zawartość zwykle są oddzielane w ten sposób
Rys. 6.18. U góry, zestaw ramek dzieli okno na lewą i prawą ramkę. Prawa ramka zawiera kolejny zestaw ramek, dzielący ją na ramkę górną oraz dolną. Film Flasha (SWF) jest odtwarzany w górnej ramce drugiego zestawu. Nazwa okna określa miejsce ładowania adresu URL |
Rys. 6.19. Plik z zestawem ramek (u góry) dzieli okno na dwie kolumny: lewą, o nazwie Navigator, mającą 20% szerokości okna przeglądarki i prawą, o nazwie Contents, mającą 80% szerokości okna (u dołu)
Rys. 6.20. Blok edycji parametrów akcji getURL określa witrynę Google.com jako domyślnie ładowaną do ramki Contents
Tabela 6.1. Parametry Window akcji getURL |
W celu uruchomienia
|
|
Nazwa okna Objaśnienie |
|
|
_self |
Określa bieżącą ramkę aktywnego okna przeglądarki. Jest to domyślne zachowanie, gdy nie podano żadnego parametru Window. |
|
_blank |
Określa nowe okno przeglądarki. |
|
_parent |
Określa zestaw ramek zawierający bieżącą ramkę. |
|
_top |
Określa najwyższy w hierarchii zestaw ramek bieżącego okna przeglądarki. |
|
|
|
|
|
|
W celu uruchomienia
lub
|
Rys. 6.21. Plik frameset.html powoduje umieszczenie pliku contents.html w ramce Contents i pliku navigator.html w ramce Navigator. Plik navigator.html wstawia też film Flasha (navigator.swf)
Rys. 6.22. Pokazano tu skrypt dla przycisku umieszczonego w ramce Navigator. Witryna Google wczytuje się do drugiej ramki
Rys. 6.23. Po wybraniu opcji _blank z menu rozwijanego parametru Window, witryna Peachpit zostanie wczytana do nowego, nienazwanego okna
Rys. 6.24. Witryna Peachpit zostanie wczytana do nowego okna o nazwie myNewWindow, jeśli taką właśnie nazwę wprowadzono w polu Window |
Rys. 6.25. Złożone akcje getURL, z parametrem Window ustawionym na _blank (u góry) oraz w przypadku wykorzystania unikatowej nazwy (u dołu)
|
Wskazówki
|
Wprawdzie parametr Window akcji getURL umożliwia skierowanie nowo otwieranych witryn do nowych okien przeglądarki, jednak wygląd i umiejscowienie tych okien zależą od preferencji samej przeglądarki. Dla przykładu, jeśli odtworzysz film Flasha w przeglądarce wyświetlającej pasek adresowy i pasek narzędzi, a potem otworzysz nowe okno, to będzie ono także zawierać podobne paski. Takich parametrów okna nie można kontrolować z poziomu Flasha, ale da się to zrobić za pomocą języka JavaScript. W dokumencie HTML przechowującym twój film Flasha możesz zdefiniować funkcje JavaScript kontrolujące sposób otwierania, a nawet zamykania nowych okien przeglądarki.
|
W filmie Flasha, owe funkcje można wywołać za pomocą akcji getURL. Zamiast podawać w polu URL adres sieciowy, wpisujesz javascript:, a następnie nazwę funkcji. Flash odnajduje JavaScript w dokumencie HTML i przeglądarka wywołuje podaną funkcję. Języka JavaScript można używać do kontrolowania wielu właściwości okna. Właściwości te określają wygląd okien, ich działanie i umiejscowienie na ekranie (rys. 6.26), a definiuje się je w funkcji JavaScript dokumentu HTML za pomocą określeń tak (1) lub nie (0), ewentualnie liczby specyfikującej rozmiary lub koordynaty. Poniższa tabela zawiera zestawienie najczęściej używanych właściwości, zgodnych zarówno z Internet Explorerem, jak i Netscape Navigatorem (Tabela 6.2). |
Rys. 6.26. Właściwości okna przeglądarki można ustawiać za pomocą języka JavaScript
|
Tabela 6.2. Właściwości okna w JavaScript |
W celu uruchomienia nowego okna
<SCRIPT LANGUAGE="JavaScript"> function openWindow(URL) { newWindow = window.open(URL); } </SCRIPT> Powyższy skrypt definiuje funkcję openWindow z argumentem URL. Po wywołaniu tej funkcji tworzony jest obiekt newWindow z adresem URL jako adresem witryny do załadowania.
<SCRIPT LANGUAGE="JavaScript"> function openWindow(URL) { newWindow = window.open(URL, "myNewWindow", "toolbar=0, location=0,directories=0, status=0,menubar=0,scrollbars=0, resizable=0,width=200,height=250,left=80,top=180") } </SCRIPT>
SwLiveConnect=true To bardzo istotny parametr uruchamiający w interfejsie przeglądarki funkcję zezwalającą na komunikację filmu Flasha z JavaScriptem. Dokument HTML powinien wyglądać podobnie jak na rys. 6.27. |
|
Właściwość Opis |
|
|
height |
Rozmiar pionowy w pikselach. |
|
width |
Rozmiar poziomy w pikselach. |
|
left |
Współrzędna x lewej krawędzi. |
|
top |
Współrzędna y górnej krawędzi. |
|
resizable |
Obszar skalowania w prawym dolnym rogu, umożliwiający zmianę rozmiarów okna - tak (nie) lub 1 (0). |
|
scrollbars |
Pionowy i poziomy pasek przewijania - tak (nie) lub 1 (0). |
|
directories |
Inaczej pasek osobisty, dający dostęp do niektórych zakładek - tak (nie) lub 1 (0). |
|
locations |
Pasek adresowy, zawierający pole do wpisywania adresu URL - tak (nie) lub 1 (0). |
|
menubar |
Pasek menu, zawierający menu rozwijane, np. Plik i Edycja. Występuje tylko w systemie Windows - tak (nie) lub 1 (0). |
|
status |
Pasek stanu w lewym dolnym rogu, wyświetlający status przeglądarki i zabezpieczenia - tak (nie) lub 1 (0). |
|
toolbar |
Pasek narzędziowy, z przyciskami Dalej i Wstecz oraz innymi ikonami nawigacji - tak (nie) lub 1 (0). |
|
|
|
|
Rys. 6.27. Kod JavaScript w nagłówku dokumentu HTML. Film Flasha osadzony w tym dokumencie będzie wywoływał funkcję openWindow (URL) |
|
javascript:openWindow ('http://www.peachpit.com') Pole Expression pozostaw niezaznaczone, a pole Window puste. Adres witryny ujęty w pojedynczy cudzysłów i nawiasy zostaje podstawiony do funkcji JavaScript jako argument URL (rys. 6.28).
Po kliknięciu utworzonego przycisku - Flash podstawia adres witryny do funkcji JavaScript o nazwie openWindow. Następnie funkcja JavaScript tworzy nowe okno, o parametrach zdefiniowanych w dokumencie HTML (rys. 6.29). Wskazówki
|
Rys. 6.28. Wyrażenie javascript: wywołuje funkcję openWindow w dokumencie HTML, zawierającym film Flasha
Rys. 6.29. Okno bez żadnych dodatkowych cech nazywa się oknem „bez wodotrysków”. „Wodotryski” oznaczają wszystkie cechy interfejsu okna
|
Rys. 6.30. Akcja getURL wywołuje funkcję JavaScript closeWindow. Obiekt okna o nazwie newWindow zamyka okno
|
W celu zamknięcia okna
function closeWindow() { newWindow.close() } Funkcja closeWindow zasadniczo wywołuje metodę close() dla obiektu newWindow, utworzonego w pierwszej funkcji.
javascript:closeWindow() Pole Expression pozostaw niezaznaczone, a pole Window puste (rys. 6.30).
Wskazówka
|
Ostatni parametr akcji getURL umożliwia przesyłanie informacji za pośrednictwem metod GET i POST. Metody te przesyłają zmienne, zadeklarowane w filmie Flasha, do aplikacji serwerowej - np. aplikacji CGI - w celu przetworzenia. Do przesyłania zmiennych używa się zwykle informacji w rodzaju słów kluczowych w mechanizmach wyszukiwania, czy też nazw logowania i haseł dostępu do witryn sieciowych. Różnice pomiędzy GET i POST są łatwo zauważalne: Metoda GET dodaje zmienne na końcu adresu URL w akcji getURL i jest używana tylko z kilkoma typami zmiennych, i to takich, które przechowują niewielką ilość informacji. Zmienne term=CGI, category=All i pref=all są dodawane na końcu adresu URL w następujący sposób: http://search. domain.com/cgi-bin/search?term= CGI&category=All&pref=all Zapewne widziałeś już podobny, długi adres URL, kiedy zażądałeś odnalezienia informacji w wyszukiwarce internetowej. Metoda POST przesyła zmienne w nagłówku HTTP przeglądarki użytkownika. Korzystaj z tej metody przy przesyłaniu długich łańcuchów danych w operacjach getURL. Na przykład, tablica informacyjna mogłaby działać lepiej, jeśli użyć metody POST. Po przesłaniu do serwera sieciowego, zmienne są przetwarzane przez skrypty CGI w nagłówkach URL lub HTTP. Skrypty te są obsługiwane przez twojego dostawcę internetowego lub Webmastera, powinieneś więc tam właśnie poszukać dodatkowych informacji. |
|
Rys. 6.31. Wybranie Window/Panels/Text Options otwiera okno dialogowe umożliwiające zmianę zwykłego bloku tekstowego w okno wprowadzania informacji
Rys. 6.32. W polu Variable palety Text Options wpisz emailStr
|
W celu przesłania informacji
http://www.myserver.com/ cgi-bin/list.cgi
on (release) { getURL ( "http://www.myserver.com/cgi-bin/list.cgi", "_self", "GET"); } Kiedy użytkownik wprowadzi w bloku tekstowym adres e-mail i kliknie przycisk, adres ten zostanie dopisany na końcu adresu URL i przesłany do skryptu CGI. Więcej o zmiennych i wprowadzaniu tekstu dowiesz się w części V, „Praca z informacją”. |
Komunikacja z obiektami XML |
|
XML (skrót od extensible markup language, strukturalny język znacznikowy) jest potężnym językiem, aktualnie zatwierdzanym przez World Wide Web Consortium (W3C). Jego rozszerzalna natura umożliwia definiowanie zawartości w zależności od jej znaczenia i kręgu odbiorców. XML bardzo różni się od tradycyjnych języków znacznikowych w rodzaju HTML, które mówią przeglądarce, w jaki sposób rozmieszczać zawartość - według zasady umieść tekst tutaj, ustaw taką czcionkę, ustaw go obok tego obrazka. XML definiuje typy danych, co czyni zeń w pełni skalowalny system - zawartość nie jest związana ze sposobem prezentacji i może być ustalana w zależności od wymagań odbiorców. Fragment kodu XML może wyglądać następująco: <invoice> <vendorname>Big Tents</vendorname> <vendorID>MYBDAY021570</vendorID> <nebdorLogo>03SUIRAUQA.GIF </vendorLogo> <productdescription> <name>All-Weather Tent</name> <dimensions> <height>7.25"</height> <width>7.25"</width> <depth>48.5"<depth> <weight>8lbs.</weight> </dimensions> <wholesale>$75.43</wholesale> <retail>$135.99</retail> </productdescription> </invoice>
|
We Flashu 5, XML oraz obiekty XMLSocket umożliwiają komunikację z innymi aplikacjami i arkuszami stylów w celu zarządzania bogatą w media zawartością, unikalną dla każdego użytkownika. Przemysły rozrywkowy, samochodowy, bankowy i handlu elektronicznego odkryły już korzyści płynące z połączenia Flasha i XML-a. Prawdziwa aplikacja dla handlu elektronicznego wprowadza rozszerzalny interfejs pomiędzy sieciowym sprzedawcą końcowym a jego partnerami, hurtownikami i dostawcami - za pośrednictwem korzystającej z technologii Flasha supersieci. Posługując się Flashem jako narzędziem do tworzenia interfejsu - przycisków, pasków przewijania, bloków wprowadzania tekstu, itd. - możesz wyposażyć handlowca w interfejs przeciągnij-i-upuść, pozwalający zamawiać produkty i odsyłać je do magazynu. Ten sam obiekt XML może identyfikować i umożliwiać hurtownikowi zmianę całego systemu sprzedaży, jak i poszczególnych cen w czasie negocjacji dotyczących umieszczenia produktu na witrynie sprzedawcy i prowadzenia kampanii przez e-mail. Gdyby wykonać je w tradycyjny sposób, wszystkie te tak różne formy sieciowe pochłonęłyby olbrzymią ilość czasu potrzebnego na ich przygotowanie, a kolejne trzeba by tworzyć wraz z pojawianiem się nowych użytkowników.
|
Komunikacja z obiektami XML |
|
|
Flash 5 umożliwia wprowadzenie tej szczególnie rozszerzalnej warstwy pomiędzy bogatą w media zawartością a systemami negocjacji i przepływu danych. XML nie sprawi co prawda, że twoje animacje będą bardziej płynne, a przekazy audio wyraźniejsze, jednak dzięki niemu łatwiej jest tworzyć unikalne i skalowalne systemy użytkowania. Jeśli chciałbyś nauczyć się więcej o XML-u i obiektach XMLSocket, sięgnij do opisu języka ActionScript, który otrzymałeś wraz z programem. |
Nauczyłeś się już, jak Flash wykorzystuje akcję getURL do łączenia się z dowolnym plikiem, także innym filmem Flasha. Wygląda to tak, że nowy plik SWF zostaje wczytany do bieżącego okna przeglądarki, zastępując tym samym pierwotny film, lub też pojawia się w zupełnie nowym oknie. Innym sposobem na dołączanie zewnętrznych filmów do oryginalnego filmu Flasha jest skorzystanie z akcji loadMovieNum (oznaczoną jako Load Movie w grupie Basic Actions) (rys. 6.34). Akcja ta umożliwia zintegrowanie dodatkowego pliku SWF z bieżącą zawartością. Oryginalny film Flasha określa prędkość odtwarzania, rozmiar sceny i kolor tła, ale możliwe jest tworzenie warstw dla kilku zewnętrznych plików SWF, a także nawigowanie po ich listwach czasowych. W poprzednim rozdziale nauczyłeś się kontrolować listwy czasowe klipów filmowych w obrębie pojedynczego filmu Flasha. Teraz spróbuj wyobrazić sobie złożoność nawigacji po wielu listwach czasowych w wielu filmach! Jedną z korzyści płynących z wykorzystywania zewnętrznych filmów Flasha jest ograniczenie wielkości całego projektu i skrócenie czasów ładowania. Jeśli, na przykład, budujesz witrynę sieciową mającą prezentować twoje osiągnięcia w tworzeniu animacji Flasha, możesz przechowywać poszczególne animacje w postaci oddzielnych plików SWF. Wystarczy zaprojektować główny interfejs, umożliwiający twoim potencjalnym klientom wczytanie wybranej animacji w dowolnej chwili. W ten sposób twoi odbiorcy korzystają tylko z tej zawartości strony, której potrzebują, i tylko wtedy, kiedy jest to niezbędne, a główny interfejs nie pęka w szwach od zawartości każdej jednej animacji (rys. 6.35).
|
Rys. 6.34. Akcja loadMovieNum w menu palety akcji
Rys. 6.35. Sposobem na separowanie bogatej w dane zawartości jest wykorzystanie zewnętrznych plików SWF. W tym przykładzie film interface.swf wczytuje pliki animacji jeden po drugim na żądanie
|
Rys. 6.36. Animacja kuli odbijającej się wzdłuż obrzeży prostokąta
Rys. 6.37. Akcja loadMovieNum posiada parametry: URL (ścieżka dostępu), Location (umiejscowienie - poziom) i Variables (zmienne)
|
Poziomy Po wczytaniu zewnętrznych plików SWF do innego filmu Flasha ich rozmieszczanie kontroluje się za pomocą poziomów. Oryginalny film jest zawsze na poziomie 0 (Level 0), a każdy następny zostaje umieszczony o jeden poziom wyżej. Wyższe poziomy nakładane są na niższe, tak więc załadowane filmy będą zawsze pojawiać się powyżej pierwotnego filmu na scenie. Jeśli chcesz usunąć film, wystarczy podać numer poziomu, a wówczas wymuszane jest zastosowanie akcji unloadMovieNum wobec filmu o określonym poziomie. Podobny efekt osiągniesz, zastępując niechciany film nowym filmem. Jeśli wczytasz nowy film do poziomu zajmowanego przez inny film, nowy zajmie miejsce starego. W celu wczytania zewnętrznego filmu:
Poniżej manipulatora zdarzenia myszy on (release) pojawi się akcja loadMovieNum (rys. 6.37).
|
Pole URL określa ścieżkę dostępu do pliku. Tutaj wprowadzamy ścieżkę względną, tak więc Flash sprawdza w poszukiwaniu pliku SWF bieżącą lokalizację. Katalogi można zmieniać za pomocą ukośnika (/) i dwóch kropek (..), ewentualnie wprowadzając bezwzględną ścieżkę dostępu do pliku SWF umieszczonego na witrynie internetowej.
Kliknięcie przycisku spowoduje wczytanie filmu umieszczonego powyżej oryginalnego filmu (rys. 6.40).
|
Rys. 6.38. Podanie względnego adresu URL oznacza, że plik bouncingball.swf powinien znajdować się w tym samym katalogu co oryginalny film Flasha
Rys. 6.39. Na jednym poziomie może znaleźć się tylko jeden film, ale ilość poziomów nie jest ograniczona
Rys. 6.40. Film oryginalny na poziomie 0 (Level 0) (u góry) i film wczytywany na poziomie 1 (Level 1) (na dole). Przycisk na poziomie 0 jest cały czas aktywny
|
Cechy wczytywanych filmów |
|
Rys. 6.41. Jeśli plik SWF jest wczytywany i umieszczany powyżej filmu na poziomie 0, jego scena staje się przezroczysta
Rys. 6.42. Mniejsze pliki SWF są pozycjonowane względem lewego górnego rogu i wyświetlają obszar roboczy poza sceną. Rozważ użycie w tym miejscu masek zewnętrznych plików SWF o rozmiarach zgodnych z rozmiarami ich scen |
Rys. 6.43. Większe pliki SWF są obcinane, gdy wczytuje się je nad filmem poziomu 0 |
Poniżej manipulatora zdarzenia myszy on (release) pojawi się akcja unloadMovieNum (rys. 6.44).
Pierwszy z przycisków wczytuje zewnętrzny film do podanego poziomu. Drugi przycisk usuwa film z tego poziomu.
W celu zastąpienia wczytanego
|
Rys. 6.44. Akcja unloadMovieNum ma tylko jeden parametr: Location
Rys. 6.45. Parametr Location akcji unloadMovieNum. Dowolny film z poziomu 1 zostanie usunięty
Rys. 6.46. Akcja loadMovieNum przypisana do przycisku
Rys. 6.47. Plik bouncingsquare.swf stanowi ścieżkę dostępu
|
Rys. 6.48. Plik bouncingsquare.swf zostanie wczytany do poziomu 1.
Rys. 6.49. Początkowo film bouncingball.swf zajmuje poziom 1 (u góry). Inny film, po wczytaniu do tego samego poziomu, zastąpi plik bouncingball.swf
|
Po kliknięciu pierwszego przycisku Flash wczyta zewnętrzny film, rezydujący nad oryginalnym filmem. Kliknięcie trzeciego z utworzonych przycisków sprawi, że Flash wczyta drugi film zewnętrzny do tego samego poziomu, zastępując tym samym pierwszy z filmów (rys. 6.49).
|
Wczytywanie zewnętrznych filmów do poziomów podlega pewnym ograniczeniom, z uwagi choćby na fakt pozycjonowania ich względem lewego górnego rogu głównej sceny. Przeszkodę tę można ominąć i przesuwając odpowiednio elementy zewnętrznego filmu i mając na uwadze miejsca, w których będą wyświetlane. Można też zmienić cały film, dopasowując rozmiar jego sceny do rozmiarów sceny głównego filmu. Jednak jeszcze lepszym rozwiązaniem jest umieszczanie takich filmów w klipach filmowych, zamiast wczytywanie ich do poziomów. W takim przypadku lewy górny róg wczytywanego filmu jest umieszczany w punkcie środkowym wskazanego klipu filmowego (rys. 6.50), a ponieważ klipy filmowe mogą być rozmieszczane po całej scenie, w ten sposób również wczytywane filmy możesz rozkładać dokładnie tak, jak chcesz. Wczytany film zajmuje miejsce klipu - listwa czasowa klipu filmowego zostaje zastąpiona listwą czasową wczytanego filmu. Mimo wszystko klip filmowy zachowuje nazwę przypisaną do jego klonu; również wszystkie efekty skalowania, rotacji, przekrzywiania, kolorowania i nakładania przezroczystości, wykonane na klonie klipu filmowego, zostaną przypisane wczytanemu filmowi (rys. 6.51).
W celu wczytania
|
Rys. 6.50. Film wczytany do klipu filmowego jest pozycjonowany względem lewego górnego rogu w punkcie środkowym filmu
Rys. 6.51. Wczytywany film przejmuje nazwę, pozycję, skalowanie, przekrzywienie, rotację, kolory i efekt przezroczystości przypisane do klonu klipu filmowego
|
Rys. 6.53. Parametry akcji loadMovieNum.
Rys. 6.54. Film bouncingball.swf zostaje wczytany do klipu filmowego greensquare, który wcześniej został obrócony
|
Po kliknięciu utworzonego przycisku Flash wczyta zewnętrzny film do klipu filmowego. Wczytany film przejmie wszystkie ustawienia klipu filmowego, np. pozycję, skalowanie, rotację, nazwę klonu, jednak listwa czasowa na scenie będzie od teraz listwą czasową wczytanego filmu (rys. 6.54). Wskazówka
|
Po wczytaniu filmów do głównego filmu, zyskujesz dostęp do ich listew czasowych i w efekcie kontrolę nad procesem odtwarzania. Jeśli myślałeś, że nawigowanie pomiędzy listwami czasowymi klipów filmowych było złożone, to teraz spróbuj wyobrazić sobie stopień skomplikowania sytuacji, w której masz do czynienia z wieloma filmami, przy czym każdy zawiera dodatkowo własny zestaw klipów filmowych! Flash umożliwia określanie ścieżek dostępu do wczytywanych filmów i ich listew czasowych w logiczny, minimalizujący ryzyko pomyłki, sposób. Jako że wczytane filmy rezydują na różnych poziomach, program używa terminu _level1 w odniesieniu do filmu na poziomie 1, _level2 w odniesieniu do filmu na poziomie 2, itd. Filmy wczytywane do klipów filmowych przejmują nazwy przypisane do klonów tych klipów, tak więc ścieżki dostępu do tych wczytanych filmów są w zasadzie ścieżkami dostępu do klipów filmowych. Jeśli wczytywane filmy zawierają w sobie kolejne klipy filmowe, użyj kropki do tworzenia ścieżek dostępu do plików znajdujących się niżej w hierarchii listwy czasowej, podobnie, jak robi się to w przypadku klipów filmowych na głównej listwie czasowej. Przykładowo, _level2.bigCircle.smallCircle jest ścieżką dostępu do klipu filmowego o nazwie smallCircle, zawierającego się w klipie filmowym bigCircle, a rezydującego w filmie wczytanym do poziomu 2.
W celu utworzenia
|
|
Rys. 6.55. Akcja loadMovieNum przypisana do przycisku umieszcza plik bouncingball na poziomie 1
Rys. 6.56. Metoda stop wykonywana jest w filmie na poziomie 1
Rys. 6.57. Manipulator onClipEvent (data) w menu palety akcji
|
Wyrażenie to wstrzymuje odtwarzanie na listwie czasowej filmu umieszczonego na podanym poziomie.
Wykrywanie zdarzenia Load Movie Wczytanie zewnętrznego filmu wyzwala zdarzenie, które możesz wykryć. Zewnętrzne pliki SWF są plikami danych, więc można użyć zdarzenia klipu filmowego onClipEvent (data) do określania, czy pliki SWF zostały wczytane w całości (rys. 6.57).
|
W celu wczytania
Jeśli rozpocznie się wczytywanie pliku SWF do głównego filmu, wystąpi zdarzenie onClipEvent (data) i zostanie wykonana akcja przypisana do tego zdarzenia.
|
Rys. 6.58. Zdarzenie onClipEvent
Rys. 6.59. Po wczytaniu zewnętrznego filmu Flash przechodzi do ujęcia o nazwie incoming w klipie filmowym display
|
Rys. 6.60. Wybierz Window/Generator Objects
Rys. 6.61. Przeciągnij obiekt Insert Flash Movie z palety Generator Objects na scenę
|
Współpraca Z pewnością akcja loadMovieNum przydaje się do wczytywania zewnętrznych filmów Flasha, jednak filmy takie pozostają statyczne, jako że ich grafika i animacje zostały wcześniej zaprojektowane i wyrenderowane. Jeśli chcesz wprowadzać zawartość „w locie” i tworzyć grafikę oraz animację Flasha z dynamiczną zawartością, potrzebujesz narzędzia zwanego Flash Generator. Praca z Generatorem przebiega w dwóch fazach. Najpierw tworzysz we Flashu szablony, nazywane plikami szablonu Shockwave Flash (SWT). Szablony te określają typ wykorzystywanych danych oraz ich przeznaczenie. Następnie, kiedy uzyskasz dostęp do owych plików SWT za pomocą przeglądarki, Generator Dynamic Graphics Sever łączy szablony z danymi i dostarcza zintegrowane media odbiorcy. Generator jest idealnym narzędziem do tworzenia grafik Flasha z nieustannie zmieniającymi się informacjami. Na przykład, graficzna mapa pogody może być tworzona w czasie rzeczywistym na podstawie informacji pogodowych dostępnych na serwerze; podobnie odpowiedni banner mógłby wyświetlać na bieżąco uaktualnienia cen na giełdzie. Jako że praca z Generatorem opiera się na wykorzystaniu osobnej aplikacji serwerowej, ograniczymy się w poniższym ćwiczeniu do przygotowania pojedynczego pliku SWT, wywołującego film Flasha.
W celu utworzenia
|
http://www.myserver.com/intro.swt
|
Rys. 6.63. W zakładce Formats okna dialogowego Publish Settings wybierz następujące typy plików: Flash, Generator Template oraz HTML
Rys. 6.64. Wybierz kolor tła (Background) w zakładce Generator okna dialogowego Publish Settings |
Tabela 6.3. Parametry akcji FSCommand dla projektorów |
Projektory i akcja FSCommand Najczęściej twoje filmy Flasha będą odtwarzane w przeglądarkach, za pośrednictwem sieci Internet. Flash został zaprojektowany i skonstruowany właśnie z tą myślą. Jednak program umożliwia także tworzenie projektorów, samouruchamiających się aplikacji, które nie wymagają przeglądarki, czy odtwarzacza filmów Flasha. Zarówno w systemie Windows, jak Mac OS możesz tworzyć projektory zgodne jednocześnie z obu tymi platformami. W przypadku Windows pliki takie posiadają rozszerzenie .EXE, w Mac OS do nazwy pliku dodawane jest słowo projector. Projektory mają większe rozmiary niż tradycyjne pliki SWF, jednak zawierają wszystko, co jest potrzebne do obejrzenia zawartości, którą przygotowałeś, włączając w to grafikę, animację, dźwięk i funkcje interaktywne. Używaj projektorów do umieszczania projektów Flasha na przenośnych mediach, jak dyskietki i płyty CD-ROM, co jest idealnym sposobem na przygotowanie wszelkiego rodzaju prezentacji i materiałów reklamowych. Jednak odtwarzanie filmów Flasha za pośrednictwem projektorów jest wyjątkowe w jednym aspekcie. Projektory nie używają dokumentu HTML, zawierającego znaczniki, czyli „instrukcje” określające sposób wyświetlania. Czy odtwarzanie ma być pełnoekranowe? Czy można zmieniać rozmiar okna? Takie opcje są dostępne w przypadku publikacji w formacie HTML, ale nie wtedy, gdy korzystasz z projektorów. Jeśli chciałbyś ustawić lub zmienić podobne parametry wyświetlania, skorzystaj z akcji FSCommand, która sama w sobie zawiera tylko kilka prostych parametrów odnośnie projektorów, tak jak przedstawiono to w tabeli 6.3.
|
|
Parametr Opis i argumenty |
||
fullscreen |
Zezwala na odtwarzanie w trybie pełnoekranowym i uniemożliwia skalowanie (prawda lub fałsz). |
|
allowscale |
Skaluje grafikę przy zmianie rozmiaru okna (prawda lub fałsz). |
|
trapallkeys |
Zezwala filmowi (w miejsce odtwarzacza) na przechwytywanie zdarzeń naciskania klawiszy (prawda lub fałsz). |
|
showmenu |
Wyświetla menu podręczne w przypadku kliknięcia obszaru filmu prawym przyciskiem myszy (prawda lub fałsz). |
|
exec |
Uruchamia plik wykonawczy (ścieżka dostępu do pliku). |
|
quit |
Zamyka projektor |
|
|
||
|
|
Plik projektora zostanie zapisany w tym samym folderze co plik Flasha. lub
Wskazówka
|
Rys. 6.65. Kliknięcie Publish spowoduje wyeksportowanie wszystkich typów zaznaczonych w zakładce Formats
Rys. 6.66. Zakładka Formats okna dialogowego Publish Settings. Zaznacz opcje Windows Projector i Macintosh Projector
Rys. 6.67. Polecenie Create Projector, dostępne w odtwarzaczu Flasha, eksportuje bieżący plik do postaci projektora |
Rys. 6.68. Dostęp do akcji FSCommand na palecie akcji
Rys. 6.69. Opcje akcji fscommand dla projektorów pojawiają się w menu rozwijanym u dołu bloku edycji parametrów
Rys. 6.70. Argument true parametru fullscreen uruchamia odtwarzanie projektora w trybie pełnoekranowym
Rys. 6.71. Argument false parametru Command wyłącza menu podręczne (otwierane kliknięciem prawego klawisza myszy)
|
W celu użycia akcji FSCommand
Akcja FSCommand pojawi się w oknie skryptu wraz z parametrami Command i Argument oraz menu rozwijanym, specyficznym dla projektorów (rys. 6.69).
Teraz w polu Command widnieje fullscreen, a w polu Argument - true (prawda) (rys. 6.70).
Teraz w polu Command widnieje showmenu, a w polu Argument - true (prawda).
|
|
Rys. 6.72. Akcja fscommand (”quit”) przypisana do przycisku zamyka okno projektora
|
|
Komunikacja z drukarką Flash umożliwia przesyłanie informacji bezpośrednio do drukarki i wydruk tekstu oraz grafiki z pominięciem standardowych funkcji drukowania dostępnych w przeglądarce. Drukowanie jest możliwe nawet w czasie odtwarzania filmu we Flashu lub jako projektora. Za pomocą akcji print oraz printAsBitmap możesz przesłać do drukowania pojedyncze ujęcie lub grupę ujęć, a także wskazać, które obszary tych ujęć mają zostać wydrukowane. Owe obszary drukowania nie muszą być wcale widoczne na scenie. Dla drukarki dostępne są grafika i tekst z dowolnego ujęcia na głównej listwie czasowej, a także listwie czasowej klipu filmowego, co czyni z akcji print coś więcej niż tylko prymitywne narzędzie do sporządzania sztywnych kopii bieżącej zawartości ekranu monitora. Załóżmy, że posiadasz dokumenty w zewnętrznych plikach SWF. Mógłbyś w łatwy sposób wczytać wybrany film do klipu filmowego lub do innego poziomu za pomocą akcji loadMovieNum, a następnie wydrukować zaznaczone ujęcia z wczytanego filmu. W rozdziale 10. dowiesz się o wprowadzaniu tekstu oraz o dynamicznym tekście, dzięki którym można wprowadzać informacje z klawiatury i wyświetlać tekst w sposób dynamiczny. Możliwości te można łączyć np. z formularzami zamówienia lub rachunkami, które potem prześlesz do drukarki. |
Etykieta #P określa ujęcie kluczowe jako przeznaczone do wydrukowania. W przypadku niewprowadzenia tej etykiety, do drukowania zostaną przesłane wszystkie klatki filmu.
Kliknięcie utworzonego przycisku spowoduje przesłanie do drukarki grafiki z ujęcia kluczowego #P klipu filmowego. Klikaj OK w pojawiających się oknach dialogowych, aby rozpocząć drukowanie (rys. 6.77).
|
Rys. 6.73. Klip filmowy zawiera w ujęciu kluczowym 2. grafikę przeznaczoną do wydruku. W ujęciu kluczowym 1. akcja stop zapobiega odtwarzaniu klipu
Rys. 6.74. W oddzielnej warstwie, dodaj etykietę #P do ujęcia kluczowego 2
Rys. 6.75. Do przycisku przypisano akcję print |
Rys. 6.76. Klon klipu filmowego, zawierającego grafikę przeznaczoną do druku, nosi nazwę bikespecs. Ta akcja print odnosi się więc do klonu o nazwie bikespecs
Rys. 6.77. Klon klipu filmowego na scenie (u góry) zawiera grafikę, która zostanie wydrukowana (u dołu)
Rys. 6.78. Parametry akcji print. Do wydrukowania wybrano zawartość filmu wczytanego do poziomu 1
|
Wskazówki
|
lub Jeśli zamierzasz wydrukować grupę ujęć umieszczonych w różnych listwach czasowych, musisz wpisać oddzielne polecenia drukowania w oknie palety akcji. W przypadku skorzystania z tej metody będziesz miał do czynienia z kilkoma oknami dialogowymi, bowiem Flash może drukować grupę ujęć, ale każde z osobnej ścieżki dostępu (rys. 6.79).
W celu ustalenia
lub Z menu rozwijanego Bounding box wybierz Frame. Ostatni argument akcji print zostanie zmieniony na bframe. Grafiki umieszczone we wszystkich ujęciach kluczowych oznaczonych etykietą #P zostaną przeskalowane do wielkości odpowiadającej maksymalnemu obszarowi drukowanemu (rys. 6.81).
|
Rys. 6.79. Wydrukowane zostaną ujęcia z klipów filmowych taxforms oraz receipts. Dwa oddzielne klipy filmowe wymagają dwu wyrażeń print
Rys. 6.80. Opcja bmovie. Ujęcie kluczowe 26. zawiera obramowanie grafiki określające obszar drukowany wszystkich trzech obrazków
|
Rys. 6.81. Opcja bframe. Niepotrzebne są żadne etykiety #B. Każdy z obrazków zostaje przeskalowany do wielkości obszaru drukowanego. Zauważ, że krewetka w druku będzie miała proporcje wielkości rekina
Rys. 6.82. Opcja bmax. Niepotrzebne są żadne etykiety #B. Obramowanie grafiki jest tworzone na podstawie uśrednionego rozmiaru i lokalizacji wszystkich trzech obrazków |
lub Z menu rozwijanego Bounding box wybierz Max. Ostatni argument akcji print zostanie zmieniony na bmax. Flash definiuje maksymalną szerokość i wysokość na podstawie wszystkich drukujących się ujęć, a następnie przeskaluje grafikę względem ustalonej w ten sposób wielkości obszaru drukowanego (rys. 6.82). Wskazówki
Rys. 6.83. Te dwa obrazki w ujęciu #B wymuszają większą powierzchnię obramowania grafiki |
|
Rys. 6.84. Opcja Print As bitmap na palecie akcji, użyteczna w przypadku drukowania przezroczystości i efektów kolorystycznych
|
Rozdział 6.
190
189
Zarządzanie zasobami zewnętrznymi
6
Zarządzanie
zasobami zewnętrznymi
Pasek stanu
Adres
Rys. 6.5. Adres sieciowy wpisany w polu URL zakładki Character palety Character zmienia statyczny tekst w łącze do podanej strony
Dolna ramka
Miejsca docelowe
Film Flasha (SWF)
Górna ramka
Ramka
Ramka Navigator
Pasek narzędziowy
Pasek menu
Góra
Lewy róg
Wysokość
Szerokość
Zdefiniuj właściwości w metodzie window.open
Film na poziomie 0
Film na poziomie 1
Film na poziomie 1
Film bouncingball.swf na poziomie 1
Akcja loadMovieNum
Pasek przewijania
Skalowanie
Kod JavaScript
Film na poziomie 0
Film na poziomie 1
Film na poziomie 1
Film na poziomie 1
Film na poziomie 1
Film na poziomie 0
Film na poziomie 0
Film na poziomie 0
Film na poziomie 0
Film bouncingball.swf na poziomie 1
Film bouncingsquare.swf na poziomie 1
Klip filmowy w kształcie trójkąta
Zewnętrzny film
Punkt początkowy klipu filmowego w kształcie trójkąta
Klip filmowy na poziomie 0
Klip filmowy na poziomie 0
Film wczytany do klipu filmowego w kształcie trójkąta
Klip filmowy w kształcie trójkąta
Klip filmowy na poziomie 0
Klip filmowy na poziomie 0
Film wczytany do klipu filmowego w kształcie trójkąta
Zewnętrzny film
Klip filmowy - obrócony, przeskalowany i przekrzywiony
Wczytany film - obrócony, przeskalowany i przekrzywiony
Rys. 6.52. Klon klipu filmowego posłuży za miejsce przeznaczenia dla wczytanego w przyszłości filmu
Klip filmowy greensquare, obrócony o 45 stopni
Film bouncingball.swf wczytany do pliku _root.greensquare
Rys. 6.62. Plik myMovie.swf jest względną ścieżką dostępu do filmu, który ma zostać wstawiony. Plik ten powinien znajdować się w tej samej lokalizacji co plik SWT
stop
Klon klipu filmowego bikespecs z pustym pierwszym ujęciem kluczowym
Przycisk z przypisaną akcją print
Wydrukowana strona
Rekin w klatce 8.
Barakuda w klatce 14.
Krewetka w klatce 20.
Obramowanie grafiki w klatce 26.
Wydrukowane strony
Rekin w klatce 8.
Barakuda w klatce 14.
Krewetka w klatce 20.
Wydrukowane strony
Rekin, barakuda i krewetka są umieszczone w oddzielnych ujęciach kluczowych
Obramowanie grafiki utworzone z uwzględnieniem wszystkich trzech obrazków
Wydrukowane strony
Obramowanie grafiki obejmuje wszystkie elementy graficzne w ujęciu #B
Komunikacja
Komunikacja
Komunikacja
Komunikacja
Komunikacja
Komunikacja
Komunikacja
Komunikacja
Komunikacja
Dołączanie filmów z zewnątrz
Dołączanie filmów z zewnątrz
Dołączanie filmów z zewnątrz
Dołączanie filmów z zewnątrz
Dołączanie filmów z zewnątrz
Dołączanie filmów z zewnątrz
Współpraca z narzędziem Generator
Projektory i akcja FSCommand
Projektory i akcja FSCommand
Komunikacja z drukarką
Komunikacja z drukarką
Komunikacja z drukarką
Zarządzanie zasobami zewnętrznymi
Komunikacja
Komunikacja
Komunikacja
Komunikacja
Komunikacja
Komunikacja
Komunikacja
Komunikacja
Komunikacja
Dołączanie filmów z zewnątrz
Dołączanie filmów z zewnątrz
Dołączanie filmów z zewnątrz
Dołączanie filmów z zewnątrz
Dołączanie filmów z zewnątrz
Współpraca z narzędziem Generator
Projektory i akcja FSCommand
Projektory i akcja FSCommand
Komunikacja z drukarką
Komunikacja z drukarką
Komunikacja z drukarką