現在、fabric.js-initialisedキャンバステクスチャを含むAフレームプレーンから送出された合成イベントをプロキシする方法を検討中です。目標は、2Dキャンバスと相互作用しているかのように、ユーザーがファブリックアイテムをドラッグアンドドロップできるようにすることです。すべてのロジックが処理されるようになりました。たとえば、プログラムで、0,0の下にあるアイテムを取得し、それを10,10にドラッグして放すことができるようにしたいだけです。Fabric.js、手動トリガーマウス:enter/leave、mouse:move
'mouse:out'ハンドラでイベントパラメータを検査したとき、私はオブジェクトにMouseEventインスタンスの 'e'パラメータがあることに気付きました。だから私はこのような何かを試した:
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 })
それは動作していないようだ。トリガーメソッドの2番目のパラメーターとしてeventOptionsを提供していませんでした。また、ファブリックキャンバス上のプライベートハンドラメソッド、つまり_onMouseMoveを呼び出すこともできませんでした。
これを実現する方法はありますか?
一部のデバッグトリガ機能と、トリガがドラッグ/ドロップ機能を引き起こさない理由は、それらのイベントに対して登録された特定のイベントハンドラがない場合、トリガ(火災)機能が常に戻るためです。ドラッグアンドドロップ機能のイベントハンドラは、別の場所で処理する必要があります。 –