r29-07, ## Documents ##, flash5biblia


Rozdział 29.
Aplikacje serwerowe niezależnych producentów

W tym rozdziale:

W tym rozdziale omówimy aplikacje serwerowe niezależnych producentów wykorzystujące filmy Flasha. Dowiesz się, jak wykorzystać technologię ASP (Active Server Pages) z filmami Flasha. Przyjrzymy się także innym aplikacjom pozwalającym na dynamiczne tworzenie zawartości filmów Flasha.

Technologia ASP i filmy Flasha

ASP jest technologią opracowaną przez Microsoft umożliwiającą twórcom witryn tworzenie dynamicznej zawartości na serwerze stron WWW. ASP jest jedną z kilku technologii łączących ogromne możliwości obróbki danych na serwerze ze składnią HTML. Struktura ASP to połączenie HTML i specjalnych znaczników zawierających skrypty VBScript i JScript (utworzona przez Microsoft wersja języka JavaScript). Gdy użytkownik wywołuje stronę ASP na serwerze WWW obsługującym technologię ASP, strona jest najpierw interpretowana przez filtr ISAPI (Internet Server Application Programming Interface). Dopiero utworzona przez filtr strona jest wysyłana do użytkownika. Ta technika różni się od techniki wykorzystującej język JavaScript (skrypty są wykonywane na komputerze użytkownika), ponieważ pozwala posłużyć się możliwościami serwera. Różni się także od skryptów CGI (Common Gateway Interface), ponieważ pozwala projektantom tworzyć to samo, co skrypty CGI, ale przeważnie dużo prościej.

Uwaga! Technologię ASP wykorzystuje aplikacja IIS (Internet Information Server) firmy Microsoft. IIS jest najczęściej wykorzystywany wraz z ASP, ale istnieją także interpretery ASP dla innych platform. Przykładem może być Chilisoft (www.chilisoft.com).

Z poniższego ćwiczenia autorstwa James'a Baker'a dowiesz się, jak utworzyć prosty system logowania, wykorzystując ASP i film Flasha.

Szare tło!

Ćwiczenie eksperta:
Logowanie wykorzystujące ASP
Autor: James Baker

Po wprowadzeniu Flasha 4 i 5 skończyły się czasy, kiedy to twórcy witryn mogli co najwyżej wykorzystać Flasha do utworzenia prostej animacji i interfejsu. Teraz Flash pozwala kreować praktycznie wszystko, od wspaniałych systemów poruszania się po witrynie po zaawansowane systemy sprzedaży produktów przez Internet. Chociaż film Flasha nie umożliwia połączenia z bazą danych (chyba że wykorzystywany jest Generator), jednak po połączeniu go ze skryptem lub aplikacją serwerową jak ASP, wykorzystasz jednocześnie możliwości bazodanowe serwera i graficzne Flasha.

Flash i ASP

Korzystając z zewnętrznego języka programowania, możesz wybrać taki, który Ci najlepiej odpowiada. ASP jest językiem łatwym w nauce i implementacji na platformę Windows NT (2000). Chociaż w tym ćwiczeniu używamy ASP, współpraca Flasha z innymi językami wyglądałaby bardzo podobnie.

Najprościej komunikację pomiędzy filmem Flasha i skryptem serwera wykonać, wykorzystując akcję loadVariables(). Pozwala ona opracować stronę na serwerze, a jej wynik przekazać do poziomu lub klipu filmowego filmu Flasha. Zmienne do serwera możesz przesyłać, używając metody POST lub GET. (Jeśli nie chcesz wysyłać zmiennych, nie musisz tego robić). Możesz także wysyłać zmienne ręcznie, wpisując je po adresie URL; zrobimy tak w tym ćwiczeniu. Po wykonaniu strony na serwerze film Flasha otrzyma zwrócone przez nią zmienne. Flash wymaga, aby były zwracane pary zmienna-wartość. Jeśli chcesz do filmu Flasha przekazać zmienną UserNum, strona ASP musi zwracać wartości w postaci UserNum=2.

Tworzenie logowania we Flashu

Utworzymy prostą stronę z logowaniem do flashowej witryny. Logowania na swojej witrynie możesz potrzebować z kilku powodów, na przykład dla:

Na witrynie FlashChallenge (www.flashchallenge.com) wykorzystujemy logowanie, aby uniemożliwić użytkownikom wielokrotne oddawanie głosu, a co za tym idzie oszukiwanie. Jeśli użytkownik chce zagłosować lub dodać komentarz na temat innej witryny, musi się zalogować. W ten sposób uniemożliwiamy anonimowe głosowanie setki razy na własną witrynę lub wypisywanie niewybrednych komentarzy na temat innych witryn.

Tworzenie filmu Flasha

Klip filmowy zawiera cztery warstwy i 20 ujęć. Najwyższa warstwa nosi nazwę Actions (skrypty). Umieścimy na niej etykiety oraz skrypty ujęć. Poprawimy w ten sposób czytelność listwy czasowej. Powód jest jeszcze jeden, Flash domyślnie wczytuje warstwy od dolnej do górnej. Jeśli skrypty znajdą się na najwyższej warstwie, możemy być pewni, że przed wykonaniem skryptu zostały załadowane wszystkie warstwy poniżej. Czasami używam kilku warstw zawierających skrypty, ale zawsze umieszczam je na samym szczycie stosu.

Dwadzieścia ujęć podzieliłem na cztery części. Ten klip filmowy mógłby mieć tylko cztery ujęcia, ponieważ jednak te, w których nic się nie znajduje, nie zwiększają rozmiaru wynikowego pliku, dodaję ich więcej, aby zwiększyć czytelność etykiet.

Oto cztery części (poniższy rysunek):

0x01 graphic

Schemat działania klipu filmowego z logowaniem

Pierwsze ujęcie — część Ready

Jest to pierwsze ujęcie klipu filmowego. Pozwolimy w nim użytkownikowi wpisać nazwę użytkownika oraz hasło dostępu wymagane do zalogowania. W pierwszym ujęciu warstwy Actions znajduje się skrypt, w którym deklarujemy zmienną sError równą pustemu ciągowi znaków i zatrzymujemy wskaźnik czasu.

sError = "";

stop();

Mamy dwa wejściowe pola tekstowe — jedno dla nazwy użytkownika (przypisana jest mu zmienna sUserName) i jedno dla hasła (zmienna sPassword). Na poniższym rysunku znajdziesz właściwości pól tekstowych nazwy użytkownika (po lewej) i hasła (po prawej).

0x01 graphic

W wejściowych polach tekstowych umożliwiamy wpisanie praktycznie każdego znaku ze standardowego zestawu znaków angielskich. Aby to zrobić, kliknij przyciski od 2. do 5. z dolnego szeregu przycisków panelu Text Options. W pole obok przycisków wpisz następujące znaki:

~`!@#$%^&*()_+-={|[]\:";'<>?,./

Dlaczego po prostu nie naciśniemy pierwszego przycisku, aby dodać wszystkie znaki czcionki? Jeśli tak zrobimy, wszystkie niepotrzebne nam znaki z wybranej czcionki zostaną umieszczone w publikowanym pliku .SWF, niepotrzebnie zwiększając jego rozmiar. Większość czcionek zawiera znaki diakrytyczne innych języków, więc ich umieszczanie w pliku .SWF jest zbędne.

Mamy także przycisk Submit powodujący zatwierdzenie wpisanych danych i przycisk Clear kasujący zawartość pól tekstowych (rysunek poniżej).

0x01 graphic

Gdy użytkownik kliknie przycisk Submit, zmienne sUserName i sPassword zostaną przesłane do strony ASP. Strona ASP zweryfikuje poprawność nazwy użytkownika i hasła. Aby jednak odciążyć serwer, przeprowadzimy wstępne sprawdzanie poprawności danych w filmie Flasha. Na przykład sprawdzimy, czy użytkownik rzeczywiście wpisał w pola tekstowe nazwę użytkownika i hasło.

Klonowi przycisku przypisaliśmy poniższy skrypt (znak ¬ oznacza kontynuację tej samej linii kodu; nie umieszczaj go w rzeczywistym skrypcie):

on (release, keyPress "<Enter>") {

sError = "";

// sprawdzanie poprawności UserName

sUserName = _root.Trim(sUserName);

if (sUserName eq "") {

sError = sError+"Please enter your UserName."+newline;

}

// sprawdzanie poprawności password

if ((substring(sPassword, 1, 1) eq " ") or (substring(sPassword,¬

length(sPassword), 1) eq " ")) {

sError = sError+"Your Password does not begin or end with a¬

space"+newline;

}

if (sPassword eq "") {

sError = sError+"Please enter your Password."+newline;

}

// wczytanie zmiennych lub wyświetlenie błędu

if (sError == "") {

gotoAndStop ("Logging");

loadVariables("Login.asp?UserName="+sUserName+"&Password="¬

+sPassword, "VariablesMC");

} else {

gotoAndStop ("Error");

}

}

Uwaga autora. Funkcja Trim() jest funkcją napisaną przez Jamesa do sprawdzania „białych” spacji w zmiennej sUserName. Definicję tej funkcji znajdziesz w pierwszym ujęciu filmu Login.fla znajdującego się na CD-ROM-ie w katalogu ch29/james_baker.

Jeśli w danych wpisanych przez użytkownika jest błąd, przechodzimy do 10. ujęcia (etykieta Error), w którym wyświetlamy wartość zmiennej sError. Jeśli nie ma błędu, tworzymy odpowiednie wywołanie strony ASP. W tym przypadku do adresu URL dołączamy zmienne sUserName i sPassword. Korzystam z tej metody tylko wtedy, gdy do strony ASP wysyłam kilka zmiennych. Ponieważ moduł odtwarzacza dla aplikacji Internet Explorer (wersja MacOS) ma problemy z wysyłaniem zmiennych metodą POST, lepiej krótkie zmienne wysyłać wraz z adresem URL.

Moglibyśmy użyć metody GET, ale nie chcemy wysyłać wszystkich zmiennych klipu filmowego do strony ASP a tylko zmienne sUserName i sPassword.

Dane uzyskiwane ze strony ASP wczytujemy do klipu filmowego o nazwie VariablesMC. Następnie przechodzimy do ujęcia opatrzonego etykietą Logging. W tym ujęciu poczekamy na przesłanie wszystkich danych ze strony ASP do klipu filmowego.

Sami musimy zatroszczyć się o to, aby film zaczekał na dane ze strony ASP. Flash po wywołaniu akcji loadVariables() nie czeka na zmienne, które powinna zwrócić, ale od razu przechodzi do wykonywania następnych linii skryptu. We Flashu 4 na końcu zwracanych zmiennych należało umieścić dodatkową, której wczytanie oznaczało koniec pobierania danych.

We Flashu 5 do sprawdzenia otrzymania zmiennych ze strony ASP możemy skorzystać z detektora zdarzeń klipu filmowego. W klipie filmowym VariablesMC użyjemy detektora zdarzeń onClipEvent(data) do określenia akcji, które chcemy wykonać po otrzymaniu zmiennych od strony ASP. Detektor zdarzeń onClipEvent(data) jest wykonywany, gdy wczytano wszystkie pobierane dane do klipu filmowego.

Klip filmowy VariablesMC

Jest to pusty klip filmowy, do którego będziemy wczytywali zmienne. Nie zawiera żadnych elementów graficznych. Wykorzystujemy go tylko od sprawdzenia, czy zostały dostarczone wszystkie dane ze strony ASP i wykonania skryptu, gdy to nastąpi.

Skrypt jest automatycznie wykonywany, gdy odebrane zostaną dane z akcji loadVariables(). Następnie skrypt sprawdza, czy strona ASP zwróciła zmienną o nazwie sError. Jeśli strona ASP wykryje błąd, na przykład nie znajdzie podanej nazwy użytkownika lub ją znajdzie, ale hasło nie będzie prawidłowe, strona ASP wpisze coś do zmiennej sError. Ponieważ w pierwszym ujęciu listwy czasowej wartość zmiennej sError ustawiliśmy na pusty ciąg znaków, wskaźnik czasu przeniesiemy do ujęcia opatrzonego etykietą Success, tylko gdy zmienna sError będzie pusta:

onClipEvent (data) {

if (sError != "") {

_parent.gotoAndPlay ("Error");

_parent.sError = sError;

} else {

_parent.gotoAndPlay ("Success");

}

}

Piąte ujęcie — część Logging

Jest to proste ujęcie kluczowe informujące użytkownika, że trwa proces logowania (poniższy rysunek). W ten sposób użytkownik wie, że dzieje się coś, czego nie widzi. Skrypt w tym ujęciu zawiera tylko akcję stop(). Mamy nadzieję, że zmienne zostaną szybko wczytane i użytkownik nie będzie musiał długo patrzeć na to ujecie.

0x01 graphic

Dziesiąte ujęcie — część Error

To także jest proste ujęcie, w którym użytkownik dowiaduje się, co się dzieje. W tym przypadku poinformujemy go o wystąpieniu błędu. Ujęcie zawiera jedno pole tekstowe, w którym zostanie wyświetlona wartość zmiennej sError. Właściwości tego pola tekstowego możesz zobaczyć na poniższym polu tekstowym.

0x01 graphic

W tym ujęciu znajduje się także przycisk Retry (następny rysunek), który ponownie ustawi wartość zmiennej sError na pusty ciąg znaków i przeniesie wskaźnik czasu do pierwszego ujęcia.

0x01 graphic

Skrypt przypisany do klonu przycisku Retry:

on (release) {

sError = "";

gotoAndStop ("Ready");

}

Piętnaste ujęcie — część Success

Kolejne proste ujęcie kluczowe (następny rysunek). Poinformuje ono, że logowanie się powiodło. To ujęcie pokażemy tylko wtedy, gdy strona ASP nie zwróci żadnego błędu.

0x01 graphic

W przykładzie nie musieliśmy w zasadzie obrabiać danych otrzymanych ze strony ASP. Jeśli jednak musisz taką obróbkę przeprowadzić, najlepiej umieść wykonujący ją skrypt w tym właśnie ujęciu kluczowym. W tym miejscu na witrynie FlashChallenge ustawiamy globalną zmienną oznaczającą prawidłowe zalogowanie użytkownika i wyświetlamy bardziej złożoną wersję menu.

Wprowadzenie do ASP

Strona ASP jest prostym skryptem logowania. Przy bardziej złożonej witrynie nie polecałbym umieszczania nazw użytkowników i haseł w pliku tekstowym, ale głównym tematem tej książki nie jest ASP, więc korzystamy z prostego skryptu, który nie łączy się z bazą danych w celu weryfikacji danych podanych przez użytkownika. Na witrynie FlashChallenge do przechowywania wszystkich danych wykorzystujemy serwer SQL, który zapewnia znacznie wyższą niezawodność, bezpieczeństwo i szybkość niż plik tekstowy.

Strona ASP przechwytuje wysłaną do niej nazwę użytkownika oraz hasło i sprawdza, czy znajduje się ono w pliku tekstowym (users.txt). Jeśli w pliku znajdzie odpowiednią parę użytkownik-wartość, do filmu Flasha wysyła zmienną usernum. W przeciwnym wypadku lub po wystąpieniu innych błędów zwraca zmienną sError.

Ponieważ Flash wysyła zmienne za pomocą akcji loadVariables(), która korzysta z metody POST lub GET, możemy napisać skrypt ASP tak, jakby dane pochodziły ze zwykłego formularza HTML. Więc uzyskanie zmiennych przesłanych do ASP przez film nie jest niczym szczególnie trudnym. Jednak wysłanie zmiennych do Flasha wymaga odpowiedniego formatowania zmiennych. Musimy do Flasha przesłać pary zmienna-wartość rozdzielone znakiem &. Flash potrzebuje tylko tych zmiennych, więc nie musimy dodawać żadnego formatowania HTML do wysyłanych danych. Wysyłamy tylko dane.

Zmienne muszą być parami zmienna-wartość, aby Flash mógł ich użyć. Oto przykład poprawnego formatowania:

Zmienna=wartosc&Zmienna2=wartosc

Przeważnie na początku i na końcu wysyłanego ciągu umieszczamy znak &, aby Flash przypadkowo nie wstawił spacji lub przejścia do następnej linii:

&Zmienna=wartosc&Zmienna2=wartosc&

Jak możesz zobaczyć, każda para jest rozdzielona znakiem &, a żadna nazwa zmiennej nie powtarza się. Możesz kilka razy użyć tej samej nazwy zmiennej, ale Flash zapamięta tylko ostatnią przypisaną do tej zmiennej wartość. Jeśli wartość przekazywanej zmiennej zawiera znak &, zostanie ona podzielona. Pamiętaj, aby każdy znak &, niewykorzystywany do rozdzielenia par zmienna-wartość, zastąpić kodem szesnastkowym %26.

Jeśli chcesz Flashowi przekazać zmienną names o wartości

"Leonard & Nathan"

powinieneś napisać

&names=Leonard %26 Nathan&

Strona Login.asp

Strona ASP przechwytuje wysłaną do niej nazwę użytkownika oraz hasło i sprawdza, czy znajduje się ono w pliku tekstowym (users.txt). Jeśli w pliku znajdzie odpowiednią parę użytkownik-wartość, do filmu Flasha wysyła zmienną usernum. W przeciwnym wypadku lub po wystąpieniu innych błędów, zwraca zmienną sError.

Uwaga autora. Stronę ASP Login.asp znajdziesz na CD-ROM-ie w katalogu ch29/james_baker.

' *****************************************' Przetwarzanie danych i logowanie' *****************************************If (Request.Querystring.Count > 0) Then Dim strUsername 'Nazwa użytkownika Dim strPassword 'Hasło Dim strFile 'Ścieżka do i nazwa pliku tekstowego Dim strTextLine 'Jedna linia pliku tekstowego Dim strError 'Przechowuje komunikat o błędzie, jeśli wystąpi Dim bolUsernameMatch 'Wartość logiczna określająca, czy nazwa użytkownika była prawidłowa Dim bolPasswordMatch 'Wartość logiczna określająca, czy hasło było prawidłowe Dim objFSO 'Obiekt File System Object Dim objUserFile 'Plik zawierający wszystkie nazwy użytkowników i hasła Dim nUserNum 'Numer użytkownika zwracany do filmu Flasha w razie udanego logowania ' Inicjalizacja zmiennych strFile = Server.MapPath("users.txt") strUsername = Request.Querystring("Username") strPassword = Request.Querystring("Password") bolUsernameMatch = False bolPasswordMatch = False nUserNum = "" ' Stworzenie klonu obiektu File System Object Set objFSO = CreateObject("Scripting.FileSystemObject") If (fxValidateForm) Then ' Stworzenie klonu pliku tekstowego Set objUserFile = objFSO.OpenTextFile(strFile) Do While Not (objUserFile.AtEndOfStream Or (bolUsernameMatch And bolPasswordMatch)) ' Przeczytanie jednej linii strTextLine = objUserFile.ReadLine If (strTextLine <> "***") Then ' Porównanie nazwy użytkownika bez zwracania uwagi na wielkość liter If (StrComp(strUsername, strTextLine, 1) = 0) Then bolUsernameMatch = True End If 'Przeczytanie jednej linii strTextLine = objUserFile.ReadLine ' Sprawdzanie hasła ze zwracaniem uwagi na wielkość liter

If (StrComp(strPassword, strTextLine, 0) = 0) Then bolPasswordMatch = True End If ' Przeczytanie jednej linii strTextLine = objUserFile.ReadLine if bolUsernameMatch And bolPasswordMatch Then nUserNum = strTextLine end if else ' zresetowanie obydwu zmiennych logicznych i przejście do następnego użytkownika i hasła bolUsernameMatch = False bolPasswordMatch = False End If Loop ' Ustawienie obiektu na nothing (nic) If IsObject(objFSO) Then Set objFSO = Nothing End If If IsObject(objUserFile) Then Set objUserFile = Nothing End If ' Ustawienie zmiennej sError If Not (bolUsernameMatch And bolPasswordMatch) Then strError = " Nazwa użytkownika lub hasło nieprawidłowe." End If End If Else ' z jakiegoś powodu nie zostało wpisane hasło lub nazwa użytkownika ' cos takiego może się zdarzyć, a wiec błąd krytyczny strError = "Wystąpił błąd, proszę skontaktować się z administratorem." End If

Po uzyskaniu nazwy użytkownika i hasła oraz sprawdzeniu, czy znajdują się na liście użytkowników w pliku users.txt, przekazujemy zmienne do Flasha.

' *****************************************' Wysyłanie danych do Flasha' ***************************************** %>&sError=<%=FlashFormat(strError)%>&nUserNum=<%=nUserNum%>&<%

Oto definicje funkcji używanych w skrypcie. Funkcja FlashFormat() zastępuje znaki & odpowiednimi kodami szesnastkowymi. Funkcja fxValidateForm() jest używana do sprawdzenia poprawności nazwy użytkownika i hasła przesłanego do strony ASP.

' *****************************************' Funkcje' ***************************************** Function FlashFormat(sTextString) sNewString = "" if sTextString <> "" Then ' Aby uzyskać znak & w filmie Flasha.... sNewString = trim(replace(sNewString,"&","%26")) end if FlashFormat = sNewStringend FunctionFunction fxValidateForm() If not objFSO.FileExists(strFile) Then ' Jeśli nie możemy znaleźć pliku users.txt, piszemy, że witryna jest nieczynna strError = strError & "System logowania tymczasowo niedostepny." End If If (strUsername = "") Then strError = strError & "Pole Username musi być wypełnione." End If If (strPassword = "") Then strError = strError & "Pole Password musi być wypełnione." End If ' zwrócenie true lub false If (strError <> "") Then fxValidateForm = False Else fxValidateForm = True End If End Function

Poniżej przedstawiam format pliku users.txt. Pierwsza linia to nazwa użytkownika, druga to hasło a trzecia to numer identyfikacyjny użytkownika. Gwiazdki (***) oddzielają dane kolejnych użytkowników. Jest to bardzo prosty sposób przechowywania tego typu danych. Najlepiej do tego celu wykorzystać bazę danych. Aplikacja Microsoft Access jest łatwa do nauczenia i będzie odpowiednia dla większości witryn.

<nazwa użytkownika>

<hasło>

<numer użytkownika>

***

james

brown

1

Wnioski

To wszystko! Jeśli dane o użytkownikach umieścisz w bazie danych, możesz zwiększyć bezpieczeństwo, wykorzystując stronę Login.asp do sprawdzania danych otrzymanych od filmu Flasha.

Przypis do szarego tła!

Pochodzący z Palm Beach (Floryda, USA) James Baker uwielbia, gdy „ludzie w myślach mówią: co on sobie myśli”. James jest dyrektorem do spraw tworzenia witryn w WDDG (www.wddg.com), firmie multimedialnej z Manhattanu. Tworzył flashowe witryny dla: fotografika Johna Marka Sorum (www.johnmarksorum.com), Cinnamon Altiods (www.toohot.com), Campari (www.campariusa.com) oraz kilka innych nagradzanych prezentacji. W wolnym czasie James stara się, aby witryna FlashChallenge (www.flashchallenge.com) była jedną z najlepszych flashowych witryn na świecie. Z ostatniego roku szkoły średniej pamięta film „Pulp Fiction”.

Koniec szarego tła!

Inne aplikacje do tworzenia dynamicznej zawartości

Ponieważ Generator 2 firmy Macromedia jest bardzo zaawansowanym (i drogim) narzędziem do dynamicznego generowania filmów Flasha (bądź obrazów .GIF, .JPEG, .PNG lub filmów QuickTime Flash), pojawiły się inne aplikacje do dynamicznego tworzenia filmów .SWF. Większość serwerów Flasha niezależnych producentów wykorzystuje własne języki skryptowe lub specyficzną składnię do rozszerzenia możliwości dynamicznego generowania zawartości. Każde narzędzie do generowania zawartości wykorzystuje własne metody przekazywania informacji umieszczanych w szablonie .SWT, podobnie jak używasz struktury Column Name/Value do określania danych umieszczanych w pliku .SWT przez Generator.

W tej sekcji pokrótce omówimy kilka popularnych na rynku narzędzi do Flasha niezależnych producentów. Główną zaletą tych narzędzi jest ich cena — są zdecydowanie tańsze do Generatora firmy Macromedia. Jednak dla większości z nich nie masz dostępu do pełnej pomocy technicznej.

Swift Generator firmy Swift Tools

Swift Generator (www.swift-tools.com), najbardziej znany rywal Generatora 2 firmy Macromedia, pozwala tworzyć pliki .SWF na podstawie szablonów .SWT. Nie potrafi jednak, jak Generator, tworzyć z szablonu .SWT obrazów .GIF, .JPEG, .PNG, filmów QuickTime Flash, itp. W czasie pisania tego tekstu Swift Generator jest już w pełni kompatybilny z językiem ActionScript Flasha 5. Aplikacja jest dostępna dla następujących platform: Linux, Windows, FreeBSD, Solaris, BSDi oraz Mac OS X Server.

SwiffPEG firmy SwiffTOOLS

SwiffPEG (www.swifftools.com) jest narzędziem pozwalającym na konwersję plików .MP3 do plików .SWF. Możesz zautomatyzować proces konwersji, więc zaoszczędzisz czas, który musiałbyś poświęcić na importowanie plików .MP3 do Flasha i publikację plików .SWF. Chociaż nie jest to prawdziwa aplikacja serwerowa, możesz tym programem sterować za pomocą skryptu. W czasie pisania tego tekstu serwerowa wersja SwiffPEG znajdowała się w fazie testów.

Flash Turbine firmy Blue Pacific

Flash Turbine (www.blue-pac.com) dynamicznie generuje pliki .SWF na podstawie szablonów .SWT. W odróżnieniu od Swift Generatora lub Macromedia Generatora do rysowania kształtów, umieszczania tekstu lub wstawiania obrazów i klipów filmowych wykorzystuje własny język skryptowy Draw Script. Istnieje kilka wersji aplikacji Flash Turbine. Warto wspomnieć o ASP Flash Turbine, która, jak sama nazwa wskazuje, współpracuje ze stronami ASP.

Form2Flash

Jeroen Kessels (inżynier do spraw Internetu) utworzył ten niewielki program CGI, który potrafi zamieniać teksty w filmach Flasha. Form2Flash (www.kessels.com/Form2Flash) nie potrafi dynamicznie generować obrazów jak Macromedia Generator, Swift Generator lub Flash Turbine. Program korzysta z formatowania zmiennych w stylu HTML (<nazwa makra>), a nie z formatowania wykorzystywanego przez Generator ({zmienna}). Nazwę makra deklarujesz w formularzu HTML, na przykład:

<FORM ACTION="/cgi-bin/form2flash.exe">

<INPUT TYPE="HIDDEN" NAME="myText" VALUE="Hello Flash.">

<INPUT TYPE="SUBMIT" VALUE="Submit">

</FORM>

Gdy formularz zostanie przesłany do programu Form2Flash, poszuka makra <macro myText> w polach tekstowych lub skryptach filmu Flasha i zamieni je na tekst „Hello Flash.”. Program jest dostępny na platformach Windows i UNIX.

Uwaga! Ten sam efekt możesz uzyskać, wykorzystując skrypt Flasha 4 lub 5. Omówienie tego sposobu znajdziesz na stronie www.kessels.com/form2flash/Flash4/.

OpenSWF.org

Możesz utworzyć własny program do generowania filmów Flasha, jeśli tylko chcesz i wiesz, jak tego dokonać. Najwięcej informacji na temat projektów ze swobodnym dostępem do kodów źródłowych programów dotyczących filmów Flasha znajdziesz na witrynie www.openswf.org. Oficjalne informacje na temat formatu .SWF znajdziesz na stronie www.macromedia.com/software/flash/open/licensing/.

Szare tło!

Uwaga na temat skryptów CGI

Jest to ogólne wyrażenie naszego zdania na temat skryptów serwera używanych wraz z filmami Flasha. W rozdziale 24., „Wyprowadzanie i pobieranie danych we Flashu”, pokazaliśmy, że można utworzyć skrypt serwera, który otrzymuje dane od filmu Flasha i wysyła je pod adres e-mail określony w skrypcie ActionScript (lub parametrze skryptu CGI). Większość skryptów Perl, ASP i PHP możesz tak zmodyfikować, aby współpracowały z filmem Flasha. Skrypty CGI są przydatne przy:

Koniec szarego tła!

Podsumowanie

Inną bardzo popularną technologią podobną do ASP jest PHP (przyp. tłum.).

Autor ma na myśli znaki diakrytyczne wszystkich języków poza językiem angielskim (przyp. tłum.).

2 Część I Podstawy obsługi systemu WhizBang (Nagłówek strony)

2 C:\helion\popf5b\r29-05.doc



Wyszukiwarka