1
我有一个Flex应用程序从数据库加载一些数据。在此期间,我希望我的自定义预加载器保持可见状态。Flex预加载器必须可见,直到加载其他外部文件
困境是:当我在FlexEvent.INIT_COMPLETE
处理程序中推迟dispatchEvent(new Event(Event.COMPLETE))
时,加载将永远不会发生,因为未输入下一帧。
我怎样才能保持加载器运行,直到所有的数据完全加载?
我有一个Flex应用程序从数据库加载一些数据。在此期间,我希望我的自定义预加载器保持可见状态。Flex预加载器必须可见,直到加载其他外部文件
困境是:当我在FlexEvent.INIT_COMPLETE
处理程序中推迟dispatchEvent(new Event(Event.COMPLETE))
时,加载将永远不会发生,因为未输入下一帧。
我怎样才能保持加载器运行,直到所有的数据完全加载?
预加载器基本上是一个精灵。所有的flex组件都可以扩展精灵,所以你可以很容易地继续使用精灵。我不确定覆盖应用程序框架的部分是多么困难,它删除了预加载器精灵..但是,我认为您可以使用自定义组件将精灵添加回舞台。
您可能必须创建一个UIComponent并添加预加载器组件,以便可以将它与状态一起使用。然后将您的NEW UIComponent设置为默认状态。
以下是我的头顶上的“伪代码”。
public class MyFlexPreLoader extends UIComponent{
private var var preloader:YourBasePreLoader; //This is the preloader you're already using
override protected function createChildren(){
//Add the Preloader here!
preloader = new YourBasePreLoader();
addChild(preloader);
}
//Also add event listeners to manipulate your preloader to show the progress of loading stuff from DB
}
然后在你的应用程序
<comp:MyFlexPreLoader includeIn="preloading"/>
现在,当你完成从预加载改变应用程序将currentState了。您可能需要重写UIComponent中的更多方法才能使其正常工作。