Adobe Flex Application LifeCycle


  Flex的根对象就是SystemManager,而不是我们平常看到的Application。
  SystemManager是第一个在Flex应用中被创建的Display Class,继承自flash.dispaly.MovieClip,所以才能实现Preloader和Application的2个frame。
  SystemManager有一个topLevelSystemManager对象,指向一个SystemManager实例,是所有当前在flash player运行的任何东西的根(root),如果flex被作为主应用加载到flash player则上述属性将指向其本身(self-refrencing),但当flex应用是被另一flex应用载入的,其自身的SystmenManager的topLevelSystemManager属性则不是自引用了,而是指向其父应用的SystemManager实例。所有UIComponent的子类都有一个systemManager属性指向应用的SystemManager实例,在被SystemManger实例监听的component的事件发生冒泡时,其将拥有事件处理链上最后的处理权。 Preloader
  Preloader是一个轻量级的类,在systemManager的第一帧被实例化,preloader会dispatch出一系列的事件,由progress bar监听实现loading界面,一旦应用进入第二帧待application初始化后会借由system manager通知preloader初始化进度,preloader通知system manager其准备待删除,主要是一些初始化设定和下载runtime share library。
  Preloader的事件: 
  progress
  Indicates download progress
  complete
  Indicates that the download is complete
  rslError
  Indicates that a runtime shared library could not load
  rslProgress
  Indicates the download progress for a runtime shared library
  rslComplete
  Indicates that the download is complete for runtime shared libraries
  initProgress
  Indicates that the application is initializing
  initComplete
  Indicates that the application has initialized
  在理解Preloader的同时也要反方向思考纯AS工程中如何做Preloader,以前就写过 AS3工程 Custom Preloader 动态加载 Application可以进行思考。 Application
  Application是我们平日用到的最多的类,在systemManager的第二帧被实例化,它是一个单例化的类,因此无论你new多少个Class它都会指向同一个instance实体,根据创建时间的进度,它同样会dispatch出一系列的事件。
  Application的事件:
  preinitialize
  application已经实例化但尚未创建任何child component
  initialize
  已经创建child component但未对其进行布局(lay out)
  creationComplete
  application已经完成实例化并完成所有child component的布局
  applictionComplete
  已经准备完成Flex SWF必要的初始化

你可能感兴趣的:(application)