当前位置: 首页 > 文档资料 > TweenMax 中文文档 >

TweenMax.ticker

优质
小牛编辑
125浏览
2023-12-01

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)
参数名类型必填说明
typeString监听类型,一般是"tick"
callbackFunction事件触发的函数
scopeObject限定函数的范围,一般是"this"
useParamBoolean如果设置为true每次触发时将产生事件对象,事件对象包含type(一般是"tick")和target,默认是false以提高性能
priorityInteger函数调用的优先级,高级的比低级的优先处理
//添加请求事件对象参数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的参数

TweenMax.ticker 示例

.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.ticker返回值

TweenMax.ticker的补充说明