'object:moving'イベントを監視しながらfabric.Rectが他のfabricと重複するときを判断しようとしていますが、fabric間で結果が一致しません.Group vs fabric.RectFabricjs intersectsWithObjectがObjectがfabric.Rectのときにfalseを返す
私は、Rectインスタンスを介してグループを移動すると、intersectsWithObjectメソッドはtrueを返しますが、別のRectインスタンス上でRectインスタンスを移動すると、falseを返します。
ここで何か間違っているのでしょうか?
は、ここで私はフィドルを作成した私のイベントハンドラ
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");
}
}
}
});
です。 2つ以上のブロックを選択してグループ化してみてください。グループ化されたオブジェクトが他のファブリック上にドラッグされると、赤くなります.Rectまたはfabric.Groupインスタンス。あなたはどんなタイプの別のfabric.Objectの上に単一のRectをドラッグすると、それは決して私が見つけた
http://jsfiddle.net/cyberpantz/9MkYJ/27/
setCoords()素晴らしい、それをしません! – cincplug