![]() |
Как получить из метки фрейма его номер ?
Доброго времени суток.
Есть Ф-я управляющая анимацией. (крутит мувики от точки до точки и обратно и т.д.) Анимация маркирована для удобства метками (frame label). Если в ф-ю поступает в качестве "от" и "до" параметров числа - все ок. Если пробую использовать метки - глючит. Подозреваю что дело в конструкции Цитата:
Как бы их перевести корректно ? Подскажите пожалуста. |
Просто меток не существует в swf :)
Они только для редактирования, как только ты создаешь swf, все метки заменяются текущими числовым значением нужных кадров. |
Ы.
В чем же тогда может быть загвоздка, если при вводе чиловых значений все ОК. А когда метки - глючит.... Привожу на всяк случай полный код ф-и: Цитата:
|
Синтаксис:
play_both( от , до ,ссылка на обьект , количество полуциклов , откуда начинать , направление , режим отладки) |
В режиме отладки при использовании меток выводит только
trace("start frame : "+obj._currentframe) А реферные фреймы проскакивает... =( Подскажите что то ? |
Я же тебе ответил :) При запуске, все метки конвертируются в номера кадров. Они ни где не храняться и сравнивать с ними бесполезно.
|
Конвертируются. И что из этого следует?
Почему бесполезно ? С числом (константой) ведь сравнивать можно... Или они НЕ заменяются числом ? Что то я совсем запутался =( Из твоего сообщения я сделал вывод, что нет разницы между использованием метки и числа так как при сборке в swf все метки заменяются числами. Я понял неправильно ? Если правильно то почему с ними нельзя тогда сравнивать ? А если нельзя сравнивать, то есть ли способ в as использовать в качестве атрибта метку ? |
А бллин. понял. Метки конвертируются только если они в gotoAndPlay например. А в других случаях метка - просто текст.
Я правильно понял ? И в этом случая поставленная задача не выполнима, так ? Тогда может кто то подскажет идею как справится с такой проблемой. Есть клип с записью разных движений. Эти движения вызываются вышеуказанной ф-ей. Если надо изменить скорость движения - меняем количество фреймов. И все ранее указанные движения "плывут". Надо все числа "переписывать". Отсюда идея с метками. Как бы выпутатся ? Можно конечно начать пложить бесчисленные переменные с связкой фрейм-движение. но это, извините извращение. Кроме того все связки все равно тогда придется править после каждой "подстройки" скорости. Есть какие то идеи ? Поделитесь ? |
Есть такая чудо-штука - broadcastMessage("...")
Фильм с твоими анимациями может генерировать события (широковещательная рассылка). Зарегестрируй его как вещателя: AsBroadcaster.initialize(myClip); Клип, который будет реагировать на эти события, зарегистрируй слушателем клипа myClip: myClip.addListener(listenerClip); В клипе myClip, в кадре с Анимацией 1 пишешь: this.broadcastMessage("onAnimation1"); Т.е. вместо метки фрейма ты используешь сообщение. При попадании на этот кадр будет генериться событие onAnimation1, которое "услышит" listenerClip. Теперь можно написать: listenerClip.onAnimation1=function(){ твои действия при попадании на кадр с сообщением "onAnimation1"} Таким образом ты отлавливаешь попадание на кадр с нужной анимацией без проверки номера кадра. Чем это может помочь тебе? Можно в цикле пробежаться по всем кадрам клипа myClip и получить номера кадров всех твоих анимаций. А перед пробегом написать: listenerClip.onAnimation1=function(){anim1Frame=myClip._currentframe} listenerClip.onAnimation2=function(){anim2Frame=myClip._currentframe} listenerClip.onAnimation3=function(){anim3Frame=myClip._currentframe} и т.д. Должно сработать ;) |
А можно еще проще:
В кадре с 1-й анимашкой пишем _root.anim1Frame=this._currentframe. В кадре с 2-й анимашкой пишем _root.anim2Frame=this._currentframe. и т.д. Ну и делаем то же самое: в цикле пробегаем по всем кадрам клипа myClip и получаем номера кадров всех твоих анимаций. Затем юзаем уже номера кадров |
| Часовой пояс GMT +4, время: 19:57. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.