Ich versuche, zu bestimmen, wann ein fabric.Rect anderen fabric.Rect überlappt, während die Beobachtung ‚Objekts: Bewegen‘ Ereignis, sondern mit inkonsistenten Ergebnissen zwischen fabric.Group vs fabric.RectFabricjs intersectsWithObject Rückkehr falsch, wenn Objekt ist fabric.Rect
als ich Gruppe über eine Rect Beispiel bewegen die intersectsWithObject Methode true zurückgibt, aber wenn ich eine Rect Instanz über eine andere Rect Instanz bewegt wird false zurückgegeben.
Ich frage mich, wenn ich falsch liege hier etwas zu tun.
Hier ist meine Event-Handler
cvs.observe('object:moving', function(e) {
var targ = e.target;
// filter out itself
var items = cvs.getObjects().filter(function(o){
return targ !== o;
});
var hit = false;
for (var i = 0, n = items.length; i < n; i++) {
var m = items[i];
if (targ.type == "group") {
if (targ.intersectsWithObject(m)) {
targ.setFill("red");
hit = true;
console.log("GROUP HIT");
} else {
if (!hit) {
targ.setFill("#CCCCCC");
}
}
}
else {
// this is always returning false! why?
if (targ.intersectsWithObject(m)) {
var id = m.data ? m.data.entityId : " ??"
console.log("OBJECT HIT:" + id);
targ.setFill("red");
}
}
}
});
ich eine Geige erstellt haben. Versuchen Sie, zwei oder mehr Blöcke auszuwählen, um sie zu gruppieren. Sie werden sehen, das gruppierte Objekt rot, wenn es über eine andere fabric.Rect oder fabric.Group Instanz gezogen wird. Wenn Sie einen einzelnen Rect über einen anderen fabric.Object jeder Art ziehen, wird es nie rot wie intersectsWithObject immer false zurückkehrt ...
http://jsfiddle.net/cyberpantz/9MkYJ/27/
setCoords() tut es, großartig! – cincplug