我使用Paper.js,我需要在光栅上进行鼠标操作。但是,当我使用全局工具空间时,事件似乎不会触发。
请注意这个sketch,其中点击并拖动会产生如下所示的日志:
raster mousedown
raster mousedrag
... [更多" raster mousedrag"] ...
raster mousedrag
光栅鼠标
表示raster.on('mouseup' function() {...});
已按预期正确点击。
但是,在此sketch中,包含显示拖动区域的功能,raster.on('mouseup' function() {...});
未正确点击。请注意,日志不包含"光栅鼠标",仅"光栅mousedown"和" raster mousedrag"。
为什么在第二个实例中鼠标不会在光栅上触发?如何在第二个草图中调整代码以使其触发?
答案 0 :(得分:1)
嗯,简单的答案是问题是永远不会调用undefined
处理程序。纸质代码获取最近的命中,即您正在绘制的红色矩形,并检查是否响应“鼠标”事件。它没有。然后它检查父链,红色矩形的父级是图层,因此它也不会通过var abc;
var data;
$.get('http://localhost:3000/test.php', function (data, status) {
console.log(status);
abc = data;
console.log(abc); //printing it here works fine
});
console.log(abc); //printing it here returns undefined
测试。因为栅格与从事与栅格关联的红色矩形处理程序处于同一级别,所以从不调用。
最简单的答案是使用全局工具在on('mouseup', ...)
上安装处理程序,而不是.responds
,例如,
view
请参阅paperjs代码(在CanvasView.js中):
raster