![]() |
swapDepths() Баг или я что-то непонимаю?
Вложений: 1
Столкнулся с крайне непонятной ситуацией.
(см. вложение) Есть мувиклип. Он меняет свою глубину программно. И все бы ничего, пока он расположен на родительской диаграмме состоящей из ОДНОГО кадра. Но когда она состоит из нескольких кадров происходят "чудеса": мувик начинает размножаться. Код в мувике: Код:
if (!Ainit){1 - этот мувик 2 - кнопки перехода по кадрам (соответственно две кнопки) Баг проявляется если выполнить следующую последовательность: 1) сменить глубину (кликнуть по мувику) 2) перейти на следующий кадр (кликнуть по нижней кнопке) 3) вернуться на предыдущий кадр (кликнуть по верхней кнопке) На этом месте появляется ВТОРОЙ мувик! С ним можно выполнить ту же последовательность действий с 1 по 3-й. А вот с его родителем уже ничего не выйдет. |
Убивать надо мувик перед переходом назад.
|
А почему он копируется? Ведь если один кадр на главной диаграмме, то ничего не происходит.
Да и зачем убивать? Мне нужны данные сохраненные в этом мувике. |
При swapDepths мувик уже не привязан к таймлайну и сохраняется при переходах по фреймам. При возврате на первый фрейм флеш видит там мувик и отображает (а куда он денется?). А копия клипа, в силу независимости от таймлайна продолжает отображаться.
|
Цитата:
Если заменить swapDepth на startDrag например, то флеш возратясь на 1-й кадр почему-то не увидит там этот же клип в исходном положении. И только для swapDepth делает такое "приятное исключение". Не ясно почему он не убивает автоматом мувик на старой глубине? Ведь при одном кадре мувик перемещается (т.е. никаких исходников-прототипов мувика не сохраняется). И как теперь с этим жить? :-) Как убить мувик на старой глубине, если это должно и так делаться автоматом? |
это не должно делаться автоматом если вы понимаете суть дела, т.к. клип созданный вручную и кодом это не совсем одно и тоже, так вот swapDepth делает копию вашего клипа. т.е. создает динамический клип, а тот собсвенно остается, и теперь на новый клип кадры никак не влияют , а на тот влияют, т.е. все логично, что тот появится при переходе назад )) убивать нужно не тот мувик а этот новый созданный )
нда, лектор из меня хреновый, понимаю что ничего не понятно что я написал )) вобщем нужно убивать мувик который вы делаете swapDepths при возврате на тот кадр на котором он уже есть |
Цитата:
|
Ну оставьте один кадр на таймлайне.
Или не перематывайте в тот кадр, где мувик появляется. |
Цитата:
Вы правы, можно решить проблему ИЗНАЧАЛЬНО помещая мувик на таймлайн программно - тогда такого не будет. Но по ряду причин такой вариант маложелателен. Или надо делать какой-то хитрый финт, что мувик при старте ОДИН раз себя копирует (и копия живет счастливо и долго) и удаляется? |
атачте его из библиотеки, в любом случае это лучше, раз вы всеровно меняете глубину, то уж лучше его подгрузить на нужную грубину из библиотеки.
и не надо хранить данные в мувике! |
| Часовой пояс GMT +4, время: 16:10. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.