2016-06-29 8 views
0

Verwenden von FabricJS Ich mache eine Leinwand mit der Möglichkeit, ein Rechteck hinzuzufügen. Sobald ein Rechteck zum Canvas hinzugefügt wurde, kann es in jede Position gezogen werden.FabricJS - Vermeiden Sie das Auslösen von "canvas.on ('mouse: up', function() {...})" nach dem Verschieben des Objekts

Mein Problem ist, dass, wenn ich ein Rechteck stoppen ziehen, das Ereignis:

canvas.on('mouse:up', function(element) { ... }); 

ausgelöst wird, aber dies ist ein unerwünschtes Verhalten.

Wie kann ich löse das Ereignis:

canvas.on('mouse:up', function(element) { ... }); 

nur dann, wenn die linke Maustaste gedrückt effektiv angeklickt wird, und auch nicht, wenn ich Objekt ziehen Ende?

Antwort

3

Man könnte so etwas tun:

var _isDragging = false; 
var _isMouseDown = false; 

canvas.on('mouse:down', function() { 
    _isMouseDown = true; 
    // other stuff 
}); 

canvas.on('mouse:move', function() { 
    _isDragging = _isMouseDown; 
    // other stuff 
}) 

canvas.on('mouse:up', function(element) { 
    _isMouseDown = false; 
    var isDragEnd = _isDragging; 
    _isDragging = false; 
    if (isDragEnd) { 
     // code for drag complete 
    } else { 
     // code for no drag mouse up 
    } 
    // code for both 
}); 
+0

Wow! Gerade versucht und es funktioniert wie ein Charme! Vielen Dank! – ronIDX

Verwandte Themen