Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Нужно поменять parent мувиклипа (http://www.flasher.ru/forum/showthread.php?t=161227)

SenCheR 21.07.2011 22:30

Нужно поменять parent мувиклипа
 
Нужно поменять parent мувиклипа, но чтобы при этом он не поменял видимый х у. Т.е. его нужно перевести в систему координат target мувиклипа, но пользователь этого не увидит. Вложенность первого и второго парента могут отличаться.
Пробовал localToGlobal, а потом globalToLocal вставить. Но результаты самые неожиданные.

Может кто сталкивался?

goodguy 21.07.2011 22:44

Цитата:

Пробовал localToGlobal, а потом globalToLocal вставить. Но результаты самые неожиданные.
Что значит самые неожиданные? Если эти методы правильно испоьзовать, то результаты вполне предсказуемы.
Нужно глянуть на сам код

fish_r 21.07.2011 22:46

Нормальные должны быть результаты. Вы так делали?


<font color="#b1b100"><b>varb>font> point:<font color="#6699cc">Pointfont> = myMovie.<font color="#6699cc">localToGlobalfont><font color="#66cc66">(font> <font color="#b1b100"><b>newb>font> <font color="#6699cc">Pointfont><font color="#66cc66">(font><font color="#66cc66">)font><font color="#66cc66">)font>; <font color="#b1b100"><b>varb>font> newPoint:<font color="#6699cc">Pointfont> = _newContainer.<font color="#6699cc">globalToLocalfont><font color="#66cc66">(font>point<font color="#66cc66">)font>; _newContainer.<font color="#6699cc">addChildfont><font color="#66cc66">(font>myMovie<font color="#66cc66">)font>; myMovie.<font color="#6699cc">xfont> = newPoint.x; myMovie.<font color="#6699cc">yfont> = newPoint.y;
Добавлено через 1 минуту
это может, правда, не работать в некоторых случаях, если содержимое мувика находится в отрицательных координатах его самого.

Чо за каша? :В

Добавлено через 9 минут
Код AS3:

 var point:Point = myMovie.localToGlobal(new Point());
 var newPoint:Point = newContainer.globalToLocal(point);// это ищем точку в новом контейнере
 newContainer.addChild( myMovie );
 myMovie.x = newPoint.x; myMovie.y = newPoint.y;


gloomyBrain 21.07.2011 22:59

@fish_r
а я бы через getBounds() делал. То есть так примерно
Код AS3:

var bounds:Rectangle = clipA.getBounds(clipB);
clipB.addChild(clipA);
clipA.x = bounds.x;
clipA.y = bounds.y;

clipA - это тот, которому нужно родителя поменять

ЗЫ
Парсер с какого-то времени неадекватно ведет себя в ФайрФоксе

fish_r 21.07.2011 23:56

да, так красивее. Мне нравится :)


Часовой пояс GMT +4, время: 03:14.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.