![]() |
Можно ли получить список потомков movie clip?
Доброго времени суток.
Есть небольшой анимационный ролик. Куча разных мелких зацикленных анимашек. Нужно что бы по клику на кнопку "стоп" вся анимация ролика останавливалась. Ну, и соответственно по нажатию на кнопку "старт" запускалась. Так как анимашек много и в них есть вложенные анимашки в которые вложены другие анимашки, то руками последовательно останавливать все мувики это весьма неблагодарная и тяжолая работа. Хотел написать функцию, которая будет при указании объекта останавливать его и всех его потомков. Но не могу сообразить - как получить список потомков класа MovieClip данного обьекта ? Это возможно ? Сразу отмечу, что имена клипов не однородны. Очень надеюсь на вашу помощь. С уважением. Ворон. |
Цитата:
если нет то нет, так как отследить проигрывается или нет нельзя. ЗЫ: если клипов очень много - будет небольшой стопор, на маломощных компах может подвиснуть (от такого стопа и старта) я уже пробовал такое делать. если хочешь могу сделать пример перелистывания всех потомков. |
Цитата:
Ты имееешь в виду определение проигрывается ли ролик или нет ? Такой задачи просто не стоит. (Хотя при каждом "стоп" и "пуск" можно менять переменную состояния объекта) При нажатии "стоп" к каждому потомку класса movie clip применяется метод stop(). Только хотелось бы определять, что из них Movieclip, что бы применить к нему функцию рекурсивно. Подскажешь, как это сделать ? Цитата:
Цитата:
Поооожжжжаааалуста ! |
Рекурсивно перечиляй for in и скань на tуpeof
|
Спасибо !
Сейчас буду пробовать. |
Урааааааа!
Все получилось ! Спасибо всем еще раз ! |
Вложений: 1
Вот еще один вариант, но с ограничением. Не работает для того мувиклипа, для которого в том же кадре где он появляется навесить onEnterFrame (в примере это демонстрирует самый левый синий круг).
Спасибо Nirth'у за помощь :) |
Вложений: 1
Цитата:
Цитата:
немного переделал модифицировал твой пример =) убрар прототипы и onEnterFrame теперь можно использовать сделал регистрацию обьектов с возможностью исключения и setInterval'ом у каждого. |
Техмайкер я бы так сделал бы (а то можно рекурсией убить все скрипты)
Код:
_global.findAllInMcAndRegister = function (mc) { |
2Techmaker : тоже вариант :) но и него тоже есть минус, если объект появляется на сцене кадрами позднее, то он не будет автоматически зарегистрирован, следовательно опять надо вызывать функцию регистрации. В первом способе это происходило автоматически (вот только onEnterFrame собственный всю малину портил :)). Все таки хотелось чтобы объект сам себя регистировал без лишнего кода.:umnik2:
|
Цитата:
а зачем тебе onEnterFrame если нужно останавливать анимацию? |
Чтобы объект сам себя зарегистрировал, нужно создать класс типа
Код:
class MyRegisteredMC extends MovieClip |
А что дебаггер включить не работает? - Он же покаывает всю структуру клипа...
|
Цитата:
|
добрые люди, исходники хорошие - все работает)) но у меня такой вопрос. у меня главная сцена состоит из мувиклипов в каждом кадре. а мувиклипы в свою очередь содержат анимацию. когда я вставляю код для паузы - первый раз срабатывает - пауза в том кадре-мувике, который стопится, но по нажатию на плей начинает проигрывать не тот мувик, который остановился, а главная сцена root.
подскажите, как сделать так, чтобы этот код не затрагивал сцену, только мувиклип/кадр? не хотелось бы все переносить на главную сцену( пожалуйста... |
Эм... код, насколько я помню, писался для запуска и останова всех потомков некого мувиклипа. Если запустить нужно один конкретный, то просто обратись к нему и запусти. А код, насколько я, опять таки, помню, - реагирует на объект который ему передашь.
+ а зачем ты сюда приплел таймлайн? |
у меня мультфильм состоит из 25 сцен. каждую сцену я положила в отдельный мувик. вставляю этот код. он останавливает мувик, котырый сейчас на таймлайне, но когда нажимаю плей, то проигрывается основная сцена(
|
Вложений: 1
Код AS1/AS2:
Наслаждайтесь. Во вложении fla примера |
| Часовой пояс GMT +4, время: 19:30. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.