hitTestObject无法正常工作AS3

时间:2016-06-30 06:34:42

标签: actionscript-3 drag-and-drop

如何让对象相互检测而不必如此准确?目前,我正在处理的程序只允许项目在左上边缘准确匹配时匹配,但我没有使用hitTestPoint,我使用了hitTestObject。以下是我的代码。

if (bin1.hitTestObject(item)){ 
        updateShape(item, bin1);

1 个答案:

答案 0 :(得分:1)

如果bin1item都是DisplayObjects,我不知道它们是怎么回事(DisplayObject是一个被一堆扩展的基类其他像MovieClip和Sprite那么你应该能够自己做一点快速和肮脏的计算。您提出问题的方式让我相信bin1item的起源位于左上角,因此您应该能够使用此代码来查看它们是否存在的完整矩形正在击打,如果物体被旋转,这并不是那么准确,但听起来就像你正在寻找的那样:

if(Math.abs((bin1.x+bin1.width/2)-(item.x+item.width.2)) < bin1.width/2 + item.width/2 &&
   Math.abs((bin1.y+bin1.height/2)-(item.y+item.height/2)) < bin1.height/2 + item.height/2)
      updateShape(item,bin1);

如果它们的起源实际上位于左上角并且居中,请删除所有.width/2.height/2部分中的.x.y部分括号。希望这有帮助!