Главная / Action Script 3
Пакетfl.controls
Классpublic class ProgressBarMode
НаследованиеProgressBarMode Inheritance Object

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9.0.28.0

Класс ProgressBarMode определяет значения для свойства mode класса ProgressBar.

См. также

ProgressBar.mode


Общедоступные свойства
 СвойствоОпределено
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
 Inheritedprototype : Object
[статические] Ссылка на модель объекта класса или функции.
Object
Общедоступные методы
 МетодОпределено
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
 Inherited
Возвращает строковое представление заданного объекта.
Object
 Inherited
Возвращает элементарное значение заданного объекта.
Object
Общедоступные константы
 Константа Определено
  EVENT : String = "event"
[статические] Компонент, заданный свойством source, должен отправлять сообщения о ходе выполнения, а также о завершении.
ProgressBarMode
  MANUAL : String = "manual"
[статические] Обновление состояния компонента ProgressBar вручную.
ProgressBarMode
  POLLED : String = "polled"
[статические] Ход выполнения обновляется с помощью запросов к источнику.
ProgressBarMode
Сведения о константе
EVENTКонстанта
public static const EVENT:String = "event"

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9.0.28.0

Компонент, заданный свойством source, должен отправлять сообщения о ходе выполнения, а также о завершении. Эти события используются ProgressBar для обновления состояния.

См. также


Пример

В следующем примере создаются экземпляры компонентов ProgressBar, Label и UILoader и отображается ход загрузки изображения:

import fl.containers.UILoader;
import fl.controls.Label;
import fl.controls.ProgressBar;
import fl.controls.ProgressBarMode;
import fl.events.ComponentEvent;

var url:String = "http://www.helpexamples.com/flash/images/image2.jpg";

var myUILoader:UILoader = new UILoader();
myUILoader.visible = false;
myUILoader.scaleContent = false;
myUILoader.autoLoad = false;
myUILoader.source = url;
myUILoader.addEventListener(ComponentEvent.RESIZE, resizeHandler);
myUILoader.load();

var myProgressBar:ProgressBar = new ProgressBar();
myProgressBar.mode = ProgressBarMode.EVENT;
myProgressBar.indeterminate = false;
myProgressBar.source = myUILoader;
myProgressBar.setSize(320, 12);
myProgressBar.move((stage.stageWidth - myProgressBar.width) / 2, (stage.stageHeight - myProgressBar.height) / 2);
myProgressBar.addEventListener(Event.COMPLETE, completeHandler);
myProgressBar.addEventListener(ProgressEvent.PROGRESS, progressHandler);
addChild(myProgressBar);

var myLabel:Label = new Label();
myLabel.text = "";
myLabel.autoSize = TextFieldAutoSize.LEFT;
myLabel.move(myProgressBar.x, myProgressBar.y + myProgressBar.height);
addChild(myLabel);

function progressHandler(event:ProgressEvent):void {
    trace("progress:", event.bytesLoaded, "of", event.bytesTotal, "bytes");
    myLabel.text = event.bytesLoaded + " of " + event.bytesTotal + " (" + event.currentTarget.percentComplete.toFixed(1) + "%)";
}

function completeHandler(event:Event):void {
    trace("complete:");
    removeChild(myLabel);
    removeChild(myProgressBar);
    myProgressBar.removeEventListener(ProgressEvent.PROGRESS, progressHandler);
    myProgressBar.removeEventListener(Event.COMPLETE, completeHandler);
    addChild(myUILoader);
}

function resizeHandler(event:ComponentEvent):void {
    trace("resize:");
    var myUILdr:UILoader = event.currentTarget as UILoader;
    myUILdr.move((stage.stageWidth - myUILdr.width) / 2, (stage.stageHeight - myUILdr.height) / 2);
    myUILdr.visible = true;
}
MANUALКонстанта  
public static const MANUAL:String = "manual"

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9.0.28.0

Обновление состояния компонента ProgressBar вручную. В этом режиме задаются свойства minimum и maximum, а также применяется метод setProgress() для указания состояния.

См. также


Пример

В следующем примере создаются кземпляры компонентов ProgressBar и Label, отражающие состояние индикатора выполнения:

import fl.controls.Label;
import fl.controls.ProgressBar;
import fl.controls.ProgressBarMode;

var myProgressBar:ProgressBar = new ProgressBar();
myProgressBar.indeterminate = false;
myProgressBar.mode = ProgressBarMode.MANUAL;
myProgressBar.maximum = 256;
myProgressBar.setSize(320, 16);
myProgressBar.move(10, 10)
addChild(myProgressBar);

var myLabel:Label = new Label();
myLabel.text = "";
myLabel.autoSize = TextFieldAutoSize.LEFT;
myLabel.move(myProgressBar.x, myProgressBar.y + myProgressBar.height);
addChild(myLabel);

var t:Timer = new Timer(150);
t.addEventListener(TimerEvent.TIMER, timerHandler);
t.start();

function timerHandler(event:TimerEvent):void {
    myProgressBar.setProgress(myProgressBar.value + 1, myProgressBar.maximum);
    if (myProgressBar.percentComplete == 100) {
        myProgressBar.setProgress(0, myProgressBar.maximum);
    }
    myLabel.text = int(myProgressBar.value) + " of " + int(myProgressBar.maximum) + " (" + int(myProgressBar.percentComplete) + "%)";
}
POLLEDКонстанта  
public static const POLLED:String = "polled"

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9.0.28.0

Ход выполнения обновляется с помощью запросов к источнику. Свойство source должно указывать объект, который делает доступными свойства bytesLoaded и bytesTotal.

См. также


Пример

ProgressBar используется в следующем примере для показа хода выполнения загрузки FLV-файла:

import fl.controls.ProgressBar;
import fl.controls.ProgressBarMode;

var url:String = "http://www.helpexamples.com/flash/video/cuepoints.flv";

var nc:NetConnection = new NetConnection();
nc.connect(null);

var ns:NetStream = new NetStream(nc);
ns.client = {onMetaData:metaDataHandler};
ns.play(url);

var vid:Video = new Video();
vid.attachNetStream(ns);
vid.x = (stage.stageWidth - vid.width) / 2;
vid.y = (stage.stageHeight - vid.height) / 2;
addChild(vid);

var myProgressBar:ProgressBar = new ProgressBar();
myProgressBar.mode = ProgressBarMode.POLLED;
myProgressBar.indeterminate = false;
myProgressBar.source = ns;
myProgressBar.setSize(vid.width, myProgressBar.height);
myProgressBar.move(vid.x, vid.y + vid.height);
addChild(myProgressBar);

function metaDataHandler(meta:Object):void {
    try {
        trace("w:" + meta.width, "h:" + meta.height);
        vid.width = meta.width;
        vid.height = meta.height;
        vid.x = (stage.stageWidth - vid.width) / 2;
        vid.y = (stage.stageHeight - vid.height) / 2;
        myProgressBar.width = vid.width;
        myProgressBar.move(vid.x, vid.y + vid.height);
    } catch (error:*) {
        // 
    }
}