我想通了...... PNG,边界框透明度问题,并且能够点击到后面的另一个图像:
var hitTestPoint1:Boolean = false; var myHitTest1:Boolean = false; 变量对象:数组;
clip.addEventListener(MouseEvent.MOUSE_DOWN, doHitTest); clip.addEventListener(MouseEvent.MOUSE_UP, stopDragging); 剪辑.buttonMode = true; clip.mouseEnabled = true; clip.mouseChildren = true;
clip2.addEventListener(MouseEvent.MOUSE_DOWN, doHitTest); clip2.addEventListener(MouseEvent.MOUSE_UP, stopDragging); clip2.buttonMode = true; clip2.mouseEnabled = true; clip2.mouseChildren = true;
剪辑.旋转 = 60;
函数 doHitTest(event:MouseEvent):void { objects = stage.getObjectsUnderPoint(new Point(event.stageX, event.stageY)); trace("哪一个:" + event.target.name); trace("重点是什么:" + objects); for(var i:int=0; 我
函数 stopDragging(event:MouseEvent):void { event.target.stopDrag(); }
function realHitTest(object:DisplayObject, point:Point):Boolean { /* 如果我们已经在处理 BitmapData 对象,那么我们只需使用该 BitmapData 的 hitTest * 方法。*/ if(object is BitmapData) { return (object as BitmapData).hitTest(new Point(0,0), 0, object.globalToLocal(point)); } 别的 {
/* First we check if the hitTestPoint method returns false. If it does, that
* means that we definitely do not have a hit, so we return false. But if this
* returns true, we still don't know 100% that we have a hit because it might
* be a transparent part of the image.
*/
if(!object.hitTestPoint(point.x, point.y, true))
{
return false;
}
else {
/* So now we make a new BitmapData object and draw the pixels of our object
* in there. Then we use the hitTest method of that BitmapData object to
* really find out of we have a hit or not.
*/
var bmapData:BitmapData = new BitmapData(object.width, object.height, true, 0x00000000);
bmapData.draw(object, new Matrix());
var returnVal:Boolean = bmapData.hitTest(new Point(0,0), 0, object.globalToLocal(point));
bmapData.dispose();
return returnVal;
}
}
}