TweenMax.ticker

TweenMax.ticker : Object
设置动画核心引擎,每当引擎update时这个对象将分配tick事件,你可以添加你自己的listener来运行自定义逻辑(非常适合游戏开发人员) 。

简约的监听方法

//添加监听
TweenMax.ticker.addEventListener("tick", myFunction);

function myFunction() {
//核心引擎update时处理这个事件
}

//移除监听
TweenMax.ticker.removeEventListener("tick", myFunction);
目前主流浏览器都由requestAnimationFrame事件驱动,通常,requestAnimationFrame事件每秒发生约60次,但这取决于浏览器并且还取决于系统性能。如果requestAnimationFrame 不支持,则ticker会自动回退到使用setTimeout()这种所有浏览器都支持的常规模式。

自定义ticker

要ticker使用setTimout()而不是requestAnimationFrame,您可以使用useRAF()方法:
//关闭requestAnimationFrame,切换ticker使用setTimeout()来替换
TweenMax.ticker.useRAF(false);]

如果你想调整帧速率,可以使用fps()方法,帧速率超过60无效
//帧速调整为30
TweenMax.ticker.fps(30);
如果你确实想将帧速率调整到100(不推荐),你可以先把requestAnimationFrame关闭TweenMax.ticker.useRAF(false)转为setTimeout(),再设定TweenMax.ticker.fps(100)即可。

完整的监听方法

如果你还想定义一下监听函数的作用域等,可以这样写
addEventListener(type, callback, scope, useParam, priority)
参数名 类型 必填 说明
type String 监听类型,一般是"tick"
callback Function 事件触发的函数
scope Object 限定函数的范围,一般是"this"
useParam Boolean 如果设置为true每次触发时将产生事件对象,事件对象包含type(一般是"tick")和target,默认是false以提高性能
priority Integer 函数调用的优先级,高级的比低级的优先处理
//添加请求事件对象参数event的侦听器,将范围绑定到当前范围(this),并将优先级设置为1,以便优先处理
 TweenMax.ticker.addEventListener("tick", myFunction, this, true, 1);
 
function myFunction(event) {
    //核心引擎update时处理这个事件
}
 
//移除监听
 TweenMax.ticker.removeEventListener("tick", myFunction);
TweenMax.ticker适用于TweenMaxTweenLite

TweenMax.ticker效果展示

  • HTML
  • CSS
  • JS
  • 展示
.box {
    width:50px;
    height:50px;
    border-radius:6px;
    margin-top:4px;
    display:inline-block
  }
.green{
    background-color:#6fb936;
  }
new TweenMax('.box', 3, {
    x: 500,
});
TweenMax.ticker.fps(3);//设置帧速率为3,每秒钟触发三次tick监听事件
TweenMax.ticker.addEventListener("tick", myFunction,this,true,1);
function myFunction(event) {
    console.log(event);//useParam设置为true时产生事件对象,如果设置为false则event为undefined但会提高性能
}
重播

转载原创文章请注明:文章转载自:TweenMax中文网 [https://www.tweenmax.com.cn]
本文地址:https://www.tweenmax.com.cn/api/tweenmax/TweenMax.ticker

  • 上一篇:.vars
  • 下一篇:没有了