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

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

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

Регистрация: Jan 2006
Адрес: Сургут
Сообщений: 897
Отправить сообщение для MINASTIS с помощью Skype™
По умолчанию MOUSE_OVER срабатывает на тексте но не на Sprite или Shape

С помощью addChild я добавляю два элемента в кнопку. TextField и Shape. Первое для надписи на кнопке, второе естественно, для формы.
Код AS3:
			buttonBody.addChild(buttonShape);
			buttonBody.addChild(buttonTextField);
addChild(buttonBody);
Сначала я добавляю форму, а после текст, чтобы по индексу текст было видно.
Теперь, если добавить листенер buttonBody, который активирует парочку твинов (один из которых передвигает все текстовое поле влево), то он почему-то считается, что MOUSE_OVER и MOUSE_OUT должен реагировать именно на текстовое поле.

То есть, оставив мышку там, где было текстовое поле до твина, и куда оно возвращается после MOUSE_OUT, можно зациклить событие (откатился текст - прикатился текст).
В чем может быть дело? Если какие части кода нужны, кину, я просто думаю, может я не знаю о каких-то особых свойствах addChild-а, глубины(индекса) и т.д., которые дают такой странный косяк.

Кстати, суть в том что на buttonShape листенер вообще не реагирует. Хотя он там, за текстовым полем виднеется! Как так, если оба элемента находятся в buttonBody и на весь buttonBody повешен листенер?

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

Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
Начнём с того, что Shape вообще не генерирует события мыши.
Если хотите, чтоб спрайт под текстовым полем реагировал на мышь, отключите обработку событий мыши у текстфилда.
tf.mouseEnabled = false;

Цитата:
я не знаю о каких-то особых свойствах addChild
addChild() - это метод. У него нет событий и свойств(за исключением свойств класса Function)

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Код AS3:
buttonBody.mouseChildren = false;
__________________
Reality.getBounds(this);

Старый 12.08.2012, 22:54
MINASTIS вне форума Посмотреть профиль Отправить личное сообщение для MINASTIS Посетить домашнюю страницу MINASTIS Найти все сообщения от MINASTIS
  № 4  
Ответить с цитированием
MINASTIS
 
Аватар для MINASTIS

Регистрация: Jan 2006
Адрес: Сургут
Сообщений: 897
Отправить сообщение для MINASTIS с помощью Skype™
Спасибо, помогло!
Главная моя ошибка была в том, что я пытался на Shape повесить листенер, когда надо было на спрайт.
И еще текст, конечно) Спасибо.

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Вместо MOUSE_OVER и MOUSE_OUT в большинстве случаев лучше использовать ROLL_OVER и ROLL_OUT

Старый 13.08.2012, 22:00
zerAlex2 вне форума Посмотреть профиль Отправить личное сообщение для zerAlex2 Найти все сообщения от zerAlex2
  № 6  
Ответить с цитированием
zerAlex2

Регистрация: Nov 2005
Сообщений: 148
Обычно делаю строки:
Код AS3:
this.mouseEnabled=false;
this.mouseChildren=false;
this.mouseEnabled=false;

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Зачем?
И зачем mouseEnabled назначается дважды?

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

Регистрация: Jan 2006
Адрес: Сургут
Сообщений: 897
Отправить сообщение для MINASTIS с помощью Skype™
Я сделал mouseEnabled = false а после создал полностью прозрачный спрайт для области нажатия Скукожилась ли кнопка от программной анимации или текст выглянул из-за фона кнопки, область нажатия все та же, что мне очень помогло.

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Для этого у спрайта есть свойство hitArea.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 18.08.2012, 00:40
zerAlex2 вне форума Посмотреть профиль Отправить личное сообщение для zerAlex2 Найти все сообщения от zerAlex2
  № 10  
Ответить с цитированием
zerAlex2

Регистрация: Nov 2005
Сообщений: 148
Очепятка

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

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

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


 


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


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