greensock的tween源码阅读笔记
2013-12-05 20:05
330 查看
对于一个处于gc状态的tween,
如果这个gc状态是由kill触发的,那么直接从masterList删除
否则的话,被tweenlite的垃圾回收删除!
对于一个不是立即启动的tween,它被添加到timeline的时机是???
tweencore里面有一个add方法???
在tweenlite里面又有add方法???
对于一个延迟的delaycall,它的active一直是false,理论上是不会被调用的啊???
答:在timeline的render方法中,除了根据active判断,还有另外一个判断条件!!!
tweenlite作为一个独立的tween需要被insert到roottimeline中
timeline作为容器类的tween也需要被insert到roottimeline中,
但roottimeline也是一个timeline但它作为一个root,是不能被insert的
public function renderTime(time:Number, suppressEvents:Boolean=false, force:Boolean=false):void {
参数time表示从tween启动的时候到当前所经历的时间!
public function complete(skipRender:Boolean=false, suppressEvents:Boolean=false):void {
当skipRender为flase的时候,会调用renderTime,并把totalDurationTime作为参数,
就是想做最后一个渲染(渲染的结果就是这个tween的预想详解),然后直接结束这个tween!
suppressEvents表示是否跳过这个tween上的事件
一般,如果在tween还没有完成的时候,调用complete方法,那么onComplete方法是不会被执行的。
但对于delaycall这种类型的缓动,当调用complete时,onComplete方法是会被运行的!!
即是,duration为0的tween,在complete被调用时,onComplete参数会被运行!!
而对于非autoRemoveChildren的timeline,当上面的某个tween被complete时,这个tween是不会被移除的!!
换句话说,这个tween就不是处于gc状态,不会被回收!
也是说,一个tween的是否结束,是在renderTime函数中,感觉time和totalDurationTime的比较得到的!!
而renderTime发现这个tween已经执行完成,又会回调complete函数!
就是说,在complete和render之间又存在一个循环调用!!
虽然理论上complete函数是public的,但根据这个设计,外部应该是不能调用complete函数的,
而应该调用kill方法!
cachedOrphan
属性只有在tween被insert或者被remove的时候被修改
设置enable属性时,会被用到!
如果是timeline设置某个tween的enable属性,那么ignoreTimeline参数一般都是true,
因为timeline在设置enable的过冲中肯定会修改链表。
如果是tween自己设置enable属性,那么ignoreTimeline参数一般都是设置false
即:
一个tween在不在timeline中,也可能有timeline控制,也可能由tween自身控制
tween 和 timeline 可以互相控制彼此,在操作对方的时候,就保证对方不再来操作自己,不然会死循环!
未完待续...
如果这个gc状态是由kill触发的,那么直接从masterList删除
否则的话,被tweenlite的垃圾回收删除!
对于一个不是立即启动的tween,它被添加到timeline的时机是???
tweencore里面有一个add方法???
在tweenlite里面又有add方法???
对于一个延迟的delaycall,它的active一直是false,理论上是不会被调用的啊???
答:在timeline的render方法中,除了根据active判断,还有另外一个判断条件!!!
tweenlite作为一个独立的tween需要被insert到roottimeline中
timeline作为容器类的tween也需要被insert到roottimeline中,
但roottimeline也是一个timeline但它作为一个root,是不能被insert的
public function renderTime(time:Number, suppressEvents:Boolean=false, force:Boolean=false):void {
参数time表示从tween启动的时候到当前所经历的时间!
public function complete(skipRender:Boolean=false, suppressEvents:Boolean=false):void {
当skipRender为flase的时候,会调用renderTime,并把totalDurationTime作为参数,
就是想做最后一个渲染(渲染的结果就是这个tween的预想详解),然后直接结束这个tween!
suppressEvents表示是否跳过这个tween上的事件
一般,如果在tween还没有完成的时候,调用complete方法,那么onComplete方法是不会被执行的。
但对于delaycall这种类型的缓动,当调用complete时,onComplete方法是会被运行的!!
即是,duration为0的tween,在complete被调用时,onComplete参数会被运行!!
而对于非autoRemoveChildren的timeline,当上面的某个tween被complete时,这个tween是不会被移除的!!
换句话说,这个tween就不是处于gc状态,不会被回收!
也是说,一个tween的是否结束,是在renderTime函数中,感觉time和totalDurationTime的比较得到的!!
而renderTime发现这个tween已经执行完成,又会回调complete函数!
就是说,在complete和render之间又存在一个循环调用!!
虽然理论上complete函数是public的,但根据这个设计,外部应该是不能调用complete函数的,
而应该调用kill方法!
cachedOrphan
属性只有在tween被insert或者被remove的时候被修改
设置enable属性时,会被用到!
如果是timeline设置某个tween的enable属性,那么ignoreTimeline参数一般都是true,
因为timeline在设置enable的过冲中肯定会修改链表。
如果是tween自己设置enable属性,那么ignoreTimeline参数一般都是设置false
即:
一个tween在不在timeline中,也可能有timeline控制,也可能由tween自身控制
tween 和 timeline 可以互相控制彼此,在操作对方的时候,就保证对方不再来操作自己,不然会死循环!
未完待续...
相关文章推荐
- 广告终结者的自定义规则
- 遍历聚合对象中的元素——迭代器模式(三)
- 黑马程序员——数组的定义与常用的相关方法
- 遍历聚合对象中的元素——迭代器模式(二)
- 关于Authority-check
- C语言字符数组的应用
- iOS WebView的用法
- struts 2的配置(版本2.3)
- 遍历聚合对象中的元素——迭代器模式(一)
- Android HOME键那些事
- 黑马程序员 LINQ(1) 介绍LINQ、语法 总结
- Qt中的异步事件压缩合并
- setPositiveButton和setNegativeButton
- 黑马程序员——银行业务调度系统
- 数据仓库入门(实验2)创建数据源视图
- 数据仓库入门(实验2)创建数据源视图
- 数据仓库入门(实验2)创建数据源视图
- oracle 12c创建用户
- maven在eclipse中的创建及svn转化为maven
- su 和su -的区别