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

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

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

Регистрация: Jan 2008
Адрес: Земля
Сообщений: 178
По умолчанию Куда переехал onReleaseOutside

Смотрел миграции, там сказано что юзать теперь нужно mouseUp событие.
Но это событие срабатывает только если кнопка отжата на объекте, а если указатель мыши уже давно уехал с объекта, как мне поймать событие отжатия кнопки.
Т.е. я ловлю на объекте mouseDown, а mouseUp мне нужно ловить этим же объектом, но даже если указатель находится уже вне области этого объекта.
Подскажите, пожалуйста

Старый 09.09.2009, 02:06
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 2  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Подписаться к стейджу
__________________
Hell is the possibility of sanity

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

Регистрация: Jan 2008
Адрес: Земля
Сообщений: 178
Цитата:
Сообщение от wvxvw Посмотреть сообщение
Подписаться к стейджу
Спасибо, помогло.
Но что делать, если нужно вызывать разные методы при mouseUp? Т.е. можно ли привязать mouseUp (как аналог onReleaseOutside) к нескольким объектам, чтобы они вызывали разные методы (функции-приемники событий)?

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

Регистрация: Mar 2001
Адрес: msk
Сообщений: 1,416
ну и подписывайте разные колбеки..
__________________
#define true false //счастливой отладки, друзья

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

Регистрация: Jan 2008
Адрес: Земля
Сообщений: 178
Это как, подскажите?
Я подписываюсь так вот:
Код AS3:
stage.addEventListener(MouseEvent.MOUSE_UP,eventMetod);
Куда подписывать другие приемники???
Здесь же объект один - stage, глобальный. А мне надо чтобы фиксировалось нажатие на определенный объект (mouseDown) и фиксировалось бы "отпускание" этого объекта (mouseUp), даже если курсор мыши уже вне его.
Т.е. есть несколько объектов и нужно ловить "нажатия" на них, "отпускания" и "отпускания за границей", вызывая разные методы.


Последний раз редактировалось RAlfDog; 09.09.2009 в 04:00.
Старый 09.09.2009, 04:05
MyXus вне форума Посмотреть профиль Отправить личное сообщение для MyXus Посетить домашнюю страницу MyXus Найти все сообщения от MyXus
  № 6  
Ответить с цитированием
MyXus
 
Аватар для MyXus

Регистрация: Mar 2001
Адрес: msk
Сообщений: 1,416
stage.addEventListener(MouseEvent.MOUSE_UP, anything.eventMetod);
stage.addEventListener(MouseEvent.MOUSE_UP, otherthing.eventMetod);
__________________
#define true false //счастливой отладки, друзья

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

Регистрация: Jan 2008
Адрес: Земля
Сообщений: 178
А разве таким образом не будет следующего:
- отжимается кнопка мыши
- stage слышит "отжатие"
- stage вызывает оба метода anything.eventMetod и otherthing.eventMetod по очереди

А хотелось бы так:
- есть два объекта object1 и object2
- нажимается кнопка мыши на object1
- отжимается кнопка мыши за границей object1
- object1 слышит "отжатие" и вызывает метод metod1 (object2 не слышит "отжатие" за границей object1 и не вызывает метод metod2)
... аналогично для object2

Старый 09.09.2009, 09:58
Alkaz вне форума Посмотреть профиль Отправить личное сообщение для Alkaz Найти все сообщения от Alkaz
  № 8  
Ответить с цитированием
Alkaz

Регистрация: May 2006
Адрес: Нск
Сообщений: 91
если я вас правильно понял, то вам нужно просто подписываться на событие стейджа в момент когда нажали, когда отпустили - отписываемся.

Старый 09.09.2009, 11:05
switcher! вне форума Посмотреть профиль Отправить личное сообщение для switcher! Найти все сообщения от switcher!
  № 9  
Ответить с цитированием
switcher!

Регистрация: May 2009
Сообщений: 220
как вариант, можно в object1 и object2 определить переменную flagDown = false; (+ дополнение от MyXus)
в обработчике MOUSE_DOWN нажатого объекта пишем
Код AS3:
this.flagDown = true;
(можно без this)

А в обработчиках события MOUSE_UP от stage пишете:
Код AS3:
if (!this.flagDown)
{
    return;
}
this.flagDown = false;
...
последовательно вызываются все обработчики, но по факту реализуется только обработчик нужного объекта.

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

Регистрация: Jan 2008
Адрес: Земля
Сообщений: 178
Цитата:
Сообщение от Alkaz Посмотреть сообщение
если я вас правильно понял, то вам нужно просто подписываться на событие стейджа в момент когда нажали, когда отпустили - отписываемся.
Большое спасибо, отличная идея


Цитата:
Сообщение от switcher! Посмотреть сообщение
как вариант, можно в object1 и object2 определить переменную flagDown = false; (+ дополнение от MyXus)
в обработчике MOUSE_DOWN нажатого объекта пишем
Код AS3:
this.flagDown = true;
(можно без this)

А в обработчиках события MOUSE_UP от stage пишете:
Код AS3:
if (!this.flagDown) { return; } this.flagDown = false;
...
последовательно вызываются все обработчики, но по факту реализуется только обработчик нужного объекта.
Спасибо за совет, я тоже думал об этом, но хотелось более простого варианта
Жаль, что onReleaseOutside разработчики потеряли в AS3

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

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

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


 


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


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