ActionScript ProgressBar ProgressBarMode.СОБЫТИЕ

#events #actionscript #progress-bar

#Мероприятия #actionscript #индикатор выполнения

Вопрос:

я новичок в flash и actionscript.

страницу, о которой идет речь, можно увидеть здесь .

мой код AS:

 import fl.video.*;
import fl.controls.ProgressBar;
import fl.controls.ProgressBarMode;
import flash.events.ProgressEvent;
import fl.events.ComponentEvent;

// FLVplayback control
splashVid.visible = false;

progressBar.mode = ProgressBarMode.EVENT;
progressBar.indeterminate = false;
progressBar.source = splashVid;

progressBar.addEventListener(Event.COMPLETE, doSwitch);
progressBar.addEventListener(ProgressEvent.PROGRESS, progressHandler);

function progressHandler(event:ProgressEvent):void
{
    iLabel.text = Math.round(event.bytesLoaded).toString();
}

function doSwitch(e:Event):void
{
    iLabel.text = "loaded";
}
  

проблема в том, что обратный вызов progressHandler работает правильно (ProgressEvent.ПРОГРЕСС). обратный вызов doSwitch никогда не срабатывает (событие.ЗАВЕРШЕНО).

не могли бы вы любезно объяснить ошибку в моем подходе?

ЦЕЛЬ: я пытаюсь загрузить файл mp4 фиксированного размера, а затем использовать ПОЛНОЕ событие для визуализации элементов управления видеоклипом.

Спасибо.

РЕДАКТИРОВАТЬ: ПОЛНОЕ событие запускается сейчас после тестирования, но оно запускается после воспроизведения всего клипа. как мне выполнить запуск event.complete после загрузки, но не воспроизведения видеофайла? Спасибо.

РЕДАКТИРОВАТЬ: я мог бы провести сравнение между загруженными байтами и totalbytes в progressHandler… но проблема в том, что анимация прогресса никогда не завершается полностью, и я хотел бы отобразить полную панель прогресса перед переключением настроек отображения.

РЕДАКТИРОВАТЬ: панель прогресса завершает анимацию загрузки, если я не скрою ее после загрузки полного файла, чтобы решить мою проблему.

ОДНАКО: я все еще открыт для советов относительно того, есть ли лучший способ сделать это, используя какое-то ПОЛНОЕ событие, которое срабатывает после полной загрузки исходного файла mp4. Спасибо.

Ответ №1:

Предполагая, что вы используете FLVPlayer

Не уверен в ваших соглашениях об именах, но если я правильно прочитал код, splashVid — это имя экземпляра вашего FLVPlayer.
итак, что вам нужно сделать, это прослушать проигрыватель, а не индикатор выполнения.
Согласно ДОКУМЕНТАМ

 splashVid.addEventListener(VideoEvent.READY, doSwitch);
  

Если это неверно, вам нужно удалить все свои правки и опубликовать 1 вопрос и более подробную информацию о вашем приложении.

Комментарии:

1. Видео-событие. READY сообщает о метаданных, таких как длительность, и срабатывает при начале загрузки, а не когда весь клип готов / загружен.