Получить координаты в родительском, но не в этапе

Я знаю о методах Flash localToGlobal и globalToLocal для преобразования координат из локальной системы в глобальную, но есть ли способ достичь промежуточного результата? Преобразовать координаты из произвольной системы в любую другую произвольную систему?

У меня есть интерактивный объект внутри спрайта, а спрайт является дочерним элементом сцены. Я хочу получить точку щелчка в Sprite.


person Bart van Heukelom    schedule 12.05.2010    source источник


Ответы (2)


вы можете использовать следующее:

var m:Matrix = a.transform.matrix.clone();
m.invert();
bCoord = m.transformPoint(aCoord);

выглядит немного многословно из-за действительно глупой подписи инвертирования, но когда клипы глубоко вложены, это должно быть быстрее.

извините, просто перечитайте свой вопрос. если вы хотите узнать только точку, на которую нажали, вы можете сделать globalToLocal с stageX и stageY MouseEvent.

приветствие
back2dos

person back2dos    schedule 12.05.2010
comment
Разве матрица преобразования не относится только к родителю? - person Bart van Heukelom; 12.05.2010
comment
@ Барт ван Хеукелом: правильно. Хотя, казалось, ты хотел только этого. - person back2dos; 12.05.2010
comment
Ах да, конечно, ты прав. Это позволило бы мне решить эту конкретную проблему. Однако вы не можете использовать его для перехода между произвольными координатными пространствами. - person Bart van Heukelom; 12.05.2010

Пока печатал, пришел к ответу. Я решил, что все равно опубликую вопрос, чтобы другие могли найти его по поиску.

bCoordinate = b.globalToLocal(a.localToGlobal(localPoint));
person Bart van Heukelom    schedule 12.05.2010