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

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

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

Регистрация: Feb 2009
Сообщений: 74
Отправить сообщение для true11 с помощью ICQ
По умолчанию Самодельные выпадающие списки, их прокручивание средней кнопкой мыши

Нужно было сделать регистрацию на сайте в подгружаемом ролике, так как встроенные компоненты в подгружаемых роликах работают оч часто некорректно сделал несколько самодельных так называемых "select"-ов, все оч мило, но хотелось бы для удобства добавить фичу, чтобы при onRollOver-e если двигать колесиком, содержимое селекта тоже двигалось. Не могу найти где и как отлавливать колесико мыши((( гуру, выручайте((

P.S. Проблему почти решил, повезло-таки с поиском. Но опять же остаеца открытым вопрос, как именно при наведении на определенный мувик активировать определенную функцию прокрутки(вверх/вниз) (грубо говоря, куда совать onRollOver):

Код AS1/AS2:
mouseListener.onMouseWheel = function(wheel) {
if(wheel>0){
	trace("Вы крутите колесо вверх");
}else {
trace("Вы крутите колесо вниз");
}
}
Mouse.addListener(mouseListener);


Последний раз редактировалось true11; 12.08.2009 в 14:21.
Старый 12.08.2009, 14:51
KiL33 вне форума Посмотреть профиль Отправить личное сообщение для KiL33 Найти все сообщения от KiL33
  № 2  
Ответить с цитированием
KiL33
 
Аватар для KiL33

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
Код AS1/AS2:
mouse = new Object();
mouse.onMouseWheel = function(delta) {
	if (delta<0) {
		trace("0")
	}
	if (delta>0) {
		trace("1")
	}
};
Mouse.addListener(mouse);

Старый 12.08.2009, 14:57
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 3  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
KiL33, а зачем создавать бесполезный объект?

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

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
Если вы знаете другой способ покажите, в этом примере без объекта скролл работать не будет.

Добавлено через 20 минут
ГЫ
можно и так
Код AS1/AS2:
mouse = new Object();
mouse.onMouseWheel = function(wheel) {
	if (wheel<0) {
		trace("0")
	}
	if (wheel>0) {
		trace("1")
	}
};
Mouse.addListener(mouse);


Последний раз редактировалось KiL33; 12.08.2009 в 15:22.
Старый 12.08.2009, 15:37
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 5  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Автор, вот вам решение. Сколько есть объектов, сделайте это для каждого mc с учетом ваших операций вместо trace.
(Не забудьте щелкнуть где угодно во флешке, иначе onMouseWheel не станет работать).
Код AS1/AS2:
mc1.onRollOver = function  () {
	this.onMouseWheel = function(wheel) {
	   if (wheel < 0) {
		trace("0");
	   }
	   if (wheel > 0) {
		trace("1");
	   }
	};
	Mouse.addListener(this);
}
 
mc1.onRollOut = function  () {
	delete this.onMouseWheel;
	Mouse.removeListener(this);
}
В качестве слушателя событий мыши тут выступает сам mc.
При наведении на mc включается функция, которая ловит поворот колесика, а при уведении с mc
она удаляется.


Последний раз редактировалось mooncar; 12.08.2009 в 15:47.
Старый 12.08.2009, 15:39
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
KiL33, а this чем не угодил?

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

Регистрация: Feb 2009
Сообщений: 74
Отправить сообщение для true11 с помощью ICQ
Блин.. огромное спасибо всем, но возникла проблема в том что при заходе мышки на любой пункт селекта(это мувики с текстом и бэкграундом, реагирующие на полный спектр онролловеров и прочей кнопочной лабуды) теряется onRollOver для клипа прокрутки.. в отчаянии, смотрел как сделать рабочими кнопку под кнопкой, но тут решения не нашел... а если сделать свой компонент он будет работать в подгружаемых swf? как в таких случаях делают регистрацию с селектами?


Последний раз редактировалось true11; 13.08.2009 в 04:45.
Старый 13.08.2009, 06:26
KiL33 вне форума Посмотреть профиль Отправить личное сообщение для KiL33 Найти все сообщения от KiL33
  № 8  
Ответить с цитированием
KiL33
 
Аватар для KiL33

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
Цитата:
KiL33, а this чем не угодил?
хз..просто решил так написать и всё тут. Особо страшного в этом ничего не вижу.

Старый 13.08.2009, 10:25
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 9  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Вы вроде бы говорили, что у вас все самоделное...
Цитата:
Сообщение от true11 Посмотреть сообщение
как в таких случаях делают регистрацию с селектами?
вот эта фраза не очень понятна, но многие проблемы с потерей RollOver можно решить с помощью проверки hitTest.

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

Регистрация: Feb 2009
Сообщений: 74
Отправить сообщение для true11 с помощью ICQ
Мм.. выпадающие селекты - для выбора даты рождения. Мм вот попробовал сделать нечто, но попал на глюк.. фишка в том, что если навести на область 1й раз мышь, прокручивается с одной скоростью, а если раз тридцать навести-убрать, то скорость возрастает раз в 20..

Вот мой код для события wheel одного из объектов.. конченный немного, не судите пианиста, глаза слипаются и мозг не варит((

Код AS1/AS2:
	var mouseListener:Object = new Object();
	mouseListener.onMouseWheel = function(wh){
		if (wheel_days.hitTest(_root._xmouse, _root._ymouse)) {
		if(wh>0){if(scrollDays.begunok._y > 0){scrollDays.begunok._y = scrollDays.begunok._y-2;}else{scrollDays.begunok._y = 0;} }
		if(wh<0){if(scrollDays.begunok._y < 89){scrollDays.begunok._y = scrollDays.begunok._y+2;}else{scrollDays.begunok._y = 89;}}
		}
 
		if (wheel_month.hitTest(_root._xmouse, _root._ymouse)) {
		if(wh>0){if(scrollMonths.begunok._y > 0){scrollMonths.begunok._y = scrollMonths.begunok._y-2;}else{scrollMonths.begunok._y = 0;} }
		if(wh<0){if(scrollMonths.begunok._y < 89){scrollMonths.begunok._y = scrollMonths.begunok._y+2;}else{scrollMonths.begunok._y = 89;}}
		}
 
		if (wheel_year.hitTest(_root._xmouse, _root._ymouse)) {
		if(wh>0){if(scrollYears.begunok._y > 0){scrollYears.begunok._y = scrollYears.begunok._y-2;}else{scrollYears.begunok._y = 0;} }
		if(wh<0){if(scrollYears.begunok._y < 89){scrollYears.begunok._y = scrollYears.begunok._y+2;}else{scrollYears.begunok._y = 89;}}
		}
	}
 
	Mouse.addListener(mouseListener);
Вроде должно норм быть.. Не будет систему грузить добро это?


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

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

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


 


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


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