Я понял это ... PNG, проблема прозрачности ограничивающего прямоугольника и возможность перейти к другому изображению позади:
var hitTestPoint1: Boolean = false;
var myHitTest1: Boolean = false;
объекты var: Array;
clip.addEventListener (MouseEvent.MOUSE_DOWN, doHitTest);
clip.addEventListener (MouseEvent.MOUSE_UP, stopDragging);
clip.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;
clip.rotation = 60;
функция doHitTest (событие: MouseEvent): пустота
{
objects = stage.getObjectsUnderPoint (новая точка (event.stageX, event.stageY));
trace ("Какой:" + event.target.name);
трассировка («Что находится под точкой:» + объекты);
для (var i: int = 0; i
функция stopDragging (событие: MouseEvent): пусто
{
event.target.stopDrag ();
}
функция realHitTest (объект: DisplayObject, точка: точка): логическое значение
{
/ * Если мы уже имеем дело с объектом BitmapData, тогда мы просто используем hitTest
* метод этого BitmapData.
* /
if (объект - BitmapData)
{
return (объект как BitmapData) .hitTest (новая точка (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;
}
}
}