如何将变量传递给createjs Tween函数

时间:2015-07-08 14:15:18

标签: javascript easeljs createjs

我希望能够将变量传递给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 vars都是字符串 - 值显示在警报中,但Tween未触发。有什么想法吗?

由于

3 个答案:

答案 0 :(得分:2)

确定。如果我理解正确,您希望能够将属性的名称传递给补间,以及要对其进行补间的对象的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()调用。

答案 1 :(得分:0)

使用change参数并在Tween运行时侦听更改。但你需要补充一些东西'像alpha或x / y。我不确定' pos'是一个补间能力的财产..

class Users::SessionsController < Devise::SessionsController
  # Note that all the other actions are handled by Devise::SessionsController
  # (which is in the gem)
  skip_filter :require_no_authentication, only: :new
  def new
    if user_signed_in?
      redirect_to dashboard_path
      return
    end
    super
  end
end

答案 2 :(得分:0)

id必须是对象而不是字符串。你可以给每个形状命名,传递形状然后得到它的名字来决定x或y。