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

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

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

Регистрация: Aug 2003
Сообщений: 204
По умолчанию как сделать скроллирование колесом мыши в моем скролле ?

У меня есть скроллинг, по нему собственно вопрос: как сделать скроллирование колесом мыши


выглядит он следующим образом:
мувиклип scroll, в нем скрипт


Код:
onClipEvent (load) {
	target = _parent.txt;
	mask = _parent.progmask;
	// К  - коэффициент насколько большим считать клип чем он есть для того, чтобы до конца проскролировать
	// (1<=K)
	K = 1;
	// Т - коэффициент тормознуости чем он больше тем инерционнее движение (1<= T <=30)
	T = 5;
}
внутри него 3 слоя:
в первом скрипт:

Код:
clipBounds = this.getBounds(this);
pressed = false;
targetY = target._y;
polsun._y = clipBounds.yMin+polsun._height/2;
deltaY = 0;
this.onEnterFrame = function() {
	function Calculation() {
		var scrollheight = (clipBounds.yMax-clipBounds.yMin)-polzun._height;
		var scrollposition = (polzun._y-polzun._height/2-clipBounds.yMin)/scrollheight;
		deltaY = (target._y-(targetY-scrollposition*(target._height*K-mask._height)))/T;
		target._y -= deltaY;
		updateAfterEvent();
	}
	if (pressed) {
		Calculation();
	} else {
		if (!pressed && roundTo(deltaY, 1) != 0) {
			Calculation();
		}
	}
};
this.polzun.onLoad = function() {
	X = _x;
};
this.polzun.onPress = function() {
	startDrag(this, false, this.X, clipBounds.yMin+this._height/2, this.X, clipBounds.yMax-this._height/2);
	pressed = true;
};
this.polzun.onRelease = function() {
	stopDrag();
	pressed = false;
};
this.polzun.onReleaseOutside = function() {
	stopDrag();
	pressed = false;
};
function roundTo(theNumber, decPlaces) {
	if (decPlaces>=0) {
		var temp = Math.pow(10, decPlaces);
		return Math.round(theNumber*temp)/temp;
	}
}
во втором сам скроллинг который тягать надо с именем polzun

в третьем собственно полоска по которой ездит скролл с именем polosa
кроме этого имеются в руте ещё 2 слоя, в одном маска под которой ездит контент с именем progmask и сам мувик с контентом под маской с именем txt

Описал всё детально как только мог... очень нужна помощь, заранее ОГРОМНОЕ спасибо.

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

з.з.ы. надеюсь на этот раз я правильно написал тему и она отражает чётко суть вопроса и Уважаемый модератор не закроет тему на этот раз...

Старый 06.05.2008, 20:04
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
onMouseWheel, Mouse.addListener

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

Регистрация: Aug 2003
Сообщений: 204
эм... никогда такое не делал, не доводилось, помоги пожалуйста, покажи как мой код должен выглядеть чтоб работало

Старый 06.05.2008, 20:09
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Читайте:

http://livedocs.adobe.com/flash/9.0/main/00001887.html

Как должен выглядеть — вам виднее.

Старый 06.05.2008, 20:14
DJ_Baton вне форума Посмотреть профиль Отправить личное сообщение для DJ_Baton Найти все сообщения от DJ_Baton
  № 5  
DJ_Baton

Регистрация: Aug 2003
Сообщений: 204
просто у меня редкий геморрой получается, я пишу в руте:
Код:
var mouseListener:Object = new Object();
mouseListener.onMouseWheel = function(delta) {
	_root.scroll.polzun._y += delta;
};
Mouse.addListener(mouseListener);
оно тупо по оси Y гоняет мой скроллинг при том не ограничивая его лимитами по высоте но на сам скроллируемый текст оно никак не влияет
или я должен привяызать функцию и к ползунку и к тексту который он скроллирует, высчитать ещё соотношение между ними, прописать для всех ограничение и ещё чтоб после этих манипуляций при тягании ползунка мышей не было ошибок... много напрягов сильно получается


Последний раз редактировалось DJ_Baton; 06.05.2008 в 20:18.
Старый 06.05.2008, 22:19
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
etc
Et cetera
 
Аватар для etc

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

Старый 07.05.2008, 07:01
DJ_Baton вне форума Посмотреть профиль Отправить личное сообщение для DJ_Baton Найти все сообщения от DJ_Baton
  № 7  
DJ_Baton

Регистрация: Aug 2003
Сообщений: 204
я хотел увидеть рациональное решение проблемы, а не заниматься геморроем
давать ссылку на доки по флэшу равносильно как ищущему что-то конкретное дать ссылку на яндекс ))
мне например не сложно помочь человеку подробным ответом если я знаю решение его проблемы...
посему всё ещё надеюсь увидеть вариант скрипта что бы прикрутить функцию только к скроллбару, а остальное работало на автомате будто его тягают мышой, вопрос довольно актуальный и при решении его думаю будет полезен многим...
Если надо могу выложить исходник

Если поможите помогу исправить один нехороший баг на форуме FLASHER.ru


Последний раз редактировалось DJ_Baton; 07.05.2008 в 09:19.
Старый 07.05.2008, 09:53
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 8  
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Я не собираюсь писать код за человека, который не хочется учиться и открыто об этом говорит, требуя «рациональное» решение в виде конечного кода на блюдечке с каемочкой.
Готового кода здесь не будет, это ваш скролл, со своими замутами, я вам дал ссылку на схему работы с колесом мыши во Flash, вам надо было сказать спасибо, прочитать статью и написать необходимый код под свой скролл, попутно научившись работать с этим самым колесом мыши, вместо того, чтобы ворчать на «неправильные» ответы.

Тема закрыта.


Последний раз редактировалось etc; 07.05.2008 в 09:55.
Создать новую тему Закрытая тема Часовой пояс GMT +4, время: 09:00.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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