我目前正在研究一种方法来代理从包含fabric.js初始化的画布纹理的A-Frame平面发出的合成事件。目标是允许用户拖放织物项目,就好像它们正在与2D画布进行交互。所有的逻辑处理,所以现在我只是想能够,例如,编程方式抓住和0,0项目,将其拖动到10,10放开它。Fabric.js,手动触发鼠标:输入/离开,鼠标:移动
当我检查了'mouse:out'处理程序中的事件参数时,我注意到该对象有一个'e'参数,它是一个MouseEvent实例。所以我尝试了这样的事情:
let eventOptions = {
clientX,
clientY,
bubbles: true,
button: 1
}
let fabricCanvas = this.components.draw.fabricCanvas
let e = new MouseEvent(event.type, eventOptions)
fabricCanvas.trigger(aFrameEvtToFabricEvt[event.type], { e })
这似乎没有工作。也没有提供eventOptions作为触发方法的第二个参数。也没有在织物画布上调用私人处理器方法,即_onMouseMove。
有没有其他方法可以实现呢?
做了一些调试触发函数和触发器永远不会导致拖放功能的原因是因为如果没有为这些事件注册特定的事件处理程序,触发器(fire)函数将始终返回。拖放功能的事件处理程序必须在别处处理。 –