在 Tween.js 中为多个对象链接补间
Chaining tweens in Tween.js for multiple objects
所以我有一大堆 easel.js 个对象,我将它们保存在一个数组中。
我想为每个对象链接一组补间,然后,当每个补间链完成时,重置补间的属性并再次进行。这是我到目前为止所得到的:
function setObjectTween(tgt){
createjs.Tween.get(tgt, { loop: false })
.to({ x: randomOnStage("x", constraint[0],constraint[1]) }, randomInRange(100,1000), createjs.Ease.getPowOut(4))
.to({ y: randomOnStage("y", constraint[0],constraint[1]) }, randomInRange(100,1000), createjs.Ease.getPowOut(4))
.call(resetTween);
}
function resetTween(e){
createjs.Tween.removeAllTweens(e.target);
setObjectTween(e.target);
}
问题是 resetTween 似乎同时停止了所有剪辑的补间。我认为用这样的补间设置每个对象:
for(i=0;i<objpool1.length;i++){setObjectTween(objpool[i]);}
将使每个对象的补间保持独立。当它结束时,它会调用 reset 函数,该函数将删除该对象的补间,然后重新 运行 设置,再次仅针对该对象,再次使用新的随机值启动补间.
为什么重置似乎只影响数组中的最后一个对象而不是对每个对象独立工作的任何想法(注意,所有数组对象第一次工作,但重置似乎重置所有对象,并且然后随后仅处理数组中的最后一个对象)。
干杯,A.:
e2a:已排序。文档读取失败。感谢楼下的回答! :o)
removeAllTweens
方法不接受任何参数。正在发生的事情是,您正在杀死 每个 补间(防止其他补间随后调用 resetTween
),并且只有第一个完成的补间才能重新启动。
改为removeTweens
。
function resetTween(e){
createjs.Tween.removeTweens(e.target);
setObjectTween(e.target);
}
这是一个fiddle:http://jsfiddle.net/6d9bckb4/
所以我有一大堆 easel.js 个对象,我将它们保存在一个数组中。
我想为每个对象链接一组补间,然后,当每个补间链完成时,重置补间的属性并再次进行。这是我到目前为止所得到的:
function setObjectTween(tgt){
createjs.Tween.get(tgt, { loop: false })
.to({ x: randomOnStage("x", constraint[0],constraint[1]) }, randomInRange(100,1000), createjs.Ease.getPowOut(4))
.to({ y: randomOnStage("y", constraint[0],constraint[1]) }, randomInRange(100,1000), createjs.Ease.getPowOut(4))
.call(resetTween);
}
function resetTween(e){
createjs.Tween.removeAllTweens(e.target);
setObjectTween(e.target);
}
问题是 resetTween 似乎同时停止了所有剪辑的补间。我认为用这样的补间设置每个对象:
for(i=0;i<objpool1.length;i++){setObjectTween(objpool[i]);}
将使每个对象的补间保持独立。当它结束时,它会调用 reset 函数,该函数将删除该对象的补间,然后重新 运行 设置,再次仅针对该对象,再次使用新的随机值启动补间.
为什么重置似乎只影响数组中的最后一个对象而不是对每个对象独立工作的任何想法(注意,所有数组对象第一次工作,但重置似乎重置所有对象,并且然后随后仅处理数组中的最后一个对象)。
干杯,A.:
e2a:已排序。文档读取失败。感谢楼下的回答! :o)
removeAllTweens
方法不接受任何参数。正在发生的事情是,您正在杀死 每个 补间(防止其他补间随后调用 resetTween
),并且只有第一个完成的补间才能重新启动。
改为removeTweens
。
function resetTween(e){
createjs.Tween.removeTweens(e.target);
setObjectTween(e.target);
}
这是一个fiddle:http://jsfiddle.net/6d9bckb4/