Canvas 如何使用easel.js从第一个鼠标单击到第二个鼠标单击绘制一条线

Canvas 如何使用easel.js从第一个鼠标单击到第二个鼠标单击绘制一条线,canvas,easeljs,Canvas,Easeljs,我试图创建eventlisteners绘图到stage.mouseYstage.MouseX坐标,但无论我在何处单击,中间的直线都是完全相同的 这是我的密码 Ext.onReady( function(){ var g; canvas = document.getElementById('Canvas'); var stage = new createjs.Stage(canvas); function draw(a){ var mousex = stage.mous

我试图创建eventlisteners绘图到
stage.mouseY
stage.MouseX
坐标,但无论我在何处单击,中间的直线都是完全相同的

这是我的密码

   Ext.onReady( function(){
  var g;




  canvas = document.getElementById('Canvas');
  var stage = new createjs.Stage(canvas);

function draw(a){
var mousex = stage.mouseX;
var mousey = stage.mouseY;
a.lineTo(mousex, mousey);
}

g = new createjs.Graphics();

g.setStrokeStyle(1);
g.beginStroke(createjs.Graphics.getRGB(0,0,0));
g.beginFill(createjs.Graphics.getRGB(255,0,0));
stage.addEventListener('click', draw(g));
g.lineTo(0,50);

var s = new createjs.Shape(g);
    s.x = 100;
    s.y = 100;

stage.addChild(s);
stage.update();


});

我的长期目标是创建用户创建的可选择/高亮显示的多边形这是一种方法吗?

这就是您的问题所在:

stage.addEventListener('click', draw(g));
它将立即使用参数
g
执行
draw
功能。它不会等待点击。问题是函数名后面有括号,函数将立即执行。您需要的是对draw函数有一个函数引用。您可以通过使用匿名函数来实现这一点

stage.addEventListener('click', function() {draw(g); });