![]() |
Как остановить движение
Есть движущийся мувик и в него вложен другой мувик
Не получается остановить основной при условии что координата Х вложенного превысит определенное значение Трэйс координаты Х основного ролика показывает изменение значения Х а вот у вложенного координата не меняется Подскажите плз где ошибка Код AS1/AS2:
|
Ну так вы вложенный и не передвигаете. А координаты относительны. Можете использовать метод MovieClip#localToGlobal() для определения глобального положения детенка.
|
ну вообщето детенок тоже двигается вместе с родителем.хотя конечно относительно родителя он неподвижен
пробовал разобраться с localToGlobal() но пока не получилось с этим разобраться если бы пример как перевести локальные координаты в глобальные |
т.к. вы не двигаете вложенный клип, то логично что изменяются координаты главного - значит простейший способ:
Код AS1/AS2:
|
ну так это не работает
уважаемый swat05 я не понял что вы хотели сказать своим постом Задача в том чтоб что вложенный клип как бы является ограничителем движения основного и когда его координаты принимают определенное значение то основной клип останавливается,для чего здесь выше и был предложен метод localToGlobal() но как им правильно воспользоваться применительно к моей ситуации я не могу пока разобраться |
вложеному клипу тяжело быть ограничением для родителя - потому что сам двигается вместе с ним.
если движение происходит на поле сложной формы советую периодически проверять HitTest ом координаты родителя на клипе-подложки (который нарисован нужной формы и лежит под всеми другими клипами оформления) |
все кажется разобрался
жаль что никто пример не привел - пришлось долго лазать по хелпу |
казалось бы все просто - получил координаты детенка внутри клипа, и прибавил их к координатам родителя - и получил положение hitL_mc на основной сцене. В этом, вероятно, и состоит суть функции localToGlobal().
|
в общем да - зато освоил новую для себя операцию
To Fessor : Я поначалу так и начал делать,но дело в том что у меня сверху двигающегося родителя находится маска сложной формы,а родитель состоит из картинок,расположенных горизонтально одна за другой. Все это двигается влево-вправо взависимости от положения мыши относительно центра обьекта-маски.Соответственно самая левая и самая правая картинки являются ограничителями ( я ,честно говоря, не придумал как по-другому сделать ограничения) и из всего родителя видется только то ,что внутри маски В хэлпе прочел про ХитТест - как я понял он срабатывает если хотя бы одна точка из обьекта попадает в область ХитТеста.Получается,что крайние картинки еще не успевают целиком попасть в область маски.Я еще не опытен в программинге (пришлось осваивать ,хоть и не хотелось,но теперь не жалею,так как на сайте который я делаю нет ни одной не программной анимации) и наверняка все можно было сделать по-другому(проще).Был бы очень признателен членам сообщества за информацию о том ,как такое делать правильно Вот Код который у меня получился Код AS1/AS2:
На самом деле работает немного не так как хотелось. Хотелось чтоб анимация останавливалась при достижении границ ,а затем возобновлялась при новом движении мыши.Остановить получилось а вот возобновить движение никак(может и можно было , введя какой нить дополнительный логический флажок),но я устал париться и решил просто менять направление движения на противоположное,не останавливая при этом само движение Добавлено через 28 минут Еще подскажите плз возможно ли помещение подобного кода внутрь цикла For или While. Основной клип планируется размножить по вертикали в колличестве 10-12 шт Не размножать же код |
| Часовой пояс GMT +4, время: 12:56. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.