PDA

Просмотр полной версии : как сделать скроллирование колесом мыши в моем скролле ?


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


выглядит он следующим образом:
мувиклип 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

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

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

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

etc
06.05.2008, 20:04
onMouseWheel, Mouse.addListener

DJ_Baton
06.05.2008, 20:08
эм... никогда такое не делал, не доводилось, помоги пожалуйста, покажи как мой код должен выглядеть чтоб работало

etc
06.05.2008, 20:09
Читайте:

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

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

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

etc
06.05.2008, 22:19
А кому сейчас легко? :D
Или вы предлагаете этим геморроем заняться другим? Судя по всему, так и хотели.

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

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

etc
07.05.2008, 09:53
Я не собираюсь писать код за человека, который не хочется учиться и открыто об этом говорит, требуя «рациональное» решение в виде конечного кода на блюдечке с каемочкой.
Готового кода здесь не будет, это ваш скролл, со своими замутами, я вам дал ссылку на схему работы с колесом мыши во Flash, вам надо было сказать спасибо, прочитать статью и написать необходимый код под свой скролл, попутно научившись работать с этим самым колесом мыши, вместо того, чтобы ворчать на «неправильные» ответы.

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