- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第15讲组件的生命周期
第8章 Flex组件生命周期 第15讲 组件生命周期 教学目的 掌握Flex应用程序的事件序列 掌握Flex组件的生命周期 掌握Flex自定义组件的创建 掌握方法的重写 教学重点 Flex应用程序的事件序列 Flex组件的生命周期 教学难点 Flex自定义组件的创建 教学内容 课程导入:自定义 Flex 组件,很重要的是要理解 Flex 4 组件的生命周期。只有了解了组件的真实结构,我们才能创建出符合项目特殊需求的组件,本次课我们将学习Flex4 组件的生命周期。 组件生命周期的概念 不管你的组件是简单还是复杂,是控件还是容器,有几点是永远不变的,那就是: 正确地实例化; 正确地创建子组件,并且能够正确地显示出来; 当它展现的数据改变时,能够正确地重绘自身通知另外的组件。 这一系列动作都是 Flex 框架的一系列方法定义好的(如何理解?)。而执行这一系列方法的过程,也就是这个组件的生命周期。 Flex 应用程序的生命阶段 所有的生物生命周期我们都分为:出生,生长,成熟,死亡。正如生物的生命周期,Flex框架和它的组件也有相似的过程。 我们把Flex组件的生命周期分为三个时期:初生时期、生长时期、销毁时期 组件的继承 出生时期 为了详细了解组件的内部结构,我们将组件的出生时期又划分为4个阶段:构造,配置,装配和初始化。分别对应了 4 个 protected 方法,constructor、createChildren,commitProperties,measure 和 updatedisplayList。 constructor 首先组件从构造函数开始出生。当使用 new 操作符,或者在 mxml 里声明一个组件时,构造函数就被调用了,一个实例被创建在了内存里。但是仅此而已。因为他是组件生命周期的最早部分,此时组件中的子元素还没有被创建,属性值也不明,所以我们在这一阶段里所做的事情很少;但是一个为组件添加事件监听的好地方,因为一个组件的构造函数会且只会被调用一次,组件的构造函数不能带有参数 。 createChildren createChildren() 函数用于实例化你的组件中所有可视化组件,并使用其默认值进行初始化。类似构造函数,createChildren() 也只会被调用一次,所以,这是实例化可视化子元素的好地方 一个好的设计是,如果你的组件需要有很多绘制过程,那么可以把每一个绘制过程作为一个函数,在 createChildren() 中依次调用。 commitProperties commitProperties() 函数用于处理组件能够被外部代码影响到的属性的修改等的操作。例如使用 MXML 设置 Button 的 label 值s:Button label=Hello World / 所有属性的改变都应该在这个方法里面实现 measure measure() 函数与组件生命周期里面的其它函数有些不同。只有组件的 width 和 height 值没有设置的时候,measure() 函数才会被调用。因此,只要你设置了组件的 width 和 height 属性,measure() 也不会被调用,因为你已经制定了大小,Flex 不需要通过 measure() 再去计算组件的大小。 updatedisplayList 现在属性和大小这一切都准备停当之后,最后一个重要的函数就是,定义如何让我们的组件正确地显示出来。就是 updateDisplayList() 。 updateDisplayList() 函数是你的组件被显示出来之前的最后一步。它负责定义所有子组件的属性、位置和尺寸。此时,父容器已经计算出组件的最终大小,如果还有任何需要修改的地方,那么,在组件真正显示出来之前,这就是最后的地方了。 Flex应用程序的事件序列 在Flex 中,容器和组件都可以产生事件,但是事件序列不同 组件不需要考虑是否有子对象的问题,而容器不仅自身要完成创建过程,包含的子组件也要依次完成。 组件的启动序列 容器的启动序列 序列事件 Preinitialize:在初始化之前触发,对于容器来说,所有的子组件尚未定义。 Initialize:当组件或容器完成构造,并设置初始化属性后触发,这个阶段组件还没有完成最后的布局。 creationComplete:这个时候组件已经存在,可以调用对象和属性。 applicationComplete:所有组件初始化完成并显示 Flex 组件的生命周期可以总结为两个模式、三个时期、四个方法、五个事件、七个阶段 * preinitialize initialize creationComplete updateComplete preinitialize 容器 childAdd initializ
文档评论(0)