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

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

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

Регистрация: Aug 2010
Сообщений: 91
По умолчанию Создание собственной кнопки

Так получилось, что SimpleButton мне не подходит - есть необходимость в намного большем числе состояний кнопки.
Создаю класс, наследую его от MovieClip, вешаю слушатели на события MouseUP, MouseDOWN, MouseOUT, MouseOVER для смены основных состояний кнопки, в которых и меняю эти состояния. Но вот если нажать на кнопку и, неотпуская кнопки мыши, переместить указатель за пределы кнопки, то состояние не изменится. Как это исправить?
И еще - как сделать свойство Hit у кнопки - в некоторых состояниях кнопка будет больше, чем область, в которой она должна реагировать.

Старый 03.10.2010, 19:34
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 2  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Наследоваться все-таки лучше от Sprite, если не используете таймлайн.
По-поводу хита. Сделайте прозрачную область (alpha=0), которая будет реагировать на мышь.

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

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
Для этого в обработчике mouseDown нужно подписаться на mouseUp у stage.

Старый 03.10.2010, 20:08
Robotex вне форума Посмотреть профиль Отправить личное сообщение для Robotex Найти все сообщения от Robotex
  № 4  
Ответить с цитированием
Robotex

Регистрация: Aug 2010
Сообщений: 91
Таймлайн используется. stage использовать никак, т.к. во первых он находится за пределами класса, а это уже нарушение принципов ООП, а во вторых, кнопка не будет лежать на stage.

Старый 03.10.2010, 21:58
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 5  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
передавайте ссылку на stage или другой дисплейобжект, который будет отрабатываться за пределами кнопки..по другому никак
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 03.10.2010, 22:42
f.g.programmer вне форума Посмотреть профиль Отправить личное сообщение для f.g.programmer Найти все сообщения от f.g.programmer
  № 6  
Ответить с цитированием
f.g.programmer
 
Аватар для f.g.programmer

блогер
Регистрация: Sep 2010
Адрес: Россия
Сообщений: 137
Записей в блоге: 3
Кнопка в итоге всё-равно будет лежать на stage, иначе вы её просто не увидите и тем более не сможете нажать на неё. В данном случае это пожалуй можно считать исключением из правил.

Старый 03.10.2010, 22:45
Robotex вне форума Посмотреть профиль Отправить личное сообщение для Robotex Найти все сообщения от Robotex
  № 7  
Ответить с цитированием
Robotex

Регистрация: Aug 2010
Сообщений: 91
Оказалось, что я просто сделал одинаковые состояния у кнопки

А как добавить прозрачный объект Hit, если у меня состояния задаются лейблами на таймлайне и переходами по ним.
А еще - есть возможность сделать так, чтобы кнопка всплыла в самый верх объекта, по отношению к его детям?

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Сложите все в контейнер. Получится скин в виде MovieClip, и Hit. Функционал реализуется в контейнере. Как вариант.

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

Регистрация: Aug 2010
Сообщений: 91
Цитата:
Сообщение от alatar Посмотреть сообщение
Сложите все в контейнер. Получится скин в виде MovieClip, и Hit. Функционал реализуется в контейнере. Как вариант.
мне вот больше нравится, когда Hit в отдельном слое. Вот думаю только как это реализовать.

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

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
Цитата:
Сообщение от Robotex Посмотреть сообщение
Таймлайн используется. stage использовать никак, т.к. во первых он находится за пределами класса, а это уже нарушение принципов ООП, а во вторых, кнопка не будет лежать на stage.
1) Объект который можно увидеть на экране имеет stage
2) stage - это геттер в DisplayObject. Какое ещё "нарушение ооп"?

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

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

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


 


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


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