![]() |
Как сделать обычную кнопку?
Я знаю про методики типа создания Sprite, и прикручивания всего нужного для имитации кнопки к нему, но я нашёл такой метод в интернете:
Код AS3:
|
Кнопка с текстом? Это Sprite, содержащий в себе SimpleButton с TextField сверху, у которого свойство selectable (так же его зовут?) поставлено в false. Я так давно нафигачил свой класс на основе своей кнопки.
|
Проще простого.
Код AS3:
|
Цитата:
Добавлено через 49 секунд Цитата:
|
Цитата:
Код AS3:
|
стандартная кнопка есть в стандартных компонентах. Кроме этого, в них ещё много чего стандартного :)
|
Цитата:
|
Цитата:
Называется скромно и со вкусом: UniversalButton. (Вообще типа универсальный батон, но можно и как космический читать:) кому как приятнее) На самом деле является не кнопкой, а оберткой вида кнопки на любой DisplayObject. Делается примерно так(это конструктор): Код AS3:
имеет статусы активная/неактивная. татлу меняет цвет (берет из конструктора), а иконке переключает кадр (первый неактивный, второй активный) _simple - это значит что простая кнопка, без тайтла и без иконки (влияет на эффекты при наведении и клике). По клику вызывает функцию указанную в конструкторе, в качестве параметра в которую передает свой идентификатор. В работе сей неказистый класс на 80 строк зарекомендовал себя отлично. И минус стопицот геморроя в отличии от работы со стандартными кнопками. |
Это отвратительно что callback на клик задаётся явно.
Это значит что используя Вашу кнопку я не смогу вменяемо контролировать поток мышинных событий - тут запретить, тут продолжить, тут прекратить, а тут подписаться аж на 2 обработчика. Мне придется всегда занулять _clickFunc, и подписывать сам объект DisplayObject`а (предварительно, конечно, обёртывая его в спрайт если это не IneractiveObject - хотя это должна быть обязанность кнопки). |
Цитата:
А навешать дополнительно слушателей вам никто не запрещает даже с такой структурой. Так что комментарий по меньшей мере непонятен. Данная кнопка перехватывает только маусОвер, маусКлик (рисует эффектик и передает в эту самую функцию свой идентификатор) и маусАут... собственно всё. Эти все обработчики событий занимаются только визуальной частью, если вам нужно на маусОвер повесить что-то функциональное - то без проблем, конфликтов не будет (есть подобная практика в работе с данным классом). С кликом я вообще проблем не вижу. Редко когда мне нужно получить из MouseEvent.CLICK что-то окромя e.target - этот самый таргет я и принимаю в функции обработчике родительского класса. |
Цитата:
Ладно, по пацански. Как бабблинг делать будете? |
Цитата:
Цитата:
Код AS3:
кстати, забыл упомянуть. конструктор батона вполне может принимать в качестве функции-обработчика клика - null. В этом случает отработаются сугубо визуальные эффекты. А функционально можно будет навесить свои слушатели как это обычно делается. |
У меня сделано так: юзверь интерфейс кнопки содержит в себе базовый функционал и базовые сеттеры-геттеры для стейтов. Далее идеть россыпь классов - обычная кнопка, кнопка-текст и как бонус - кнопка с текстом. Никаких колбеков, опять же, бонуса ради у кнопки-текста - сеттер url:String, вешающий на клик обычный переход по ссылке. Ничего плохого в таком подходе я не вижу.
|
Цитата:
З.Ы. Я вечером ещё раз гляну всё что тут написали, но пока я скажу, что вчера вечером взял VKButton из АПИ вк онтакте, и переделал как нужно. Эта кнопка конечно странная малость, я ещё поработаю над ней, но более менее работает, сделана на основе SimpleButton. В принципе раз я делаю приложение для Вк онтакте, то ничего страшного что дёрну пару заготовок из их же корявых примеров. Лишь бы работало как следует. |
Цитата:
На крайняк всегда можно сделать собственную кнопку. Уж это явно не сложная задача ;) |
Вопрос, наверное, состоял в том, что FD не видит классы флэшевских компонент.
Решение: создайте swc либу компонент, либо скачайте её здесь. И подключите её к FD. |
@Dukobpa3, и в итоге будет каша непонятная. Где подписались так, где подписались иначе.
Я был невменяем когда писал про бабблинг. Какой нафиг "делать бабблинг" у событий мыши? А Вы мне вообще про каптюр фазу писали. |
Цитата:
Добавлено через 54 секунды еще в силу кнопок! Тоже есть такая вопрос как создать кнопку программно! может кто-то поделится своим классом для кнопки??? у меня вот такой код есть Код AS3:
|
sikha, смотрим сюда: http://help.adobe.com/ru_RU/AS3LCR/F...leButton%28%29
|
| Часовой пояс GMT +4, время: 19:55. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.