![]() |
Как правильно удалить мувик с выполняющимся внутри Tween'ом?
В силу недостаточного знания теории столкнулся с непониманием одной детали работы класса Tween.
Допустим у нас есть (например создали) мувик mc. В нем создали новый Tween. В какой-то мемент понадобилось удалить mc. При этом tween продолжает работать как ни в чем ни бывало, хотя объект-родитель уже отсутствует на сцене. (В случае моего проекта это приводит к краху ролика). Код для примера: Код AS1/AS2:
1. Нажимаем кнопку, удаляем мувик. Но tween продолжает работу: Код:
time: 0.035 object: _level0.mc2. Если перед удалением сделать остановку tween, то все в порядке: Код AS1/AS2:
Код:
time: 0.033 object: _level0.mcСобственно, вопрос. Отчего tween продолжает работать? И значит ли все это, что при моей задаче, когда необходимо удалить мувик, перед этим необходимо также останавливать весь набор tween'ов, которые присутствуют в мувике? Вопрос не праздный, была ошибка в одном проекте: в одном из tween'ов некого мувика на его исполнение (onMotionChanged) присутствовали вызовы других функций и циклы, все это наглухо вешало ролик после удаления мувика-родителя tween'a, поскольку tween продолжал отрабатываться, а все, что с ним связано, еще как-то пыталось выполняться. |
Tween создает в корне ролика клип, которому назначает onEnterFrame. Из-за этого он продолжает спокойно работать. Посмотрите файл Classes/mx/transitions/Tween.as - это сам Твин, он использует OnEnterFrameBeacon.as, где как раз и создается _root.createEmptyMovieClip. Примерно так.
Можно попробовать прописать удаление всех созданных твинов на событии mc.onUnload, чтобы отдельно их не удалять. |
Спасибо, rainbowrussia, я примерно что-то такое себе и представлял.
Не очень только понятно, почему создается _root.createEmptyMovieClip, а не в текущем мувике. |
Он создается там где вы его создали. Только, на сколько я помню синтаксис конструктора твин, вы используете не анимацию не по onEnterFrame, а по setInterval.
|
| Часовой пояс GMT +4, время: 05:10. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.