Flash Builder 4.5 :: Preloader :: Как получить доступ к объекту preloader из приложения - PullRequest
0 голосов
/ 26 октября 2011

Работа с Flash Builder 4.5 Я реализовал пользовательский предварительный загрузчик, расширив SparkDownloadProgressBar.Теперь я хочу, чтобы предварительный загрузчик оставался на экране, пока мое приложение не загрузилось во внешних данных.После загрузки внешних данных приложения я хочу, чтобы предварительный загрузчик отправил событие Event.COMPLETE.

Цель состоит в том, чтобы иметь трехфазный предварительный загрузчик.1-я загрузка RSL, 2-я SWF, 3-е приложение будет загружать данные.

Я переопределил функцию initCompleteHandler, поэтому она не вызывает событие Event.COMPLETE после загрузки SWF.У меня есть публичная функция в preloader с именем removePreloader, которая запускает событие Event.COMPLETE.

В приложении есть свойство с именем preloader, но оно равно null.

Как мое приложение может вызывать preloader?

Спасибо, Гари

1 Ответ

0 голосов
/ 04 ноября 2011

Я не уверен, что это самое элегантное решение AS3, но оно работает. Если у вас есть лучший метод, пожалуйста, напишите.

В приложении mxml я добавил следующую переменную:

public var preloaderFinalFireFunction:Function;

В предварительном загрузчике (который расширяет SparkDownloadProgressBar) я переопределяю initCompleteHandler , чтобы назначить функцию, которая находится внутри предварительного загрузчика, приложению. Когда я готов к удалению прелоадера, приложение вызывает preloaderFinalFireFunction ();

override protected function initCompleteHandler(event:Event):void{
  var app:MyApplication = MyApplication(FlexGlobals.topLevelApplication);
  app.preloaderFinalFireFunction = removePreloader;
}

protected function removePreloader():void{
  var app:MyApplication = MyApplication(FlexGlobals.topLevelApplication);
  app.preloaderFinalFireFunction = null;
  dispatchEvent(new Event(Event.COMPLETE));
}
...