PDA

Просмотр полной версии : преобразование координат контрола


lephik
28.03.2007, 08:52
Помогите, есть ли методы для преобразования координат контрола
в таковые относительно другого контрола или контейнера.
Например мне нужно узнать координаты кнопки которая в нескольких вложенных контейнерах относительно контейнера Application.
Можно конечно в лоб высчитывать но некрасиво же + при таком подходе при изменении вложенности компонента летит к чертям и код который выполняет преобразование.

спасибо.

__i
28.03.2007, 12:31
help -> localToGlobal

lephik
29.03.2007, 14:44
localToGlobal сработал как-то криво почему-то.
немного не те координаты выдаёт.
написал свою:

private function locToGlobal (comp: DisplayObjectContainer) : Point {
var doc:DisplayObjectContainer = comp.parent;
var x:Number = comp.x;
var y:Number = comp.y;
while(doc != null) {
x += doc.x;
y += doc.y;
doc = doc.parent;
}
return new Point(x,y);
}

Kikasso
29.03.2007, 15:05
localToGlobal сработал как-то криво почему-то.
немного не те координаты выдаёт.

А как вы его применяли?

lephik
29.03.2007, 16:38
примерно:

var p:Point = new Point(btn.x, btn.y);
trace(btn.localToGlobal(p).y); //неправильное значение
trace(locToGlobal(btn).y); //правильное значение