![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Sep 2012
Сообщений: 204
|
доброго времени суток
у меня вопрос следующего характера. Мне нужно было сделать меню такого вида- 4 мувиклипа, в каждом свои кнопки. и соответственно 2 кнопки, переключающие эти клипы. На первый взгляд ничего сложного, я прикинул каким способом лучше выполнить, и пришел к выводу сделать 4 кадра на главной сцене. Слой с кнопками переключения клипов, общий для всех. Так же как и слой АС3. Для мягкой смены кадром сделал следующим образом: добавляется класс Fader, создается экземпляр. Далее по условию, какой кадр проигрывается ( if currentFrame == (х)) прописываю слушатели на кнопки, внутри клипов. Без if это не получается, т.к. он ругается на нулевой объект. Вот небольшой пример кода Далее прописываются слушатели к кнопкам, которые меняют кадр. Вот и код смены function clicked (e:MouseEvent):void{ if (currentFrame == 1){ switch (e.currentTarget.name){ case "left": addChild(fader); TweenLite.to(fader, 0.5, {alpha:1,onComplete: goto}); i = 4; TweenLite.to(fader, 0.5, {delay:0.5, alpha:0, onComplete: removeFader }); break; case "right": addChild(fader); TweenLite.to(fader, 0.5, {alpha:1,onComplete: goto}); i = 2; TweenLite.to(fader, 0.5, {delay:0.5, alpha:0, onComplete: removeFader}); break; } } далее сами исполнительные функции смены function removeFader():void{ removeChild(fader); } function goto ():void{ gotoAndStop(i); } Подтолкните пожалуйста, где же я совершил какую то концептуальную ошибку? |
|
|||||
|
блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
|
Цитата:
Цитата:
Кадры нужны для анимации. А в вашем случае, думаю, простого переключения видимости хватит. И не нужно будет заново подписываться на события и отслеживать номер кадра.
__________________
hauts.ru |
|
|||||
|
Регистрация: Dec 2009
Сообщений: 125
|
Окна - контейнеры (Sprite например).
Кнопки - SimpleButton из flash ide запихнутые в swc, или созданные кодом на основе того же Sprite, например. Осталось повесить слушатели на кнопки и в обработчиках addChild/removeChild нужных/не нужных окон. А кадры если и использовать, то только как мультик/кадр с контентом без каких либо интерактивных элементов. |
|
|||||
|
Регистрация: Sep 2012
Сообщений: 204
|
я в итоге потом так и сделал. Правда еще не понял как сделать плавный переход между кадрами, то есть сделать клип в alpha 0, следующий клип сделать видимым, и потом из альфа 0 в 1.
А по поводу 4 кадров- мне бы понять, почему такая структура не работает (чтобы избегать дальнейших ошибок) Ведь по идеи переключение происходит... spirit2 только сейчас увидел ваш ответ. Итог 1- все в 1 кадр, и по-другому никак? У меня есть примеры работ, которые сделаны с полной функциональностью на подобном принципе.. поэтому я так изначально и подумал сделать Последний раз редактировалось pomuс; 25.11.2012 в 17:55. |
|
|||||
|
Регистрация: Dec 2009
Сообщений: 125
|
Вариантов всегда больше одного. Просто проще отделить логику от графики (кадров, клипов и т.п.) и потом уже не задумываться в каком там кадре что-то отвалилось..
Для плавного изменения прозрачности нужно повесить слушатель на ENTER_FRAME или таймер и изменять альфу на каждой итерации по чуть-чуть. Или воспользоваться твинерами. |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:34. |
|
|
« Предыдущая тема | Следующая тема » |
|
|