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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 30.11.2010, 20:55
XDiaBLo вне форума Посмотреть профиль Отправить личное сообщение для XDiaBLo Найти все сообщения от XDiaBLo
  № 1  
Ответить с цитированием
XDiaBLo

Регистрация: Mar 2010
Сообщений: 51
По умолчанию Как сделать обычную кнопку?

Я знаю про методики типа создания Sprite, и прикручивания всего нужного для имитации кнопки к нему, но я нашёл такой метод в интернете:
Код AS3:
import mx.controls.button;
private var asButton:Button = new Button();
asButton.x = 100;
asButton.y = 100;
asButton.id="actionscriptButton";
asButton.label = "ActionScript 3 Button";
addChild(asButton);
он у меня почему-то не работает. Как вообще можно чисто программным способом создать кнопку? Я работаю в FlashDevelop, c flex_sdk_4.1. Наверняка ведь есть способ сделать обычную простую кнопку с текстом, без всяких докручиваний Sprite.

Старый 30.11.2010, 20:58
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 2  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Кнопка с текстом? Это Sprite, содержащий в себе SimpleButton с TextField сверху, у которого свойство selectable (так же его зовут?) поставлено в false. Я так давно нафигачил свой класс на основе своей кнопки.
__________________
тут я

Старый 30.11.2010, 21:07
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 3  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Проще простого.
Код AS3:
var button:Button = new Button();
button.label = "Actionscript 3 Button";
button.addEventListener(ComponentEvent.BUTTON_DOWN, buttonClicked);
Работает как часы.

Старый 30.11.2010, 21:43
XDiaBLo вне форума Посмотреть профиль Отправить личное сообщение для XDiaBLo Найти все сообщения от XDiaBLo
  № 4  
Ответить с цитированием
XDiaBLo

Регистрация: Mar 2010
Сообщений: 51
Цитата:
Сообщение от goodguy Посмотреть сообщение
Проще простого.
Код AS3:
var button:Button = new Button();
button.label = "Actionscript 3 Button";
button.addEventListener(ComponentEvent.BUTTON_DOWN, buttonClicked);
Работает как часы.
Access of undefined property ComponentEvent.

Добавлено через 49 секунд
Цитата:
Сообщение от КорДум Посмотреть сообщение
Кнопка с текстом? Это Sprite, содержащий в себе SimpleButton с TextField сверху, у которого свойство selectable (так же его зовут?) поставлено в false. Я так давно нафигачил свой класс на основе своей кнопки.
Мда, ну это ведь тоже изврат, стандартной кнопки для использования из ActionScript нет нормальной?

Старый 30.11.2010, 21:48
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 5  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Цитата:
Access of undefined property ComponentEvent.
Код AS3:
import fl.events.ComponentEvent;

Старый 30.11.2010, 21:52
Anton Riot вне форума Посмотреть профиль Отправить личное сообщение для Anton Riot Посетить домашнюю страницу Anton Riot Найти все сообщения от Anton Riot
  № 6  
Ответить с цитированием
Anton Riot

Регистрация: Sep 2008
Адрес: Москва
Сообщений: 291
Отправить сообщение для Anton Riot с помощью ICQ
стандартная кнопка есть в стандартных компонентах. Кроме этого, в них ещё много чего стандартного

Старый 30.11.2010, 21:56
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 7  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Цитата:
Мда, ну это ведь тоже изврат, стандартной кнопки для использования из ActionScript нет нормальной?
Есть стандартная своя кнопка
__________________
тут я

Старый 30.11.2010, 22:12
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 8  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Цитата:
Сообщение от XDiaBLo Посмотреть сообщение
Мда, ну это ведь тоже изврат
Ну че изврат сразу. У меня например тоже класс кнопки есть.

Называется скромно и со вкусом: UniversalButton. (Вообще типа универсальный батон, но можно и как космический читать кому как приятнее)
На самом деле является не кнопкой, а оберткой вида кнопки на любой DisplayObject.

Делается примерно так(это конструктор):
Код AS3:
UniversalButton(_source:DisplayObject = null, _simple:Boolean = false, _clickFunc:Function = null, _inactiveColor:int = 0x000000, _activeColor:int = 0xffffff)
в качестве сорса принимает любой DO сразу же на него навешивает всякие там "по наведению", "по клику" и прочее, если в этом сорце находит текстфилд с именем "title" - то работает с ним как с тайтлом. Если находит мувиклип двухкадровый с именем "icon" - то соответственно понимает что это икон.

имеет статусы активная/неактивная. татлу меняет цвет (берет из конструктора), а иконке переключает кадр (первый неактивный, второй активный)

_simple - это значит что простая кнопка, без тайтла и без иконки (влияет на эффекты при наведении и клике).

По клику вызывает функцию указанную в конструкторе, в качестве параметра в которую передает свой идентификатор.

В работе сей неказистый класс на 80 строк зарекомендовал себя отлично. И минус стопицот геморроя в отличии от работы со стандартными кнопками.

Старый 30.11.2010, 23:14
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 9  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Это отвратительно что callback на клик задаётся явно.
Это значит что используя Вашу кнопку я не смогу вменяемо контролировать поток мышинных событий - тут запретить, тут продолжить, тут прекратить, а тут подписаться аж на 2 обработчика. Мне придется всегда занулять _clickFunc, и подписывать сам объект DisplayObject`а (предварительно, конечно, обёртывая его в спрайт если это не IneractiveObject - хотя это должна быть обязанность кнопки).

Старый 30.11.2010, 23:22
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 10  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Цитата:
Это отвратительно что callback на клик задаётся явно.
ну для каждой задачи свое решение. В тех моментах где я кнопку эту пользовал мне много обработчиков не требовалось. А кода экономит кучу. Вместо кучи подписок, я в родительском классе просто делаю функцию и всё ок.

А навешать дополнительно слушателей вам никто не запрещает даже с такой структурой. Так что комментарий по меньшей мере непонятен.

Данная кнопка перехватывает только маусОвер, маусКлик (рисует эффектик и передает в эту самую функцию свой идентификатор) и маусАут... собственно всё. Эти все обработчики событий занимаются только визуальной частью, если вам нужно на маусОвер повесить что-то функциональное - то без проблем, конфликтов не будет (есть подобная практика в работе с данным классом).

С кликом я вообще проблем не вижу. Редко когда мне нужно получить из MouseEvent.CLICK что-то окромя e.target - этот самый таргет я и принимаю в функции обработчике родительского класса.

Создать новую тему Ответ Часовой пояс GMT +4, время: 12:52.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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