本文和大家重点讨论一下FlexApplication初始化顺序,Flex组件在建立的时候都会经历四个事件:preinitialize, initialize, creationComplete和updateComplete,而FlexApplication初始化顺序是preloader->systemManager->FlexApplicationstarted。
创新互联建站专注于铁西网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供铁西营销型网站建设,铁西网站制作、铁西网页设计、铁西网站官网定制、小程序制作服务,打造铁西网络公司原创品牌,更为您提供铁西网站排名全网营销落地服务。
FlexApplication初始化顺序
FlexApplication初始化顺序是preloader->systemManager->FlexApplicationstarted...
◆preinitialize
在所有的初始化之前触发,没有子组件的定义,但是可以引用组件的变量.
◆initialize
当所有子组件生成完成后触发,在这个时间点还没有组件被渲染出来.
◆reationComplete
组件定义完成并已经在显示列表.
◆applicationComplete
所有的组件初始化完成并显示.
首先介绍一下SystemManager.SystemManager是Flex应用的主控者,它控制着应用窗口,Application实例,弹出窗口,cursors,并管理着ApplicationDomain中的类.SystemManager是FlashPlayer实例化的***个类,它存储了主应用窗口的大小和位置信息,保存其子组件比如:浮动弹出窗口和模态窗口的痕迹.通过SystemManager可以获得内嵌字体,样式和document对象.
自定义的可视化组件(UIComponent的子类)只有在调用过addChild()后,才会有一个SystemManager赋给他们,之前是Null.所以在自定义可视化组件的构造函数中不要使用SystemManager.
Application对象创建时发生事件:
1.实例化Application对象
2.FlexApplication初始化Application.systemManager
3.Application在初始化过程之前,派发预初始化事件.
4.调用createChild().此时,所有应用组件被创建,所有组件的createChild()被调用.
5.Application派发初始化事件,表明所有的组件初始化完毕.
6.派发creationComplete事件
7.Application对象添加到显示列表中
8.派发applicationComplete事件
大多数情况下,我们使用
Flash包含的是一个时间线上的多个帧,而Flex的SWF只包含2个帧.SystemManager,Preloader,DownloadProgressBar和少量工具类都在***帧,剩下的包括应用代码/内嵌资源全都在第二帧中.当FlashPlayer下载下载SWF时,只要接收到***帧内足够的数据,就会实例化SystemManager,由它来创建Preloader,然后创建DownloadProgressBar,这两个对象会察看剩余字节的传输过程.当***帧的所有字节传输完毕后,SystemManager发送enterFrame到第二帧,然后是其他事件.***Application对象派发applicationComplete事件.
Flex是一个事件驱动的编程模型,任何事情的发生,其背后必然存在一个事件.而开发者***次看到MXML时,很难体会到一个Xml标记的应用的事件流和实例化的生命周期.这个对于HTML和Flash的开发者尤其会感到困惑,因为其熟悉的方式与Flex的一点也不相似.HTML的实例化是从上到下的,Flash的执行是从Frame0开始一帧帧运行的.而Flex则又有不同.
从我们开始学习Flex时,我们就需要了解事件流和MXML的实例化.我非常困惑因为我实在难以理解什么样的事件会被触发或者事件什么时候会被触发.关键是要理解事件的基础并亲自观察事件流的初始化.
分享题目:解读FlexApplication初始化顺序
本文来源:http://www.gawzjz.com/qtweb/news31/178681.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联