在flex中是否存在init()方法,如Servlet init()只执行一次

时间:2011-07-25 15:02:23

标签: flex flex3 flex4 flexbuilder

Flex有任何init(),destroy()方法。就像Servlet一样,init()方法将在Application初始化时运行,如果刷新页面也不会再次调用它。

2 个答案:

答案 0 :(得分:2)

我建议不要使用initialize事件,而是使用creationComplete。所有UIComponent在完成构建自己及其子项时调度该事件。组件初始化后,此事件执行一次,有机会自行测量,执行布局并添加到舞台中。

<mx:Application ... creationComplete="init()"/>
   <mx:Script>
       private function init() : void {
           ...  // put your initialization routine here
       }
   </mx:Script>
</mx:Application>

答案 1 :(得分:1)

所有flex组件(包括根“application”组件)都有一个“initlize”事件,您可以监听并处理它。

如果您希望它只运行ONCE,无论刷新,您都需要以某种方式存储变量,例如使用本地共享对象。这很容易做到:

private function onInit():void{
  var appSO:SharedObject = SharedObject.getLocal("yourappdata");
  if(appSO.size < 0){
    //do your init code
    appSO.data.initialized = true;
    appSO.flush();
  }
}