Il componente ProgressBar visualizza l'avanzamento del caricamento di un contenuto, che rassicura l'utente quando il contenuto è di grandi dimensioni e può ritardare l'esecuzione dell'applicazione. Questo componente risulta utile per visualizzare l'avanzamento del caricamento di immagini e parti di un'applicazione. Il processo di caricamento può essere di tipo determinato o indeterminato. Una barra di avanzamento
determinata
è una rappresentazione lineare dell'avanzamento di un'attività nel tempo ed è usata quando è nota la quantità di contenuto da caricare. Una barra di avanzamento
indeterminata
viene usata quando la quantità di contenuto da caricare non è nota. Potete aggiungere un componente Label per visualizzare l'avanzamento del caricamento sotto forma di percentuale.
Il componente ProgressBar usa la modifica in scala a 9 porzioni e dispone di uno skin per la barra, uno per la traccia e uno skin indeterminato.
Interazione dell'utente con il componente ProgressBar
Le modalità possibili in cui usare il componente ProgressBar sono tre. Le modalità più comunemente usate sono event e polled, che specificano un processo di caricamento che genera gli eventi
progress
e
complete
(modalità event e polled) oppure espone le proprietà
bytesLoaded
e
bytesTotal
(modalità polled). Inoltre, potete usare il componente ProgressBar in modalità manuale impostando le proprietà
maximum
, minimum
e
value
congiuntamente a chiamate del metodo
ProgressBar.setProgress()
. Potete impostare la proprietà
indeterminate
per indicare se il componente ProgressBar ha un riempimento a strisce e un'origine di caricamento di dimensione sconosciuta (
true
) oppure un riempimento uniforme e un'origine di caricamento di dimensione nota (false).
Per specificare la modalità del componente ProgressBar, impostate la relativa proprietà
mode
mediante il parametro
mode
nella finestra di ispezione Proprietà o nella finestra di ispezione dei componenti, oppure mediante ActionScript.
Se usate il componente ProgressBar per visualizzare lo stato di elaborazione, ad esempio per analizzare 100.000 voci, e se il componente si trova in un ciclo di un solo fotogramma, gli aggiornamenti del componente non saranno visibili in quanto lo schermo non viene ridisegnato.
Parametri del componente ProgressBar
I seguenti parametri possono essere impostati per ogni istanza del componente ProgressBar nella finestra di ispezione Proprietà o nella finestra di ispezione dei componenti:
direction
,
mode
e
source
. Ciascuno di questi parametri ha una proprietà ActionScript corrispondente con lo stesso nome.
È possibile creare il codice ActionScript per controllare queste e altre opzioni del componente ProgressBar utilizzandone le proprietà, i metodi e gli eventi. Per ulteriori informazioni, vedete la classe ProgressBar nella
Guida di riferimento di ActionScript 3.0
per Flash Professional
.
Creare un'applicazione con il componente ProgressBar
Nella procedura seguente viene illustrato come aggiungere un componente ProgressBar a un'applicazione durante la creazione. In questo esempio, il componente ProgressBar viene usato in modalità event. In modalità event, il contenuto in fase di caricamento genera eventi
progress
e
complete
che il componente invia per indicare l'avanzamento. Nell'esempio, quando si verifica l'evento
progress
viene aggiornata un'etichetta per visualizzare la percentuale di contenuto caricata. Nell'esempio, quando si verifica l'evento
complete
vengono visualizzati un messaggio di caricamento completato e il valore della proprietà
bytesTotal
che corrisponde alle dimensioni del file.
-
Create un nuovo documento Flash (ActionScript 3.0).
-
Trascinate il componente ProgressBar dal pannello Componenti allo stage.
-
Nella finestra di ispezione Proprietà, inserite
aPb
come nome di istanza.
-
Nella sezione Parametri, inserite
200
per il valore X.
-
Inserite
260
per il valore Y.
-
Selezionate
event
per il parametro
mode
.
-
Trascinare il componente Button dal pannello Componenti allo stage.
-
Nella finestra di ispezione Proprietà, immettete
loadButton
come nome di istanza.
-
Inserite
220
per il parametro X.
-
Inserite
290
per il parametro Y.
-
Inserite
Load Sound
per il parametro
label
.
-
Trascinate il componente Label nello stage e assegnate il nome di istanza
progLabel
.
-
Inserite
150
per il valore W.
-
Inserite
200
per il parametro X.
-
Inserite
230
per il parametro Y.
-
Nella sezione Parametri, cancellate il valore del parametro
text
.
-
Aprite il pannello Azioni, selezionate il fotogramma 1 nella linea temporale principale, quindi inserite il codice ActionScript seguente, che carica un file audio .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);
}
-
Selezionare Controllo > Prova filmato.
Creare un'applicazione con il componente ProgressBar in modalità polled
Nell'esempio seguente il componente ProgressBar viene impostato in modalità polled. In modalità polled, l'avanzamento è determinato mediante l'ascolto degli eventi
progress
nel contenuto caricato e usando le relative proprietà
bytesLoaded
e
bytesTotal
per calcolare l'avanzamento. In questo esempio viene caricato un oggetto Sound, vengono ascoltati gli eventi
progress
e viene calcolata la percentuale caricata usando le proprietà
bytesLoaded
e
bytesTotal
. La percentuale caricata viene visualizzata sia in un'etichetta che nel pannello Output.
-
Create un nuovo documento Flash (ActionScript 3.0).
-
Trascinate un componente ProgressBar dal pannello Componenti allo stage e assegnategli i seguenti valori nella finestra di ispezione Proprietà:
-
Inserite
aPb
come nome dell'istanza.
-
Inserite
185
per il valore X.
-
Inserite
225
per il valore Y.
-
Trascinate un componente Label nello stage e immettete i seguenti valori nella finestra di ispezione Proprietà:
-
Inserite
progLabel
come nome dell'istanza.
-
Inserite
180
per il valore X.
-
Inserite
180
per il valore Y.
-
Nella sezione Parametri, cancellate il valore del parametro text.
-
Aprite il pannello Azioni, selezionate il fotogramma 1 nella linea temporale e immettete il codice ActionScript seguente, che crea un oggetto Sound (
aSound
) e chiama il metodo
loadSound()
per caricare un suono nell'oggetto 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 + "%");
}
-
Selezionate Controllo > Prova filmato per eseguire l'applicazione.
Creare un'applicazione con il componente ProgressBar in modalità manual
Nell'esempio seguente il componente ProgressBar viene impostato in modalità manual. In modalità manual, dovete impostare l'avanzamento manualmente chiamando il metodo
setProgress()
e specificando i valori corrente e massimo per determinare il livello di avanzamento. In modalità manual, la proprietà
source
non viene impostata. In questo esempio, per incrementare il componente ProgressBar, viene usato un componente NumericStepper con un valore massimo di 250. Quando il valore nel componente NumericStepper cambia e attiva un evento
CHANGE
, il gestore di eventi (
nsChangeHander
) chiama il metodo
setProgress()
per l'avanzamento di ProgressBar. Viene inoltre visualizzata la percentuale di avanzamento completata, in base al valore massimo.
-
Create un nuovo documento Flash (ActionScript 3.0).
-
Trascinate il componente ProgressBar dal pannello Componenti allo stage e assegnategli i seguenti valori nella finestra di ispezione Proprietà:
-
Inserite
aPb
come nome dell'istanza.
-
Inserite
180
per il valore X.
-
Inserite
175
per il valore Y.
-
Trascinate un componente NumericStepper nello stage e immettete i seguenti valori nella finestra di ispezione Proprietà:
-
Inserite
aNs
come nome dell'istanza.
-
Inserite
220
per il valore X.
-
Inserite
215
per il valore Y.
-
Nella sezione Parametri, inserite
250
per il parametro maximum,
0
per il valore minimum,
1
per il parametro stepSize e
0
per il parametro value.
-
Trascinate un componente Label nello stage e immettete i seguenti valori nella finestra di ispezione Proprietà:
-
Inserite
progLabel
come nome dell'istanza.
-
Inserite
150
per il valore W.
-
Inserite
180
per il valore X.
-
Inserite
120
per il valore Y.
-
Nella sezione Parametri, cancellate il valore Label del parametro text.
-
Aprite il pannello Azioni, selezionate il fotogramma 1 nella linea temporale principale, quindi immettete il codice seguente:
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) + "%";
}
-
Selezionate Controllo > Prova filmato per eseguire l'applicazione.
-
Fate clic sulla freccia su del componente NumericStepper per determinare l'avanzamento di ProgressBar.
Creare un componente ProgressBar mediante ActionScript
In questo esempio viene creato un componente ProgressBar mediante ActionScript. Inoltre, viene duplicata la funzionalità dell'esempio precedente, in cui viene creato un componente ProgressBar in modalità manual.
-
Create un nuovo documento Flash (ActionScript 3.0).
-
Trascinate un componente ProgressBar nel pannello Libreria.
-
Trascinate il componente NumericStepper nel pannello Libreria.
-
Trascinate il componente Label nel pannello Libreria.
-
Aprite il pannello Azioni, selezionate il fotogramma 1 nella linea temporale principale, quindi immettete il codice seguente:
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) + "%";
}
-
Selezionate Controllo > Prova filmato per eseguire l'applicazione.
-
Fate clic sulla freccia su del componente NumericStepper per determinare l'avanzamento di ProgressBar.
|
|
|