使用Flash Builder4.5,我通过扩展SparkDownloadProgressBar实现了一个自定义预加载器。现在,我希望预加载器留在屏幕上,直到我的应用程序加载了外部数据。一旦加载了应用程序外部数据,我希望让预加载器调度Event.COMPLETE事件。
其目的是要有一个3阶段预加载器。第一个加载RSL,第二个SWF,第三个应用程序将加载数据。
我重写了initCompleteHandler函数,所以一旦加载swf,它就不会触发Event.COMPLETE事件。我在预加载器中有一个名为removePreloader的公共函数,它会触发Event.COMPLETE事件。
应用程序中有一个名为preloader的属性,但它为空。
我的应用程序如何调用预加载器?
谢谢,加里
发布于 2011-11-04 20:44:12
我不确定这是否是最优雅的AS3解决方案,但它正在工作。如果你有更好的方法,请发帖。
public var preloaderFinalFireFunction:Function;在预加载器(它扩展了SparkDownloadProgressBar)中,我覆盖了initCompleteHandler,以便将预加载器中的函数分配给应用程序。
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));
}https://stackoverflow.com/questions/7907801
复制相似问题