Easeljs将对象保留在范围内

问题描述:

我正在使用Easeljs在HTML5画布中绘制应用程序。到目前为止,我可以将对象拖放到字段中,但我只希望它们在一定范围内。Easeljs将对象保留在范围内

为了说明: Drawing app

对象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/

希望帮助!

+0

你的第二小提琴帮位!不幸的是,它不能正常工作。请参阅以下链接以获得结果:http://i.imgur.com/7mwPErY.png 1和4会被删除,但不会是2和3.场地周围的红色框会显示其边界框(=挂钩的区域不应该被删除)。 – BlackFayah