Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 27.10.2015, 22:59
zCHESNOKz вне форума Посмотреть профиль Отправить личное сообщение для zCHESNOKz Посетить домашнюю страницу zCHESNOKz Найти все сообщения от zCHESNOKz
  № 1  
Ответить с цитированием
zCHESNOKz
 
Аватар для zCHESNOKz

Регистрация: May 2013
Адрес: (0, 0)
Сообщений: 176
Question Custom Buttons. Кастомные кнопки. Как сделать?

Есть собранный интерфейс игры во Flash. Много кнопок(будущих, то есть просто png картинки), все стоит на своих местах.

Мне же необходимо применить к каждой из всех кнопок пару различный эффектов (tween scaleX + scaleY + ColorTransform + добавить небольшой клип (щелчка) в месте нажатия и это все для разный состояний кнопки)

Я бы сделал каждую кнопку во Flash но, кнопок слишком много, слишком долго и муторно выйдет + все уже стоит на своих местах (вручную потом ставить координаты это не вариант)

Как это сделать программно (по умному )?

Вот парочка идей пришедших мне в голову:

1) Это создать класс например MyCustomButton, в нем создать слушатели для состояний и применять все
манипуляции к this. Далее когда оборачиваем изображение в клип, в поле "Главный класс" вместо
"flash.display.MovieClip" указать наш com.name.MyCustomButton. Вот и вся работа, изменил один класс для всех
кнопок, прописал базовый класс клипу и все работает.

Но у меня почему то (черт знает почему), именно при таком раскладе tween не воспринимает функцию onComplete.
Например: В функции меняются свойства клипа, и есть trace(). Трейс работает а свойства остаются такими же (короче
ничего не происходит, прям чертовщина какая то).

Не знаю на сколько такой вариант был бы правильным для кастомизации кнопок.

2) Сделать класс с статистическими функциями, и инициализировать каждую нужную кнопку с клипа интерфейса, а потом уничтожать слушатели, тоже для каждого клипа отдельно.
Код AS3:
InitClipListeners(gui.shop);
InitClipListeners(gui.achives);
InitClipListeners(gui.photo);
и т.д.
например:
Код AS3:
 
InitClipListeners(clip:MovieClip):void
{
   clip.addEventListener(MouseEvent.ROLL_OVER, onRollOver);
   clip.addEventListener(MouseEvent.ROLL_OUT, onRollOut);
   clip.addEventListener(MouseEvent.CLICK, clickHandler);
}
 
DestroyClipListeners(clip:MovieClip):void
{
   clip.removeEventListener(MouseEvent.ROLL_OVER, onRollOver);
   clip.removeEventListener(MouseEvent.ROLL_OUT, onRollOut);
   clip.removeEventListener(MouseEvent.CLICK, clickHandler);
}
Но как такой вариант, правильный или нет я не знаю. (Была проблема с Stage.mouseX в статической функции, и решил узнать у более опытных ребят) Помогите пожалуйста)


Последний раз редактировалось zCHESNOKz; 28.10.2015 в 22:28.
Создать новую тему   Часовой пояс GMT +4, время: 08:34.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 08:34.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.