|
Składnik ProgressBar wyświetla postęp ładowania treści, co stanowi istotną informację dla użytkownika, gdy treść ma znaczną objętość, a jej ładowanie może opóźnić wykonanie aplikacji. Składnik ProgressBar jest użyteczny podczas wyświetlania postępu ładowania obrazów i elementów aplikacji. Proces ładowania może być określony lub nieokreślony. Pasek postępu
determinate
stanowi liniową reprezentację postępu zadania w czasie i jest używany, gdy ilość treści do załadowania jest znana. Pasek postępu
indeterminate
jest używany wówczas, gdy ilość treści do załadowania nie jest znana. Istnieje również możliwość dodania składnika Label w celu wyświetlania postępu w postaci wartości procentowej.
Składnik ProgressBar korzysta z 9-plastrowej skali i zawiera karnację paska, karnację śledzenia i karnację indeterminate.
Posługiwanie się składnikiem ProgressBar
Istnieją trzy tryby korzystania ze składnika ProgressBar. Najczęściej używane są tryby: zdarzenie i próbkowanie. Te tryby określają proces ładowania, który generuje zdarzenia
progress
i
complete
(tryby zdarzeń i próbkowania) lub udostępnia właściwości
bytesLoaded
i
bytesTotal
(tryb próbkowania). Składnik ProgressBar może być również używany w trybie ręcznym — w tym celu należy ustawić właściwości
maximum
,
minimum
oraz
value
wraz z wywołaniami metody
ProgressBar.setProgress()
. Właściwość indeterminate można ustawić w taki sposób, aby określała, czy składnik ProgressBar zawiera wypełnienie w paski oraz źródło nieznanej wielkości (
true
) lub wypełnienie ciągłe i źródło znanej wielkości (
false
).
W celu określenia trybu składnika ProgressBar należy ustawić jego właściwość
mode
— za pośrednictwem parametru
mode
w Inspektorze właściwości lub Inspektorze składników albo za pomocą języka ActionScript.
Gdy składnik ProgressBar służy do prezentacji statusu przetwarzania, np. analizowania 100000 elementów — wówczas, jeśli składnik znajduje się w pojedynczej pętli klatki, aktualizacje składnika ProgressBar nie będą widoczne, ponieważ zawartość ekranu nie będzie odświeżana.
Parametry składnika ProgressBar
Dla każdej instancji składnika ProgressBar można w Inspektorze właściwości lub w Inspektorze składników ustawić następujące parametry:
direction
,
mode
i
source
. Dla każdego z tych parametrów istnieje odpowiednia właściwość ActionScript o takiej samej nazwie.
Istnieje możliwość napisania kodu ActionScript w celu kontrolowania tych i innych opcji dla składnika ProgressBar z wykorzystaniem jego właściwości, metod i zdarzeń. Więcej informacji zawiera opis klasy ProgressBar w
Skorowidzu języka ActionScript 3.0
dla programu Flash Professional
.
Tworzenie aplikacji ze składnikiem ProgressBar
Poniższa procedura wyjaśnia jak podczas tworzenia dodać składnik ProgressBar do aplikacji. W przykładzie składnik ProgressBar korzysta z trybu zdarzenia. W trybie zdarzeń ładowana treść generuje zdarzenia
progress
i
complete
, które rozsyła składnik ProgressBar w celu określenia postępu. Gdy wystąpi zdarzenie
progress
, w przykładzie dochodzi do aktualizacji etykiety w celu przedstawienia procentu załadowanej treści. Gdy wystąpi zdarzenie
complete
, w przykładzie zostaje wyświetlony komunikat “Loading complete” oraz wartość właściwości
bytesTotal
, która jest wielkością pliku.
-
Utwórz nowy dokument Flash (ActionScript 3.0).
-
Przeciągnij składnik ProgressBar z panelu Składniki na stół montażowy.
-
W Inspektorze właściwości wprowadź dla instancji nazwę
aPb
.
-
W sekcji Parametry wprowadź
200
dla wartości X.
-
Wprowadź
260
dla wartości Y.
-
Wybierz
event
dla parametru
mode
.
-
Przeciągnij składnik Button z panelu Składniki na stół montażowy.
-
W Inspektorze właściwości wprowadź dla instancji nazwę
loadButton
.
-
Wprowadź
220
dla parametru X.
-
Wprowadź
290
dla parametru Y.
-
Dla parametru
label
wprowadź
Load Sound
.
-
Przeciągnij składnik Label na stół montażowy i nadaj instancji nazwę
progLabel
.
-
Wprowadź
150
dla wartości Sz.
-
Wprowadź
200
dla parametru X.
-
Wprowadź
230
dla parametru Y.
-
W sekcji Parametry usuń wartość parametru
text
.
-
Otwórz panel Operacje, zaznacz klatkę nr 1 na głównej osi czasu i wprowadź następujący kod ActionScript ładujący pliki dźwiękowe mp3:
import fl.controls.ProgressBar;
import flash.events.ProgressEvent;
import flash.events.IOErrorEvent;
var aSound:Sound = new Sound();
aPb.source = aSound;
var url:String = "http://www.helpexamples.com/flash/sound/song1.mp3";
var request:URLRequest = new URLRequest(url);
aPb.addEventListener(ProgressEvent.PROGRESS, progressHandler);
aPb.addEventListener(Event.COMPLETE, completeHandler);
aSound.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
loadButton.addEventListener(MouseEvent.CLICK, clickHandler);
function progressHandler(event:ProgressEvent):void {
progLabel.text = ("Sound loading ... " + aPb.percentComplete);
}
function completeHandler(event:Event):void {
trace("Loading complete");
trace("Size of file: " + aSound.bytesTotal);
aSound.close();
loadButton.enabled = false;
}
function clickHandler(event:MouseEvent) {
aSound.load(request);
}
function ioErrorHandler(event:IOErrorEvent):void {
trace("Load failed due to: " + event.text);
}
-
Wybierz polecenie Sterowanie > Testuj film.
Tworzenie aplikacji ze składnikiem ProgressBar w trybie próbkowania
Poniższy przykład przedstawia ustawianie trybu próbkowania dla składnika ProgressBar. W trybie próbkowania postęp jest określony na podstawie wykrywania zdarzeń
progress
dla treści oraz za pomocą właściwości
bytesLoaded
i
bytesTotal
w celu obliczenia postępu. Ten przykład ładuje obiekt Sound, wykrywa zdarzenia
progress
obiektu i oblicza załadowany procent, wykorzystując w tym celu właściwości
bytesLoaded
i
bytesTotal
. Załadowany procent jest wyświetlany na etykiecie oraz na panelu Wyjście.
-
Utwórz nowy dokument Flash (ActionScript 3.0).
-
Przeciągnij składnik ProgressBar z panelu Składniki na stół montażowy i wprowadź dla niego w Inspektorze właściwości następujące wartości:
-
Dla nazwy instancji wprowadź
aPb
.
-
Dla wartości X wprowadź
185
.
-
Dla wartości Y wprowadź
225
.
-
Przeciągnij składnik Label na stół montażowy i określ dla niego następujące wartości w Inspektorze właściwości:
-
Dla nazwy instancji wprowadź
progLabel
.
-
Dla wartości X wprowadź
180
.
-
Dla wartości Y wprowadź
180
.
-
W sekcji Parametry usuń wartość parametru text.
-
Otwórz panel Operacje, zaznacz klatkę nr 1 na głównej osi czasu i wprowadź następujący kod ActionScript, który utworzy obiekt Sound (
aSound
) i wywoła metodę
loadSound()
w celu załadowania dźwięku do obiektu Sound:
import fl.controls.ProgressBarMode;
import flash.events.ProgressEvent;
import flash.media.Sound;
var aSound:Sound = new Sound();
var url:String = "http://www.helpexamples.com/flash/sound/song1.mp3";
var request:URLRequest = new URLRequest(url);
aPb.mode = ProgressBarMode.POLLED;
aPb.source = aSound;
aSound.addEventListener(ProgressEvent.PROGRESS, loadListener);
aSound.load(request);
function loadListener(event:ProgressEvent) {
var percentLoaded:int = event.target.bytesLoaded / event.target.bytesTotal * 100;
progLabel.text = "Percent loaded: " + percentLoaded + "%";
trace("Percent loaded: " + percentLoaded + "%");
}
-
Wybierz polecenia Sterowanie > Testuj film, aby uruchomić aplikację.
Tworzenie aplikacji ze składnikiem ProgressBar w trybie ręcznym
Poniższy przykład przedstawia ustawianie trybu ręcznego dla składnika ProgressBar. W trybie ręcznym postęp należy ustawiać ręcznie, wywołując metodę
setProgress()
i wprowadzając do niej bieżące i maksymalne wartości w celu określenia zakresu postępu. W trybie ręcznym nie jest ustawiana właściwość
source
. W przykładzie wykorzystano składnik NumericStepper o wartości maksymalnej równej 250, który służy do zwiększania składnika ProgressBar. Gdy wartość w składniku NumericStepper ulegnie zmianie i wywoła zdarzenie
CHANGE
, wówczas moduł obsługi zdarzeń (
nsChangeHander
) wywoła metodę
setProgress()
w celu modyfikacji składnika ProgressBar. Nastąpi również wyświetlenie procentu postępu na podstawie wartości maksymalnej.
-
Utwórz nowy dokument Flash (ActionScript 3.0).
-
Przeciągnij składnik ProgressBar z panelu Składniki na stół montażowy i określ dla niego następujące wartości w Inspektorze właściwości:
-
Dla nazwy instancji wprowadź
aPb
.
-
Wprowadź
180
dla wartości X.
-
Wprowadź
175
dla wartości Y.
-
Przeciągnij składnik NumericStepper na stół montażowy i określ dla niego następujące wartości w Inspektorze właściwości:
-
Dla nazwy instancji wprowadź
aNs
.
-
Wprowadź
220
dla wartości X.
-
Wprowadź
215
dla wartości Y.
-
W sekcji Parametry wprowadź
250
dla parametru maximum,
0
dla wartości minimum,
1
dla parametru
stepSize
oraz
0
dla parametru value.
-
Przeciągnij składnik Label na stół montażowy i określ dla niego następujące wartości w Inspektorze właściwości:
-
Dla nazwy instancji wprowadź
progLabel
.
-
Wprowadź
150
dla wartości Sz.
-
Wprowadź
180
dla wartości X.
-
Wprowadź
120
dla wartości Y.
-
Na karcie Parametry usuń wartość Label parametru text.
-
Otwórz panel Operacje, zaznacz klatkę nr 1 na głównej osi czasu i wprowadź następujący kod:
import fl.controls.ProgressBarDirection;
import fl.controls.ProgressBarMode;
import flash.events.Event;
aPb.direction = ProgressBarDirection.RIGHT;
aPb.mode = ProgressBarMode.MANUAL;
aPb.minimum = aNs.minimum;
aPb.maximum = aNs.maximum;
aPb.indeterminate = false;
aNs.addEventListener(Event.CHANGE, nsChangeHandler);
function nsChangeHandler(event:Event):void {
aPb.value = aNs.value;
aPb.setProgress(aPb.value, aPb.maximum);
progLabel.text = "Percent of progress = " + int(aPb.percentComplete) + "%";
}
-
Wybierz polecenia Sterowanie > Testuj film, aby uruchomić aplikację.
-
Kliknij przycisk strzałki w górę składnika NumericStepper, aby zwiększyć wartość składnika ProgressBar.
Tworzenie składnika ProgressBar przy użyciu kodu ActionScript
W poniższym przykładzie przedstawiono tworzenie składnika ProgressBar za pomocą języka ActionScript. Niniejszy przykład — oprócz tego, że tworzy składnik — stanowi kopię poprzedniego przykładu, który tworzy składnik ProgressBar w trybie ręcznym.
-
Utwórz nowy dokument Flash (ActionScript 3.0).
-
Przeciągnij składnik ProgressBar do panelu Biblioteka.
-
Przeciągnij składnik NumericStepper do panelu Biblioteka.
-
Przeciągnij składnik Label do panelu Biblioteka.
-
Otwórz panel Operacje, zaznacz klatkę nr 1 na głównej osi czasu i wprowadź następujący kod:
import fl.controls.ProgressBar;
import fl.controls.NumericStepper;
import fl.controls.Label;
import fl.controls.ProgressBarDirection;
import fl.controls.ProgressBarMode;
import flash.events.Event;
var aPb:ProgressBar = new ProgressBar();
var aNs:NumericStepper = new NumericStepper();
var progLabel:Label = new Label();
addChild(aPb);
addChild(aNs);
addChild(progLabel);
aPb.move(180,175);
aPb.direction = ProgressBarDirection.RIGHT;
aPb.mode = ProgressBarMode.MANUAL;
progLabel.setSize(150, 22);
progLabel.move(180, 150);
progLabel.text = "";
aNs.move(220, 215);
aNs.maximum = 250;
aNs.minimum = 0;
aNs.stepSize = 1;
aNs.value = 0;
aNs.addEventListener(Event.CHANGE, nsChangeHandler);
function nsChangeHandler(event:Event):void {
aPb.setProgress(aNs.value, aNs.maximum);
progLabel.text = "Percent of progress = " + int(aPb.percentComplete) + "%";
}
-
Wybierz polecenia Sterowanie > Testuj film, aby uruchomić aplikację.
-
Kliknij przycisk strzałki w górę składnika NumericStepper, aby zwiększyć wartość składnika ProgressBar.
|
|
|