`
KB章鱼
  • 浏览: 26911 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Feathers之component的生命周期

 
阅读更多

Component的生命周期,她从创建到销毁都会经历好几个阶段

1.实例化: 通常是通过new创建, 还没有被添加到舞台上, 属性可能会被改变, 但是她不会处理这些属性直到她被添加到舞台上(我认为这点很重要,请牢记), 这样确保了她不会频繁的调用绘制处理.

 

2.初始化: 当她被添加到舞台上的时候, initialize()函数会被调用, 她会做第一次验证, 如果每个属性都已经是无效状态, 那么她会做一次全面的绘制.

 

3.验证: 执行draw()函数的时候, 她会根据已经改变的属性进行相应的显示处理. 如果她的尺寸没有被指定, 她会自动的计算理想的高和宽, 这些高和宽会被setSizeInternal使用, 然后setSizeInternal的过程中她的属性(最低高度和最低宽度)就会进行相应的尺寸验证以决定最终的高度和宽度.

 

4.渲染: 在Starling渲染显示列表之前她自动的进行验证, 所以她是不需要重写Starling的render函数的.

 

5.无效化: 每当她的一个属性改变时, 无效化函数invalidate()就应该被调用, 当然必须是带参数的, 无效化的类型我们常见的有size/layout/selection. 她是可以拥有自己特有的无效化标志的, 不过在FeathersControl的protected属性的变量中已经为我们定义了很多有用的无效化标志. 设置无效化之后, 她之后做的就是在下一次Starling渲染之前进行一次验证.

 

6.移除: 从显示列表移除后, 她将不会在进行验证的过程了, 除非她又被重新添加到显示列表之中. 

 

7.销毁: 和Starling的显示对象一样, 她也拥有dispose()函数, 通常函数进行移除事件监听/销毁子对象之类的事. 这不是必须的, 但官方还是推荐大家要这么做.

 

8.GC: 当所有她的引用都被清除后, 她就是等着被GC的对象了

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics