Flash Builder 4.5 :: Preloader :: 如何从应用程序访问预加载器对象

发布于 2024-12-11 19:32:02 字数 406 浏览 0 评论 0原文

使用 Flash Builder 4.5,我通过扩展 SparkDownloadProgressBar 实现了自定义预加载器。现在我希望预加载器保留在屏幕上,直到我的应用程序加载外部数据。加载应用程序外部数据后,我想让预加载器分派 Event.COMPLETE 事件。

目的是拥有一个三相预加载器。 第一次加载 RSL, 第二个SWF, 第三个应用程序将加载数据。

我已经重写了 initCompleteHandler 函数,因此在加载 swf 后它不会触发 Event.COMPLETE 事件。我在预加载器中有一个名为removePreloader的公共函数,它会触发Event.COMPLETE事件。

应用程序中有一个名为 preloader 的属性,但它为空。

我的应用程序如何调用预加载器?

谢谢, 加里

Working with Flash Builder 4.5 I have implemented a custom preloader by extending SparkDownloadProgressBar. Now I want the preloader to stay on the screen until my Application has loaded in external data. Once the Application external data has loaded, I want to have the preloader dispatch the Event.COMPLETE event.

The intent is to have a 3 phase preloader.
1st load the RSLs,
2nd the SWF,
3rd application will load the data.

I've overridden the initCompleteHandler function so it does not fire the Event.COMPLETE event once the swf is loaded. I have a public function in the preloader called removePreloader which fires the Event.COMPLETE event.

There is a property in the Application named preloader but it's null.

How can my application call the preloader?

Thanks,
Gary

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

溺孤伤于心 2024-12-18 19:32:02

我不确定这是否是最优雅的 AS3 解决方案,但它确实有效。如果您有更好的方法,欢迎留言。

application 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));
}

I'm not sure if this is the most elegant AS3 solution but it is working. If you have a better method, please post.

In the application mxml, I added the following variable:

public var preloaderFinalFireFunction:Function;

In the preloader (which extends SparkDownloadProgressBar) I override the initCompleteHandler to assign a function that's inside the preloader to the application. When i'm ready for the preloader to be removed, the application calls 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));
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文