[ Pobierz całość w formacie PDF ]
.Po okreœleniu wszystkich ustawieñ filmu Flasha mo¿esz umieœciæ sprite-aktora wscenie programu Director.!!!!!!!!!!!!!!!!!!! Pocz¹tek szarej ramki !!!!!!!!!!!!!!!!!!!!!Wykorzystanie Lingo do ³adowania filmów Flasha z wyprzedzeniemPodobnie jak w przypadku innych aktorów (Cast Members) Directora, sposób³adowania filmu Flasha do projektora lub filmu Shockwave mo¿e byæ okreœlonyprzy u¿yciu odpowiedniego skryptu Lingo.Je¿eli film Flasha ma stanowiæintegraln¹ czêœæ prezentacji odtwarzanej zawsze jako ca³oœæ, warto osadziæ gona sta³e w pliku z projektem Directora (ustawiamy to opcjami Media, opisanymi wpoprzednim podrozdziale).Je¿eli jednak prezentacja Shockwave ma zostaæopublikowana w sieci, mo¿esz zostawiæ film Flasha zapisany w osobnym pliku i wrazie koniecznoœci uaktualnienia tego filmu zmieniaæ tylko zawartoœæ pliku.SWF, a plik.DCR Directora pozostawiæ niezmienionym.W takim przypadku wartoopracowaæ mechanizm ³aduj¹cy film Flasha z wyprzedzeniem, zanim jeszcze nast¹pikolejnoœæ jego wyœwietlenia w prezentacji Directora — w³aœnie to zagadnienie mazostaæ zilustrowane niniejszym przyk³adem.Œcie¿kê dostêpu do pliku zapisanegolokalnie zapiszujemy nieco inaczej ni¿ œcie¿kê dostêpu do pliku znajduj¹cegosiê w Internecie — ten problem jest jednak ³atwy do rozwi¹zania przy u¿yciuLingo.W dowolnym projekcie Directora wykorzystuj¹cym pliki.SWF, które zamierzaszuaktualniaæ w regularnych odstêpach czasu, powinieneœ dynamicznie ustawiaæw³aœciwoœæ filename aktora za pomoc¹ skryptu Lingo.Opisane ni¿ej kroki poka¿¹,ci jjak wykrywaæ sposób odtwarzania filmu Directora (na przyk³ad przy u¿yciuprojektora lub odtwarzacza Shockwave Player) oraz jak modyfikowaæ zmieniaæ plikŸród³owy ³adowany do obsady filmu.1.WprowadŸ poni¿szy kod Lingo do edytora skryptu filmu (Movie Script) wprojekcie Directora (zwróæ uwagê na to, ¿e stosowany tu znak Ø oznacza tylkoprzeniesienie linii kodu do nastêpnego wiersza i nie powinieneœ stosowaæ go wkodzie skryptu):on prepareMovieglobal URLRootPathglobal shockPlayerif (the runMode contains "Projector") OR (the ØrunMode contains "Author") thenshockPlayer = falseelseshockPlayer = trueURLRootPath = "http://www.mojefilmy.com/flash5/"end ifend prepareMovieon initLoad meglobal URLRootPathglobal myNetIDglobal flashPathflashPath = URLRootPath & "mojaprodukcja.swf"set myNetID = preloadNetThing(flashPath)end initLoadDla zmiennej URLRootPath okreœl œcie¿kê dostêpu do pliku.SWF na serwerzesieciowym.Nie zapomnij wstawiæ ukoœnika na koñcu adresu, aby adres zosta³ onzapisany prawid³owo po dodaniu nazwy pliku w zdarzeniu initLoad.Nazwê plikuwystêpuj¹c¹ w linii flashPath równie¿ musisz zmieniæ na nazwê odpowiadaj¹c¹tTwojemu plikowi, który chcesz zaimportowaæ do projektu Directora.2.W oknie Score Directora zarezerwuj 10 ujêæ na pocz¹tku zakresu czasowego.Wujêciu nr 1 utwórz znacznik o nazwie initPreload, natomiast w ujêciu 5.wstawznacznik o nazwie loadLoop.Upewnij siê te¿, ¿e umieœci³eœ znacznik w ujêciu, wktórym nastêpuje pierwsza interakcja z filmem Directora (w tym przyk³adzieby³oby to nastêpne ujêcie po pierwszych 10 ujêciach, które wykorzystamy do³adowania filmu Flasha).W tym przyk³adzie u¿yliœmy znacznika z etykiet¹ introdo opisania tego ujêcia.3.Do ujêcia 1.wstaw nastêpuj¹cy skrypt typu Frame (Frame Script):on enterFrameglobal shockPlayerif shockPlayer = true theninitLoadelsego to "intro"end ifendSprawdzamy tutaj, czy detektor zdarzenia prepareMovie zwraca wartoœæ true(logiczna jedynka) czy false (logiczne zero) dla zmiennej shockPlayer.Jeœlifilm jest odtwarzany w przegl¹darce internetowej, wartoœæ zmiennej shockPlayerbêdzie true.W takim przypadku wykonujemy w skrypcie filmu (Movie Script) kodwprowadzony w detektorze zdarzenia initLoad.Nawiasem mówi¹c, detektory zdarzeñ(event handlers) w jêzyku Lingo funkcjonuj¹ bardzo podobnie jak w jêzykachActionScript i JavaScript.Jeœli film jest odtwarzany w œrodowisku Directora lub jako projektor, zmiennashockPlayer przyjmie wartoœæ false.W takim przypadku warunek else spowodujeprzejœcie do znacznika intro.4.W ujêciu 10.wprowadŸ nastêpuj¹cy skrypt typu Frame (Frame Script):on exitFrameglobal myNetID, flashPathif netDone(myNetID) = true thenmember("filmflasha").filename = flashPathgo to "intro"elsego to "loadLoop"end ifendSprawdzamy tutaj, czy polecenie preloadNetThing (wywo³ywane detektoremzdarzenia initLoad) zakoñczy³o ³adowanie pliku.SWF.Jeœli tak, œcie¿ka dostêpudo aktora filmflasha jest okreœlana na podstawie wartoœci zmiennej flashPath.Nastêpnie Director przechodzi do ujêcia opisanego znacznikiem intro irozpoczyna wyœwietlanie filmu Flasha.Je¿eli plik.SWF nie zosta³ jeszczeza³adowany, Director cofa siê w czasie do ty³u, do ujêcia ze znacznikiemloadLoop.Zakres czasowy pomiêdzy ujêciem loadLoop a ujêciem nr 10 bêdziepowtarzany tak d³ugo, a¿ plik.SWF nie zostanie za³adowany do odtwarzacza.Nazwê aktora filmflasha mo¿esz zmieniæ na nazwê lepiej pasuj¹c¹ do tTwojegoprojektu.Opisany tu mechanizm jest tylko prostym przyk³adem tego, jak mo¿na rozwi¹zaæproblem ³adowania filmu Flasha i podawania œcie¿ki dostêpu do pliku.SWF.Nieuwzglêdniliœmy tutaj miêdzy innymi mo¿liwoœci wyst¹pienia b³êdów podczas³adowania (skrypt w ujêciu nr 10.)
[ Pobierz całość w formacie PDF ]