Есть ли метод init () во Flex, как Servlet init () только один раз выполнить - PullRequest
2 голосов
/ 25 июля 2011

Flex, имеющий любой метод init (), destroy (). Как и в случае с Servlet, метод init () будет запускаться при инициализации приложения и никогда не вызывать его снова, если также обновить страницу.

Ответы [ 2 ]

2 голосов
/ 25 июля 2011

Я бы предложил не использовать событие initialize, а вместо этого использовать creationComplete. Все UIComponent отправляют это событие, когда они заканчивают строить себя И своих детей. Это событие выполняется один раз после того, как компонент был инициализирован, имел возможность измерить себя, выполнить макет и добавить на сцену.

<mx:Application ... creationComplete="init()"/>
   <mx:Script>
       private function init() : void {
           ...  // put your initialization routine here
       }
   </mx:Script>
</mx:Application>
1 голос
/ 25 июля 2011

Все компоненты flex, включая корневой компонент application, имеют событие initlize, которое вы можете прослушивать и обрабатывать.

Если вы хотите, чтобы он запускался только ОДИН РАЗ, независимо от обновления, вынужно как-то хранить переменную, например, с локальным общим объектом.Это довольно легко сделать:

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