Обычно проще всего и быстрее позволить отображаемому коду Flash сделать такие вещи за вас.Создайте пустой Sprite и поместите его в экранный объект прямоугольника в углу, который вы хотите отслеживать.Затем найдите местоположение этого спрайта в координатном пространстве по вашему выбору:
var p:Point = new Point(0,0);
myRectangle.myCornerSprite.localToGlobal( p );
someDisplayObject.globalToLocal( p ); // for a coord space besides the stage
Это избавит вас от каких-либо предположений относительно дизайна прямоугольника (т.е. точки регистрации) и сработает, даже если прямоугольник долженбыть перекошенным или масштабированным, а также повернутым.Кроме того, это будет намного проще реализовать и поддерживать, чем беспорядок косинусов и еще много чего.
(Обратите внимание, что в приведенном выше коде предполагается, что «верхний правый угол» относится к определенному углу - если вы хотите исследовать любой уголпроисходит в крайнем правом верхнем углу в данный момент, я просто добавил бы сделать то же самое со спрайтом во всех четырех углах и выбрать тот, который находится справа вверху в глобальных координатах.)