组件的生命周期旨在防止多次赋值改变属性,而导致多次渲染造成cpu或内存负荷。考虑到这一点,所以采取了生命周期这一用法。
生命周期,首先将属性更改的值先存储在一个过渡变量中,并不马上赋值给相应的UI组件,而是采用分为2帧的做法,在第一帧中,只做纯粹的代码计算操作,
不涉及对UI的属性操作,只是在利用过渡变量不断的更新需要提交的最新属性值,利用invalidate【失效函数】将要所标记失效的UI置于全局的Layout布局类的对应
失效队列中,属性失效队列,尺寸失效队列,布局失效队列,然后通过addEventListener(EVENT.ENTER_FRAME)的帧事件侦听,预定下一帧进行validate【生效函数】,
然后在layOut中的validate中通过遍历队列中的UI,然后分别调用validate的生效函数,然后将过渡的属性值整整切切的与UI挂钩,使其发生实质的变化。在渲染阶段
中按照顺序依次执行提交阶段,尺寸阶段,布局阶段,属性提交阶段,这里由外到内的顺序依次进行改变,尺寸阶段,由内到外依次进行改变。
然后分别调用了各自UI的validate的函数,根据所处的阶段,各自调用commit属性提交,measure尺寸计算,updateDisplayObject的界面改变。
measure的函数在没有明确规定explicitWidth和explicitHeight下,规定默认的measureWIdth和measureHeight的值,或默认的最大最小的宽高属性。
而updateDisplayObject中,设置位于该UI中的子组件的宽高和和坐标的函数,通过setActual设置宽高,通过move设置x,y值。