1.主要AS3 API
hitTestObject(obj:DisplayObject):Boolean
hitTestPoint(x:Number,y:Number,shapeFlag:Boolean=false);
shapeFlag 定义检查的是显示对象的实际像素(true);还是显示对象的边框(false)
package as3 { import flash.display.Sprite; import flash.events.Event; public class SampleHittest extends Sprite { private var circle:Sprite; public function SampleHittest() { circle = new Sprite(); circle.graphics.beginFill(0x669900); circle.graphics.drawCircle(0,0,10); circle.graphics.endFill(); //自定义类 生成圆角矩形 var rectA:RectSprite = new RectSprite("A",0xffcc00); rectA.mouseChildren = false; rectA.name = "A"; rectA.x = 100; rectA.y = 50; //自定义类 生成一个五角形 var pointStar:StarShape = new StarShape(); pointStar.x = 200; pointStar.y = 200; pointStar.width =10; pointStar.height = 10; addChild(pointStar); addChild(rectA); addChild(circle); //圆形图形开起拖动 circle.startDrag(true); //每帧调用 isHit 检测碰撞 rectA.addEventListener(Event.ENTER_FRAME , isHit); } private function isHit(evt:Event):void { if(circle.hitTestObject(evt.target as RectSprite)) { trace("碰撞到了Rect A"); } if(circle.hitTestPoint(200,200,true)) { trace("碰到了坐标点(200,200))"); } } } }