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

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

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

Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
По умолчанию проблемы с MouseWheel во вложенных контейнерах

Возникла проблема с MouseWheel во вложенных контейнерах.
Положим у нас контейнер, в нем скролится другой контейнер, в котором в свою очередь тоже есть скрол.
Если я пишу в самом скроле
Код AS3:
stage.addEventListener(MouseEvent.MOUSE_WHEEL, wheelHandler);
private function wheelHandler(e:MouseEvent):void {
if (!hitTestPoint(e.stageX, e.stageY) && !mask.hitTestPoint(e.stageX, e.stageY)) return;
//тут функция сдвигающая ползунок и скролируемый клип
}
то это средство не помогает, и скролятся оба контейнера.
Как вариант, может прицепить колесо к Main.as и там проверять что под мышью?
В общем я запутался с этим колесом, может кто знает пример скролла на AS3.0?
__________________
Я просто добрый шутник.


Последний раз редактировалось scarbo; 02.11.2009 в 14:59.
Старый 02.11.2009, 15:19
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 2  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Может стоит отключать скролл родителя при наведении на ребенка?
__________________
...вселенская грусть

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

Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
точняк, как проверить является ли он детём?, внуком?
__________________
Я просто добрый шутник.

Старый 02.11.2009, 16:24
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 4  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
следите за фокусом. во время смены фокуса - отключайте слушателей колеса у предыдущего фокуса и включайте на текущем.
как определять что в фокусе - уже ваше дело (можно по координатам мыши, можно по хиттесту, можно еще как..)
__________________
Отряд Котовскага

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Цитата:
точняк, как проверить является ли он детём?, внуком?
а зачем?
1) Просто отключить все скорллы
2) Включить для объекта под мышкой
__________________
...вселенская грусть

Старый 02.11.2009, 16:59
scarbo вне форума Посмотреть профиль Отправить личное сообщение для scarbo Найти все сообщения от scarbo
  № 6  
Ответить с цитированием
scarbo
 
Аватар для scarbo

Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
чета не выходит.

Значит есть класс ScrollBar, в нем реализованы - размещение кнопок вверх, вниз, ползунок и трэк, и их взаимодействие с мышью(границы перемещения ползунка, и его движение вверх-вниз, в зависимости от нажатой кнопки, при движении ползунка рассылается событие ScrollEvent.SCROLL, с указанием его процентной сдивнутости)

Есть класс ScrollPlane, в нем реализованы - размещение конейнера для скролируемых объектов, сам скролл и маска.Слушается событие ScrollEvent.SCROLL, в зависимости от этого двигаем контейнер.

На главной - лежит StagePlane(потомок ScrollPlane) и в нем уже лежит куча объектов, среди котрых есть например TextArea для прайс-листа.
Для наглядности скрин

###
###
###
Паралельно вопрос:
в As2 я делал скролы используя scrollRect, в As3 не поучается, из-за того что, если я контейнеру прописываю scrollRect, а потом полоиж удалю из него всех детей, то его высота и ширина не становятся равными 0, как ожидалось, а сохраняются старые размеры, приведенние scrollRect=null, результата не дают.
Какие будут соображения?
__________________
Я просто добрый шутник.


Последний раз редактировалось scarbo; 02.11.2009 в 22:29.
Старый 03.11.2009, 05:31
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 7  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
по поводу блокировки скролла event.stopPropagation()

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
2 Scarbo
Вы же где-то подписываетесь на MOUSE_WHEEL? Вот и отписывайтесь обратно =)
То есть на все скроллируемые объекты вешаем один обработчик на 2 события
1) MOUSE_OUT
2) MOUSE_OVER
В этом обработчике отписываем все скроллируемые объекты от MOUSE_WHEEL и подписываем только тот, на который был последний MOUSE_OVER
В чем проблема-то?
__________________
...вселенская грусть

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

Регистрация: Feb 2008
Адрес: Череповец
Сообщений: 623
Отправить сообщение для Felicast с помощью ICQ
gloomyBrain, проблема будет в том, что событие MOUSE_OUT будет срабатывать когда не надо (из-за обилия элементов). например при наведении на меню слева
__________________
я могу стать всем, если только захочу

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
судя по скрину никакого обилия объектов нет
Есть корневой скролл - его нужно отписать при наведении на дочерний и подписать при выходе из дочернего скролла
При этом события наведения/выхода нужно отслеживать только для двух объектов - родителя и ребенка
когда это самое "когда не надо"?
__________________
...вселенская грусть

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

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

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


 


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


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