zoukankan      html  css  js  c++  java
  • greensock的tween源码阅读笔记

    对于一个处于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 可以互相控制彼此,在操作对方的时候,就保证对方不再来操作自己,不然会死循环!

    未完待续...

  • 相关阅读:
    Post请求的两种编码格式:application/x-www-form-urlencoded和multipart/form-data传参方式
    工作中常用的JavaScript函数片段
    解决导入导出Excel表格文字乱码问题
    清空antd-design时间选择组件 RangePicker的值
    react.js Hooks路由跳转
    linux跳板机服务器搭建
    docker及docker-compose学习
    Android Jenkins+Git+Gradle持续集成
    Windows Server 2008 R2常规安全设置及基本安全策略
    ubuntu lnmp安装及php扩展
  • 原文地址:https://www.cnblogs.com/tianlanliao/p/3460267.html
Copyright © 2011-2022 走看看