Easeljs将对象保留在范围内
问题描述:
我正在使用Easeljs在HTML5画布中绘制应用程序。到目前为止,我可以将对象拖放到字段中,但我只希望它们在一定范围内。Easeljs将对象保留在范围内
为了说明:
对象1,2,4和5应该得到删除,但物体3应保持。我尝试过使用hitTest(),但那不能正常工作(我可能做错了什么)。我很想发布我使用过的代码,但是我的个人电脑在工作时冻结了......我以为最好在解冻的时候问问,哈哈。
答
解决方案:
var obj1 = obj.getBounds().clone(); // obj = a pylon
var e = obj1.getTransformedBounds();
var obj2 = bg.getBounds().clone(); // bg = the big green field
var f = obj2.getTransformedBounds();
if(e.x < f.x || e.x + e.width > f.x + f.width) return false;
if(e.y < f.y || e.y + e.height > f.y + f.height) return false;
return true;
所有它是如此简单,但我想我工作了这么久,我就开始想太辛苦之后...
答
这里是一个快速拖放样品与边界约束:
http://jsfiddle.net/xrqatyLs/8/
的秘诀就是在约束的阻力位置,自己的值。
clip.x = Math.max(bounds.x, Math.min(bounds.x + bounds.width - clipWidth, evt.stageX));
clip.y = Math.max(bounds.y, Math.min(bounds.y + bounds.height-clipHeight, evt.stageY));
下面是另一个更为复杂的例子是手动检查,如果一个矩形相交另一个矩形:
http://jsfiddle.net/lannymcnie/yvfLwdzn/
希望帮助!
你的第二小提琴帮位!不幸的是,它不能正常工作。请参阅以下链接以获得结果:http://i.imgur.com/7mwPErY.png 1和4会被删除,但不会是2和3.场地周围的红色框会显示其边界框(=挂钩的区域不应该被删除)。 – BlackFayah