removeAllTweens () 静态
停止并删除所有现有的补间。
removeTweens (target ) 静止的
删除目标的所有现有补间。override 如果属性为,则新补间会自动调用此函数true。
如上两个停止 tween 的全局方法,1停止全部 tween,2停止目标上的全部 tween
那么,如何停止单个 tween ?实际上并没有停止单个 tween 的方法 function
但是有个属性 paused 布尔值 设置为 true 可以停止单个 tween
paused 布尔值
暂停或取消暂停补间。暂停的补间将从全局注册表中删除,
并且如果不存在对其的其他引用,则有资格进行垃圾回收。
如下示例停止单个tween:
var tween = createjs.Tween.get(target) .wait(500) .to({alpha:0, visible:false}, 1000) .call(handleComplete);
setTimeout(fn,500)//500毫秒触发计时器
function fn()
{
tween.paused = true //停止 tween
}
重点提示:如何停止目标上的特定 tween ?
答:并没有这样的方法,但是,我们可以自己写实现。
先来看看 停止目标上的全部 tween 的源码
Tween.removeTweens = function(target) {
if (!target.tweenjs_count) { return; }
var tween = Tween._tweenHead;
while (tween) {
var next = tween._next;
if (tween.target === target) { Tween._register(tween, true); }
tween = next;
}
target.tweenjs_count = 0;
};
根据这个方法,我们修改一下就可以实现我们要的效果,如下:
createjs.Tween.removeAllTargetTweens = function (target, tag){ if (!target.tweenjs_count) { return; } let tween = createjs.Tween._tweenHead; while (tween) { let next = tween._next; if (tag && tween.target === target && tween._stepTail.props.tag === tag) { tween.paused = true; } if (!tag && tween.target === target) { tween.paused = true; } tween = next; }}
方法已经写出来了,下面看看只能使用:
createjs.Tween.get(this.role).to({ x: this.role.x + 500, tag: "x" }, 2000) createjs.Tween.get(this.role).to({ y: this.role.x + 500, tag: "x2" }, 5000) createjs.Tween.get(this.role).to({alpha:0.1, tag: "x" }, 2000)
写了3个 tween 注意看 tag
停止目标上的全部 tween
createjs.Tween.removeAllTargetTweens(this.role);
停止目标上的特定tween tag
createjs.Tween.removeAllTargetTweens(this.role, "x");
就是说,不传入tag那么就停止目标的全部tween
传入tag就停止目标上的全部tag的 tween
感谢大家围观 createjs 爱好者
停止并删除所有现有的补间。
removeTweens (target ) 静止的
删除目标的所有现有补间。override 如果属性为,则新补间会自动调用此函数true。
如上两个停止 tween 的全局方法,1停止全部 tween,2停止目标上的全部 tween
那么,如何停止单个 tween ?实际上并没有停止单个 tween 的方法 function
但是有个属性 paused 布尔值 设置为 true 可以停止单个 tween
paused 布尔值
暂停或取消暂停补间。暂停的补间将从全局注册表中删除,
并且如果不存在对其的其他引用,则有资格进行垃圾回收。
如下示例停止单个tween:
var tween = createjs.Tween.get(target) .wait(500) .to({alpha:0, visible:false}, 1000) .call(handleComplete);
setTimeout(fn,500)//500毫秒触发计时器
function fn()
{
tween.paused = true //停止 tween
}
重点提示:如何停止目标上的特定 tween ?
答:并没有这样的方法,但是,我们可以自己写实现。
先来看看 停止目标上的全部 tween 的源码
Tween.removeTweens = function(target) {
if (!target.tweenjs_count) { return; }
var tween = Tween._tweenHead;
while (tween) {
var next = tween._next;
if (tween.target === target) { Tween._register(tween, true); }
tween = next;
}
target.tweenjs_count = 0;
};
根据这个方法,我们修改一下就可以实现我们要的效果,如下:
createjs.Tween.removeAllTargetTweens = function (target, tag){ if (!target.tweenjs_count) { return; } let tween = createjs.Tween._tweenHead; while (tween) { let next = tween._next; if (tag && tween.target === target && tween._stepTail.props.tag === tag) { tween.paused = true; } if (!tag && tween.target === target) { tween.paused = true; } tween = next; }}
方法已经写出来了,下面看看只能使用:
createjs.Tween.get(this.role).to({ x: this.role.x + 500, tag: "x" }, 2000) createjs.Tween.get(this.role).to({ y: this.role.x + 500, tag: "x2" }, 5000) createjs.Tween.get(this.role).to({alpha:0.1, tag: "x" }, 2000)
写了3个 tween 注意看 tag
停止目标上的全部 tween
createjs.Tween.removeAllTargetTweens(this.role);
停止目标上的特定tween tag
createjs.Tween.removeAllTargetTweens(this.role, "x");
就是说,不传入tag那么就停止目标的全部tween
传入tag就停止目标上的全部tag的 tween
感谢大家围观 createjs 爱好者