我目前正在研究一種方法來代理從包含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)函數將始終返回。拖放功能的事件處理程序必須在別處處理。 –