Нет, вам нужно сделать идеальное столкновение пикселей (или в этом случае, щелкнув мышью), чтобы сделать это.По своей природе все экранные объекты всегда имеют прямоугольные границы.Таким образом, в основном вам нужно будет сделать что-то вроде этого:
mySprite.addEventListener(MouseEvent.MOUSE_DOWN, mousedDown);
function mousedDown(e:MouseEvent):void
{
//Draw my sprite to a bitmap, then check the bitmap colour at mouseX/mouseY
uint colour = myBitmap.getPixel32(mouseX, mouseY);
if(colour != TRANSPARENT){
//We've actually clicked on the object, drag it
Sprite(e.currentTarget).startDrag();
}
}
Обратите внимание, что это просто псевдокод, вам нужно выяснить, как выглядит значение uint, как прозрачный, а также вам придетсяучитывать, где находится начальная точка спрайта при рисовании в растровое изображение.Скажем, у вас есть спрайт и его содержимое внутри, вам нужно будет создать объект Matrix с отрицательным смещением X и Y, которое в 5 раз больше ширины вашего спрайта, чтобы правильно его нарисовать.