如何将变量传递给 createjs Tween 函数
How to pass variables to a createjs Tween function
我希望能够将变量传递给 createjs Tween 函数:
function openPanel(id, pos) {
//alert("This panel is: "+id+" and is pos: "+pos);
createjs.Tween.get(id, {
loop: false
}).to({
pos: 50
}, 500, createjs.Ease.getPowInOut(4));
}
id 和 pos 变量都是字符串 - 值出现在警报中但 Tween 没有触发。有什么想法吗?
谢谢
使用 change 参数并在 Tween 为 运行 时监听变化。但是你需要像 alpha 或 x/y 那样补间 'something'。我不确定 'pos' 是否可以 属性..
createjs.Tween.get(id, {override:true}).to({x:100}).addEventListener("change",handleChange);
function handleChange(event) {
// The id object with changed.
// do something with 'pos'
}
id 必须是对象而不是字符串。你可以给每个形状起一个名字,传递形状然后得到它的名字来决定x或y。
好的。如果我理解正确的话,您希望能够将 属性 的名称连同要对其进行补间的对象的 ID 一起传递给补间。
我不确定你是如何通过字符串 id 查找对象的(因为这不是 EaselJS 内部所做的事情),所以我编辑了你的代码以处理对象引用:
var myShape = new createjs.Shape();
// .... etc.
openPanel(myShape, "x");
function openPanel(target, prop) {
var tweenProps = {};
tweenProps[prop] = 50; // dynamic property access.
createjs.Tween.get(target, {
loop: false
}).to(tweenProps, 500, createjs.Ease.getPowInOut(4));
}
如您所见,我使用动态 属性 访问(通过方括号)来设置我的补间值对象,然后将其传递给 to()
调用。
我希望能够将变量传递给 createjs Tween 函数:
function openPanel(id, pos) {
//alert("This panel is: "+id+" and is pos: "+pos);
createjs.Tween.get(id, {
loop: false
}).to({
pos: 50
}, 500, createjs.Ease.getPowInOut(4));
}
id 和 pos 变量都是字符串 - 值出现在警报中但 Tween 没有触发。有什么想法吗?
谢谢
使用 change 参数并在 Tween 为 运行 时监听变化。但是你需要像 alpha 或 x/y 那样补间 'something'。我不确定 'pos' 是否可以 属性..
createjs.Tween.get(id, {override:true}).to({x:100}).addEventListener("change",handleChange);
function handleChange(event) {
// The id object with changed.
// do something with 'pos'
}
id 必须是对象而不是字符串。你可以给每个形状起一个名字,传递形状然后得到它的名字来决定x或y。
好的。如果我理解正确的话,您希望能够将 属性 的名称连同要对其进行补间的对象的 ID 一起传递给补间。
我不确定你是如何通过字符串 id 查找对象的(因为这不是 EaselJS 内部所做的事情),所以我编辑了你的代码以处理对象引用:
var myShape = new createjs.Shape();
// .... etc.
openPanel(myShape, "x");
function openPanel(target, prop) {
var tweenProps = {};
tweenProps[prop] = 50; // dynamic property access.
createjs.Tween.get(target, {
loop: false
}).to(tweenProps, 500, createjs.Ease.getPowInOut(4));
}
如您所见,我使用动态 属性 访问(通过方括号)来设置我的补间值对象,然后将其传递给 to()
调用。