Korzystając z tej strony zgadzasz się z polityką prywatności i regulaminem.
Akceptuj
WebInside.plWebInside.plWebInside.pl
  • Aktualności
  • Technologie
  • WWW
  • E-marketing
  • AI
  • Poradniki
  • e(Biznes)
Szukaj
  • Kontakt
  • Forum
WebInside.pl © 2023.
Czytasz: Preloader w ActionScript 3
Udostępnij
Zaloguj się
Powiadomienia
Aa
WebInside.plWebInside.pl
Aa
Szukaj
  • Strona główna
  • Aktualności
  • Technologie webowe
  • Publicystyka
  • E-marketing
  • Poradniki
  • AI
  • Technologie
  • Artykuły partnerskie
  • Więcej
    • Kontakt
    • Mapa strony
Masz już konto? Zaloguj się
  • Aktualności
  • Technologie
  • WWW
  • E-marketing
  • AI
  • Poradniki
  • e(Biznes)
WebInside.pl © 2023.
WebInside.pl > Technologie webowe > Preloader w ActionScript 3
Technologie webowe

Preloader w ActionScript 3

WebInside.pl
Ostatnia aktualizacja: 22.09.2010
WebInside.pl
Udostępnij
Udostępnij

W tym tutorialu pokaże jak stworzyć plik SWF wczytujący inny plik SWF posiadający graficzną wizualizację postępu pobierania danych, czyli tzw. preloader. Wykorzystamy do tego ActionScript 3.

Zawartość
1. Wstęp2. Klasa dokumentu3. Podsumowanie

1. Wstęp

Otwieramy program Flash CS3/4/5 wybieramy kolejnoFile -> New… -> Flash File (ActionScript 3.0)
Zapisujemy plik fla,File -> Save i nadajemy nazwę np.: preloader.

2. Klasa dokumentu

Klasa dokumentu reprezentuje główny timeline pliku fla, konstruktor tej klasy jest pierwszą metodą która jest wywoływana zaraz po pobraniu SWF przez przeglądarkę i posiada zawsze taką samą nazwę jak deklarowana klasa.

Ustawmy jeszcze aby wszystkie elementy sceny, które posiadają identyfikator w zakładce Properties musiały być jawnie deklarowane za pomocą zmiennej publicznej w klasie dokumentu wybieramy kolejno:


File -> Publish Settings -> Flash -> Settings i odznaczamyAutomatically declare stage instances(GFX -> Publish Settings).Ustawmy jeszcze katalog publikacji wybieramy kolejno:File -> Publish Settings zakładka Formats w polu Flash(.swf) wpisujemybin/szablon.swf oraz tworzymy w katalogu naszego projektu folder o nazwie bin oraz odznaczamy HTML (.html),(GFX -> Formats).

Utwórzmy teraz plik actionScript (as) który będzie reprezentował naszą klasę dokumentu wybieramy kolejno: File -> New … -> ActionScript File,Zapisujemy plikFile -> Save i nadajemy mu nazwę np.: Preloader.


Dobrym stylem programowania jest aby nazwa klasy była pisana z dużej litery.Więcej na temat klasy dokumentu znajdziesz w lekcji Klasa dokumentu.Podsumowując nasza klasa dokumentu, będzie początkowo miała następującą postać:


package{import flash.display.MovieClip;public class Preloader extends MovieClip{//konstruktor klasypublic function Preloader() {}}}


Umieścimy na scenie dynamiczne pole tekstowe i nadamy mu nazwę percent w zakładce Properties, które będzie obrazowało procentowy postęp pobieranych danych(GFX -> Percent).Spróbujmy teraz opublikować nasz plik wybieramy kolejnoControl -> Test Movie (Ctrl+Enter).


Dzięki temu, że odznaczyliśmy Automatically declare stage instances otrzymamy błąd typu: ReferenceError: Error #1056: Nie można utworzyć właściwości percent w Preloader.Wymusza to dodanie zmiennej typu publicznego w naszej klasie, a zatem dodajmy ją:


public var percent:TextField;


oraz uzupełniamy naszą klasę o deklarację klasy TextField


import flash.text.TextField;


Ustalimy także sposób w jaki pole tekstowe ma wyświetlać tekst, a mianowicie ustawmy aby szerokość pola tekstowego zawsze dopasowywała się do podanej treści dopiszemy zatem linię:


percent.autoSize = TextFieldAutoSize.CENTER;


oraz dopiszemy:


if (stage) init(null);else addEventListener(Event.ADDED_TO_STAGE, init);


dzięki czemu zabezpieczymy się na wypadek gdyby wartość stage posiadała wartość null.Oraz dodajemy deklaracje klasy TextFieldAutoSize:


import flash.text.TextFieldAutoSize;


Deklarujemy metodę init(), w której ustalamy sposób wyświetlania elementów sceny oraz ilość odtwarzanych klatek na sekundę stage.frameRate. Wszystkie elementy nie będą skalowane wraz ze zmianą rozmiaru sceny, oraz cała zawartość sceny będzie zawsze wyrównana do jej górnego lewego rogu.


private function init(e:Event):void {removeEventListener(Event.ADDED_TO_STAGE, init);stage.scaleMode = StageScaleMode.NO_SCALE;stage.align = StageAlign.TOP_LEFT;stage.frameRate = 25;}


dodajemy deklarację klas


import flash.display.StageAlign;import flash.display.StageScaleMode;


opublikujmy jeszcze raz nasz plik (Ctrl+enter), teraz w zakładce OUTPUT nie powinno być już żadnego komunikatu o błędzie.Dodajmy kolejno kod odpowiedzialny za wczytanie pliku SWF, dopiszemy zmienną klasy Loader:


private var _loader:Loader;


oraz dwie metody służące do ustalania oraz zwracania wartości przechowywanej w tej zmiennej tzw setter getter:


public function get loader():Loader { return _loader; }public function set loader(value:Loader):void {_loader = value; }w metodzie init() dopiszemy natomiaststage.addEventListener(Event.RESIZE, onResize);onResize(null);loader = new Loader();configureListeners(loader.contentLoaderInfo);loader.load(new URLRequest("szablon.swf"));dopiszemy deklarację klasy URLRequestimport flash.net.URLRequest;zdefiniujemy metodę onResize() która uaktualnia pozycję pola tekstowego podczas zmiany rozmiaru sceny np.: podczas zmiany rozmiaru okna przeglądarkiprivate function onResize(e:Event):void {percent.x = (stage.stageWidth - percent.width) / 2;percent.y = (stage.stageHeight - percent.height) / 2;}


oraz zdefiniujmy metodę configureListeners()


private function configureListeners(dispatcher:IEventDispatcher):void {dispatcher.addEventListener(Event.COMPLETE, completeHandler);dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);dispatcher.addEventListener(Event.INIT, initHandler);dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);dispatcher.addEventListener(Event.OPEN, openHandler);dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);dispatcher.addEventListener(Event.UNLOAD, unLoadHandler);}


dodajmy deklaracje użytych klas czyli:


import flash.events.IEventDispatcher;import flash.events.Event;import flash.events.HTTPStatusEvent;import flash.events.IOErrorEvent;import flash.events.ProgressEvent;


Kolejno deklarujemy metody:
Metoda httpStatusHandler zawiera określone informacje o zdarzeniach dotyczących stanu HTTP.


private function httpStatusHandler(event:HTTPStatusEvent):void {trace("httpStatusHandler: " + event);}


Metoda initHandler() wywoływana jest po zajściu zdarzenia init, które jest wywoływane po udostępnieniu właściwości i metod załadowanego pliku SWF, co umożliwia jego manipulację. Zdarzenie jest wywoływane przed procedurą zdarzenia complete. Przy strumieniowaniu plików SWF zdarzenie init może pojawić się znacznie wcześniej niż zdarzenie complete:

private function initHandler(event:Event):void {trace("initHandler: " + event);}


Metoda openHandler() wywoływana jest przy rozpoczęciu ładowania.


private function openHandler(event:Event):void {trace("openHandler: " + event);}


Metoda unLoadHandler() jest wywoływana, gdy załadowany SWF jest usuwany metodą unload().


private function unLoadHandler(event:Event):void {trace("unLoadHandler: " + event);}


Metoda ioErrorHandler() jest wywoływana, w sytuacji gdy plik nie może być załadowany lub przy wystapieniu błedu w trakcie ładowania.


private function ioErrorHandler(e:IOErrorEvent):void {throw new Error(e.text);trace("ioError");}


Metoda progressHandler() jest wywoływana ciągle w trakcie ładowania pliku. W tej metodzie możemy odczytać zarówno ilość już pobranych danych event.bytesLoaded jak i ich całkowitą ilość event.bytesTotal w bajtach. Dzięki czemu w prosty sposób możemy obliczyć stosunek procentowy ilości danych już pobranych do ilości całkowitej zapisany jakoMath.round((event.bytesLoaded / event.bytesTotal) * 100)
i wyświetlić go użytkownikowi w polu tekstowym percent.


private function progressHandler(event:ProgressEvent):void {trace("progressHandler: bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);percent.text = Math.round((event.bytesLoaded / event.bytesTotal) * 100) + "%";}


Metoda completeHandler() jest wywoływana w momencie zakończenia ładowanego pliku. W tej metodzie dodamy pobrany kontent do scenyaddChild(LoaderInfo(e.target).content);
oraz usuniemy ze sceny niepotrzebne już pole tekstowe percent:


removeChild(percent);private function completeHandler(e:Event):void {addChild(LoaderInfo(e.target).content);trace("załadowano plik swf");removeChild(percent);}

Na końcu dodajmy jeszcze tylko deklarację klasy LoaderInfo

import flash.display.LoaderInfo;


i na tym zakończyliśmy tworzenie preloadera wczytującego plik SWF.Plik SWF który jest wczytywany pochodzi z lekcji Klasa dokumentu, a zatem po jego wczytaniu powinniśmy ujrzeć napisdodaj flashVars ‘xmlURL’ w kodzie HTML.


Aby zasymulować proces pobierania pliku SWF, a tym samym zobaczyć postęp procentowy preloadera należy opublikować plik wybierającControl -> Test Movie (Ctrl+Enter), następnie ustawiamy prędkość pobierania danychView -> Download Settings i zaznaczamy np.: 14.4 (1.2 KB/s),na końcu uruchamiamy symulację pobierania danych wybierającView -> Simulate Download (Ctrl+Enter),(GFX -> Simulate Download).

3. Podsumowanie

W ten sposób poznaliśmy jak wczytać plik SWF do innego pliku SWF, oraz zobrazować postęp pobierania danych w nim zawartych. Przedstawiona metoda świetnie nadaje się jako główny preloader strony obrazując postęp wczytywania jej elementów wyświetlanych w pierwszej kolejności osobie odwiedzającej daną witrynę.

Więcej informacji na temat ładowania plików Flash a także tworzenia stron internetowych we Flashu znajdziesz w obszernym .

Pliki źródłowe do tego tutoriala możesz pobrać

Może Cię zainteresować

Stanowisko web developera w 2026: co naprawdę przyspiesza pracę — i za co nie warto przepłacać

AI kontra klasyczne kreatory stron: kto tu naprawdę wygrywa?

Jak wybrać i zarejestrować domenę? Praktyczny przewodnik dla firm i osób prywatnych

Komentarze w CSS – jak dodawać i do czego służą? Przykłady użycia

Co to jest REST API i na jakich zasadach działa? Przewodnik dla początkujących

WebInside.pl 2010-09-22 2010-09-22
Udostępnij ten artykuł
Facebook Twitter Kopiuj link Wydrukuj
Udostępnij
Poprzedni artykuł Historia Gadu-Gadu
Następny artykuł Jak rozpocząć programowanie w ActionScript 3?
Zostaw komentarz lub opinię

Dodaj komentarz Anuluj pisanie odpowiedzi

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *

Najnowsze artykuły

A smartwatch with a dark textured band and a colorful app icon display
Smartwatch jak mały komputer – dlaczego naprawa Apple Watch wymaga dziś specjalistycznej technologii?
Poradniki
Stanowisko web developera w 2026: co naprawdę przyspiesza pracę — i za co nie warto przepłacać
Technologie webowe
Close-up of gold and silver cryptocurrency coins on a digital trading chart.
Bybit po ataku za 1,5 miliarda dolarów: co giełda zmieniła i co sprawdzisz sam
Artykuły partnerskie
Odnowiony iPhone jako telefon testowy – dlaczego osoby z branży IT sięgają po refurbished zamiast nowego?
Artykuły partnerskie
Jak wybrać odpowiedni tablet przemysłowy dla firmy? Przewodnik po systemach i parametrach
Artykuły partnerskie
black and silver microphone on brown wall
Podcasty robione z AI. Jak zmienia się polska scena audio
AI
Europa ostrzega polskich podróżnych: latanie nad Rosją lub w jej pobliżu to realne ryzyko
Technologie
Unitre logo with abstract peach shapes on a grey background
Unitree zaprezentował robota Supermana. Biegnie szybciej, niż Usain Bolt
Aktualności Technologie
AI potrafi już księgować faktury. Co będzie następne? Co lepiej zostawić specjalistom?
AI
Pink "claude" logo on clear panels against a golden background
Claude Fable 5 – kompletny przewodnik po pierwszym publicznym modelu klasy Mythos
AI
banner
Chcesz umieścić swoją reklamę w portalu WebInside.pl?
Skontaktuj się z nami, a zaproponujemy interesujące formy reklamy.
Skontaktuj się

Inne polecane artykuły

Technologie webowe

Stanowisko web developera w 2026: co naprawdę przyspiesza pracę — i za co nie warto przepłacać

7 min czytania
a computer screen with the words the easy way to build marketplaces
Technologie webowe

AI kontra klasyczne kreatory stron: kto tu naprawdę wygrywa?

5 min czytania
Technologie webowe

Jak wybrać i zarejestrować domenę? Praktyczny przewodnik dla firm i osób prywatnych

5 min czytania
Technologie webowe

Komentarze w CSS – jak dodawać i do czego służą? Przykłady użycia

17 min czytania
Technologie webowe

Co to jest REST API i na jakich zasadach działa? Przewodnik dla początkujących

21 min czytania
Technologie webowe

Marginesy i dopełnienie w CSS – czym się różnią właściwości margin i padding?

17 min czytania
Technologie webowe

Co to jest localhost (127.0.0.1) i do czego służy w programowaniu?

14 min czytania
Technologie webowe

Kim jest backend developer i za co odpowiada w projekcie IT?

22 min czytania
//

WebInside.pl – portal technologiczny. Aktualności ze świata technologii, webmastering, marketing internetowy, AI, poradniki.

 

Partnerzy



Wszystkie kategorie

  • AI
  • Aktualności
  • Artykuły partnerskie
  • E-marketing
  • e(Biznes)
  • Poradniki
  • Publicystyka
  • Technologie
  • Technologie webowe

Ostatnio dodane

  • Smartwatch jak mały komputer – dlaczego naprawa Apple Watch wymaga dziś specjalistycznej technologii?
  • Stanowisko web developera w 2026: co naprawdę przyspiesza pracę — i za co nie warto przepłacać
  • Bybit po ataku za 1,5 miliarda dolarów: co giełda zmieniła i co sprawdzisz sam
  • Odnowiony iPhone jako telefon testowy – dlaczego osoby z branży IT sięgają po refurbished zamiast nowego?

Kontakt

Chcesz się z nami skontaktować? Jesteś zainteresowany reklamą lub artykułem sponsorowanym?

Skorzystaj z formularza kontaktowego lub napisz do nas na kontakt@webinside.pl

WebInside.plWebInside.pl
WebInside.pl © 2023 | Mapa strony | Forum | Polityka prywatności
Witaj ponownie!

Zaloguj się do swojego konta

Zapomniałeś hasła?