2017-09-12 8 views
0

マウスダウンイベントでオブジェクトが選択されたかどうか、およびオブジェクトがファブリックで描画を開始するように選択されていないかどうかを検出しようとしています。キャンバスを描画モードにしておくことはできませんが、マウスダウンイベントにターゲットがないと判断したら、設定する必要があります。現時点では、キャンバス上のマウスダウンイベントを再トリガーしようとしました:FabricJSでキャンバスを描画モードに設定した直後にパスの描画を開始するにはどうすればよいですか?

私はそれほど幸運ではありません。イベントは再トリガされますが、パスはキャンバス上に描画されません。誰にもアイデアはありますか?

答えて

1

マウスを押下する前に、図面モードであった場合は、ファブリックから呼び出される関数を呼び出すことができます。

条件iが!this.isDrawingModeを挿入しているか、または無限ループの再帰が発生することに注意してください。

var canvas = new fabric.Canvas('c'); 
 
canvas.add(new fabric.Rect({width: 50, height: 50})); 
 
canvas.on('mouse:down', function(opt) { 
 
    if (!opt.target && !this.isDrawingMode) { 
 
    canvas.isDrawingMode = true; 
 
    canvas._onMouseDownInDrawingMode(opt.e) 
 
    } 
 
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.7.18/fabric.min.js"></script> 
 
<canvas id="c" ></canvas>

+0

パーフェクト、あなたの助けに感謝!これはキャンバスに追加したオブジェクトを「ピックアップ」するのに便利なトリックです! – fearnb

関連する問題