kineticjs将参数传递给onclick上的回调函数

时间:2014-03-02 02:41:54

标签: jquery canvas kineticjs layer

我知道在jquery你可以用类似的东西来做 $('#BTN')上('单击' {PARAM:'你好'},回调)。但是有了动力学,我似乎无法做到。有什么想法?
var Stage = new Kinetic.Stage({ container: 'SurfaceCircle', width: 70, height: 68 }); var topBtnLayer = new Kinetic.Layer({ id: 'top' });

var topBtn = new Kinetic.Shape({ drawFunc: function (context) { context.moveTo(11, 10); context.arc(35, 34, 34, 1.25 * Math.PI, 1.75 * Math.PI, false); context.lineTo(44, 25); context.arc(35, 34, 12, 1.75 * Math.PI, 1.25 * Math.PI, true); context.lineTo(11, 10);
context.fillStrokeShape(this); context.stroke() }, stroke: 'black', fill: 'yellow', strokeWidth: 2/, id: 'top'/, visible: true }); topBtnLayer.add(topBtn).on('click tap',{param:'hello'}, callback);

我将得到运行时错误未捕获TypeError:对象#没有方法'调用'

1 个答案:

答案 0 :(得分:0)

Kinetic对象事件系统(.on)只需要2个参数

  • 要侦听的事件类型(例如“点击”)
  • 回调函数

在回调this中是Kinetic对象。

因此,您可以在回调内可以访问的对象上设置属性。

topBtn.param="hello";

topBtn.on("click",function(){ alert(this.param); });  // click alerts "hello"

演示:http://jsfiddle.net/m1erickson/5QRAA/

相关问题