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;
};
![](http://tiebapic.baidu.com/forum/w%3D580/sign=2bc7b2d424d9f2d3201124e799ec8a53/c08d88ef76c6a7ef9e282513bbfaaf51f3de6611.jpg?tbpicau=2024-07-05-05_457895c0678d1b3ff546a401e93126ec)
根据这个方法,我们修改一下就可以实现我们要的效果,如下:
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; }}
![](http://tiebapic.baidu.com/forum/w%3D580/sign=822d6a1e48f41bd5da53e8fc61da81a0/4abe574a20a44623f6c42857de22720e0cf3d712.jpg?tbpicau=2024-07-05-05_6741c00902dd7b8649c39d7685c52929)
方法已经写出来了,下面看看只能使用:
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)
![](http://tiebapic.baidu.com/forum/w%3D580/sign=ab1dd85c632dd42a5f0901a3333b5b2f/b096284e251f95caadff1f838f177f3e6709521d.jpg?tbpicau=2024-07-05-05_a779648feda440177fa5f6bb358e00cf)
写了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;
};
![](http://tiebapic.baidu.com/forum/w%3D580/sign=2bc7b2d424d9f2d3201124e799ec8a53/c08d88ef76c6a7ef9e282513bbfaaf51f3de6611.jpg?tbpicau=2024-07-05-05_457895c0678d1b3ff546a401e93126ec)
根据这个方法,我们修改一下就可以实现我们要的效果,如下:
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; }}
![](http://tiebapic.baidu.com/forum/w%3D580/sign=822d6a1e48f41bd5da53e8fc61da81a0/4abe574a20a44623f6c42857de22720e0cf3d712.jpg?tbpicau=2024-07-05-05_6741c00902dd7b8649c39d7685c52929)
方法已经写出来了,下面看看只能使用:
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)
![](http://tiebapic.baidu.com/forum/w%3D580/sign=ab1dd85c632dd42a5f0901a3333b5b2f/b096284e251f95caadff1f838f177f3e6709521d.jpg?tbpicau=2024-07-05-05_a779648feda440177fa5f6bb358e00cf)
写了3个 tween 注意看 tag
停止目标上的全部 tween
createjs.Tween.removeAllTargetTweens(this.role);
停止目标上的特定tween tag
createjs.Tween.removeAllTargetTweens(this.role, "x");
就是说,不传入tag那么就停止目标的全部tween
传入tag就停止目标上的全部tag的 tween
感谢大家围观 createjs 爱好者