Думаю, у меня есть решение, созданное для вас, я не верю, что есть что-то встроенное, что сделает это для вас напрямую, хотя может быть лучший способ, чем этот ... но в принципе любое решение, которое я могудумать, что в основном использует ту же концепцию, вот она:
private var lastClickedComponent:DisplayObject;
private var lastClickedGlobalPos:Point;
protected function application1_clickHandler(event:MouseEvent):void
{
// TODO Auto-generated method stub
lastClickedComponent = event.target as DisplayObject;
if(lastClickedComponent)
lastClickedGlobalPos = lastClickedComponent.parent.localToGlobal(new Point(lastClickedComponent.x,lastClickedComponent.y));
}
private function distanceToLastClicked():void
{
if(lastClickedComponent)
{
distanceLabel.text = Point.distance(lastClickedGlobalPos,new Point(mouseX,mouseY)).toString();
}
}
protected function application1_mouseMoveHandler(event:MouseEvent):void
{
distanceToLastClicked();
}
distanceLabel - это просто метка, обработчики которой просто установлены в приложении для этого примера, но в основном единственная важная часть - это функция расстояния, заданная дляработа с точками и вызов localToGlobal для преобразования положения x / y объекта DisplayObject в абсолютные координаты для сравнения с положением мыши (обратите внимание, что вам может понадобиться использовать event.stageX, event.stageY в обработчике перемещения в зависимости от того, какой объект выЯ не уверен, что mouseX, mouseY - это глобальные координаты).Также, как отмечено в комментарии, этот будет учитывать только верхний левый угол фигуры, не обязательно самый близкий край, для этого вам, вероятно, потребуется выполнить некоторую математику, специфичную для фигуры, если у кого-то нет более нового способа.