Просмотр полной версии : Как узнать координаты мувика относительно stage?
MakTpaxep
10.01.2011, 17:05
Как узнать координаты мувика относительно stage?
myMovieClip.x
myMovieClip.yЕсли клип лежит на stage.
MakTpaxep
10.01.2011, 17:08
Нужно узнать внутри самого мувика. И этот вариант показыват координаты не относительно stage, а относительно родителя.
А еще есть функция localToGlobal() (http://help.adobe.com/ru_RU/AS3LCR/Flash_10.0/flash/display/DisplayObject.html#localToGlobal%28%29).
MakTpaxep
10.01.2011, 17:31
Спасибо, Мужик=)
А можно старым добрым способом:
var globalX:Number = parentClip.x + childClip.x;
А можно старым добрым способом:
var globalX:Number = parentClip.x + childClip.x;
А если вложенность неизвестна или о ней знать не нужно?
Mur4ik, а такого в вопросе не было оговорено ;)
Mur4ik, а такого в вопросе не было оговорено ;)
Вот именно ;)
mikhailk
10.01.2011, 22:48
А если вложенность неизвестна или о ней знать не нужно?
private function getReallX(mc:Sprite) : int
{
if (mc) return (mc.x + getReallX(mc.parent as Sprite));
else return(0);
}
А можно поизвращаться и сделать то же, что предложил mikhailk, но с рекурсией, чтобы шло до последнего родителя :D
mikhailk
10.01.2011, 22:58
у меня собственно, так и сделано
пока парент не станет нуллом
private function getReallX(mc:Sprite) : int
{
if (mc) return (mc.x + getReallX(mc.parent as Sprite));
else return(0);
}
Зачем выражение после return брать в скобки?
mikhailk
10.01.2011, 23:03
просто привычка
по синтаксису не требуется
но и ошибкой не является
пока парент не станет нуллом
А лучше, пока parent не станет равен экземпляру главного класса или стейджа даже...
mikhailk
10.01.2011, 23:32
А лучше, пока parent не станет равен экземпляру главного класса или стейджа даже...
так и случится
рекурсия дойдет до стейджа, у стейджа парента нет, раскрутится обратно и посчитается
Скажите, if (mc) соответствует if (mc != null)?
mikhailk
11.01.2011, 00:26
соответствует
JackFromChaos
11.01.2011, 04:43
По моему считать глобальные координаты не совсем корректно. Если какие то из родительских символов трансформированы(ну вращение, там, или skiw), то координата посчитается не правильно...(имеется ввиду рекурсивный метод. localToGlobal считает естественно правильно. Ну или можно координаты на матрицы трансформации умножать, если сильно вручную хочется....)
так и случится
Не совсем, будет совершен лишний заход в рекурсию в попытках отыскать родителя у стейджа.
Кроме того, localToGlobal должен быть еще и в разы быстрее, чем высокозатратная рекурсия. Будет очень сильно заметно, если каждый кадр (ну или по частому таймеру) высчитываются координаты сотен объектов.
mikhailk
11.01.2011, 11:55
офф: честно говоря, это было сделано для иллюстрации тезиса, что глубина заранее не известна
Извращенцы :)
Видно что праздники и работать ааще не прет.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.