![]() |
Как сделать обычную кнопку?
Я знаю про методики типа создания Sprite, и прикручивания всего нужного для имитации кнопки к нему, но я нашёл такой метод в интернете:
Код AS3:
|
Кнопка с текстом? Это Sprite, содержащий в себе SimpleButton с TextField сверху, у которого свойство selectable (так же его зовут?) поставлено в false. Я так давно нафигачил свой класс на основе своей кнопки.
|
Проще простого.
Код AS3:
|
Цитата:
Добавлено через 49 секунд Цитата:
|
Цитата:
Код AS3:
|
стандартная кнопка есть в стандартных компонентах. Кроме этого, в них ещё много чего стандартного :)
|
Цитата:
|
Цитата:
Называется скромно и со вкусом: UniversalButton. (Вообще типа универсальный батон, но можно и как космический читать:) кому как приятнее) На самом деле является не кнопкой, а оберткой вида кнопки на любой DisplayObject. Делается примерно так(это конструктор): Код AS3:
имеет статусы активная/неактивная. татлу меняет цвет (берет из конструктора), а иконке переключает кадр (первый неактивный, второй активный) _simple - это значит что простая кнопка, без тайтла и без иконки (влияет на эффекты при наведении и клике). По клику вызывает функцию указанную в конструкторе, в качестве параметра в которую передает свой идентификатор. В работе сей неказистый класс на 80 строк зарекомендовал себя отлично. И минус стопицот геморроя в отличии от работы со стандартными кнопками. |
Это отвратительно что callback на клик задаётся явно.
Это значит что используя Вашу кнопку я не смогу вменяемо контролировать поток мышинных событий - тут запретить, тут продолжить, тут прекратить, а тут подписаться аж на 2 обработчика. Мне придется всегда занулять _clickFunc, и подписывать сам объект DisplayObject`а (предварительно, конечно, обёртывая его в спрайт если это не IneractiveObject - хотя это должна быть обязанность кнопки). |
Цитата:
А навешать дополнительно слушателей вам никто не запрещает даже с такой структурой. Так что комментарий по меньшей мере непонятен. Данная кнопка перехватывает только маусОвер, маусКлик (рисует эффектик и передает в эту самую функцию свой идентификатор) и маусАут... собственно всё. Эти все обработчики событий занимаются только визуальной частью, если вам нужно на маусОвер повесить что-то функциональное - то без проблем, конфликтов не будет (есть подобная практика в работе с данным классом). С кликом я вообще проблем не вижу. Редко когда мне нужно получить из MouseEvent.CLICK что-то окромя e.target - этот самый таргет я и принимаю в функции обработчике родительского класса. |
| Часовой пояс GMT +4, время: 23:06. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.