flex 矩形碰撞

先上图:

[img]http://dl.iteye.com/upload/attachment/563059/92bd2b3d-bbce-385b-af0b-7e1f7ecfe326.png[/img]


应用:判断一个Canvas所覆盖区域中所有控件(相交包含) 当然这个Canvas漂浮在其他控件之上的
案例分析:


[img]http://dl.iteye.com/upload/attachment/563066/fae7bc58-cd08-34a3-947f-f128cb263ac2.png[/img]

矩形 Rectangle1 的 中心坐标 (x1,y1)
矩形 Rectangle2 的 中心坐标 (x2,y2)
1.相交的情况也就是两个 矩形的中心坐标垂直间距=x2-x1
2.如果小于这个间距就表示已经相交,如果大于这个间距就表示没有相交

当然判断坐标的方法写起来有点烦
可以使用flex Rectangle 内置的方法判断,问题就解决了
var secondRect1:Rectangle = new Rectangle(x, y, width, height);
var secondRect2:Rectangle = new Rectangle(x, y, width, height);

//构造一个矩形
secondRect1.containsRect(secondRect2)
//判断一个矩形(secondRect2)是否完全在包含在另一个矩形(secondRect1)中
下面是两个矩形相交的情况处理
var temp:Rectangle=secondRect1.intersection(secondRect2);
//当然返回是相交部分不用是说是一个矩形

[img]http://dl.iteye.com/upload/attachment/563114/975d4839-1825-34cd-8a17-ecd382a8c911.png[/img]
public function intersection(toIntersect:Rectangle):Rectangle
如果在 toIntersect 参数中指定的 Rectangle 对象与此 Rectangle 对象相交,则返回交集区域作为 Rectangle 对象。如果矩形不相交,则此方法返回一个空的 Rectangle 对象,其属性设置为 0。 要排除为0的情况也就是
if(temp!=null&&temp.width!=0&&temp.height!=0)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值