javascript - 如何在fabricjs画布对象上触发mousedown事件?
问题描述
我在画布 fabricJs 上有一个图像对象,我想触发 mousedown(click) 事件。这是我尝试过的,但似乎没有达到预期的效果。
const canvas = new fabric.Canvas('gameCanvas', {selection: false});
let myImg;
fabric.Image.fromURL('http://placekitten.com/50/50', function(img)
{
myImg = img.set({
left: 50,
top: 50 ,
width:50,
height:50
});
canvas.add(myImg);
myImg.on('mousedown', function(e)
{
console.log('image click event was simulated at: ', e.clientX, e.clientY);
});
});
document.getElementById('triggerBtn').addEventListener('click', function()
{
canvas.trigger('mouse:down', {
objCanvas: myImg,
objCanvasX: myImg.left,
objCanvasY: myImg.top
});
});
canvas.on('mouse:down', function(e) {
if(e.objCanvas)
{
if(e.objCanvas.type === 'image')
{
e.objCanvas.trigger('mousedown', {
clientX: e.objCanvasX,
clientY: e.objCanvasY
});
}
}
else {
console.log('image was clicked');
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/3.0.0/fabric.min.js"></script>
<canvas id="gameCanvas" width="500" height="300" style="border: 2px solid green;"></canvas>
<button id="triggerBtn">Trigger</button>
我找到了我的问题的解决方案,请参考更新的片段
解决方案
我的问题的解决方案在更新的片段中
推荐阅读
- networking - 我是否为路由器分配了正确的 IP 地址?如果没有那怎么办?
- python - Pandas:如何动态使用方法 df.name.unique() 来查找所有唯一的列条目?
- android - 如何使导航栏半透明并使其下的布局显示
- bash - 从 Shell 中的属性文件读取和分配变量
- c++ - 如何使用 c++ 和使用 Visual Studio 2017 菜单编辑器创建带有 Windows 菜单的 win32 应用程序
- windows - 从 SystemSettings.exe 卸载时,WiX 标准引导程序无法正确启动
- r - 根据rowname匹配两个数据框并添加NA
- r - “handleRes(res) 中的错误:NA”来自使用 BRugs 的基本多项逻辑回归
- java - 将闹钟管理器设置为每天重复,但它在我设置的时间后一直重复
- android - 创建 Google Sign 未完成(未创建 OAuth2)