PDA

Volledige versie bekijken : scroll gaat telkens sneller


RolfDingerink
%Europe/Berlin %636 %2007, 16:16
een heel aantal mc's van een website die ik maak gebruiken het volgende script voor scroll..

nu gaat de scroll telkens als ik een nieuw item open steeds sneller.. net of de snelheid bij elkaar wordt opgeteld.
wie weet hoe ik dit kan oplossen?

import flash.geom.*;
import flash.filters.*;
txtHeight = bg._height-mc._y*2;
re = new Rectangle(0, 0, mc._width+5, txtHeight+3);
mc.scrollRect = re;

//

txt = mc.txt;
txt.speed = 0;
txt.filters = new Array(new BlurFilter(0, 0, 1));

//

obj = new Object();
Mouse.addListener(obj);
obj.onMouseWheel = function(v) {
if (txt._y != 0 || txt._y != -(txt._height-txtHeight)) {
txt.speed += v*3;
} else {
txt.speed = 0;
}
};

onEnterFrame = function () {
txt.speed *= .8;
txt._y += txt.speed;

//

if (txt._y>0) { txt._y = 0;
txt.speed = 0;
} else if (txt._y<=-(txt._height-txtHeight)) {
txt._y = -(txt._height-txtHeight);
txt.speed = 0;
}

//

if (txt._y == 0 || txt._y == -(txt._height-txtHeight)) {
temp = txt.filters[0];
temp.blurY -= (temp.blurY>0) ? 5 : 0;
txt.filters = new Array(temp);
} else { temp = txt.filters[0];
temp.blurY = Math.abs(txt.speed/2);
txt.filters = new Array(temp);
}
};

scrolling = function () {
var scrollHeight:Number = scrollTrack._height;
var contentHeight:Number = mc.txt._height;
var scrollFaceHeight:Number = scrollFace._height;
var maskHeight:Number = bg._height;
var initPosition:Number = scrollFace._y=scrollTrack._y;
var initContentPos:Number = mc.txt._y;
var finalContentPos:Number = maskHeight-contentHeight+initContentPos;
var left:Number = scrollTrack._x;
var top:Number = scrollTrack._y;
var right:Number = scrollTrack._x;
var bottom:Number = scrollTrack._height-scrollFaceHeight+scrollTrack._y;
var dy:Number = 0;
var speed:Number = 10;
var moveVal:Number = (contentHeight-maskHeight)/(scrollHeight-scrollFaceHeight);

scrollFace.onPress = function() {
var currPos:Number = this._y;
startDrag(this, false, left, top, right, bottom);
this.onMouseMove = function() {
dy = Math.abs(initPosition-this._y);
mc.txt._y = Math.round(dy*-1*moveVal+initContentPos);
};
};
scrollFace.onMouseUp = function() {
stopDrag();
delete this.onMouseMove;
};
btnUp.onPress = function() {
this.onEnterFrame = function() {
if (mc.txt._y+speed<bg._y) {
if (scrollFace._y<=top) {
scrollFace._y = top;
} else {
scrollFace._y -= speed/moveVal;
}
mc.txt._y += speed;
} else {
scrollFace._y = top;
mc.txt._y = bg._y;
delete this.onEnterFrame;
}
};
};
btnUp.onRelease = function() {
delete this.onEnterFrame;
};
btnUp.onDragOut = function() {
delete this.onEnterFrame;
};
btnUp.onRollOut = function() {
delete this.onEnterFrame;
};
btnDown.onPress = function() {
this.onEnterFrame = function() {
if (mc.txt._y-speed>finalContentPos) {
if (scrollFace._y>=bottom) {
scrollFace._y = bottom;
} else {
scrollFace._y += speed/moveVal;
}
mc.txt._y -= speed;
} else {
scrollFace._y = bottom;
mc.txt._y = finalContentPos;
delete this.onEnterFrame;
}
};
};
btnDown.onRelease = function() {
delete this.onEnterFrame;
};
btnDown.onDragOut = function() {
delete this.onEnterFrame;
};

if (contentHeight<maskHeight) {
scrollFace._visible = false;
btnUp.enabled = false;
btnDown.enabled = false;
} else {
scrollFace._visible = true;
btnUp.enabled = true;
btnDown.enabled = true;
}
};
scrolling();


http://www.aktieshirts.nl/test2

RolfDingerink
%Europe/Berlin %445 %2007, 11:41
niemand een idee?

Jan
%Europe/Berlin %534 %2007, 13:49
obj.onMouseWheel = function(v) {
txt.speed += v*3;
Normaal plaats je hier een eenvoudige code ivm txt._y (afhankelijk van twee voorwaarden:bovenkant en onderkant) en doe je verder niks aan de snelheid. Dus iets als: obj.onMouseWheel = function(v) {
txt._y+=v*3//puur als voorbeeld

onEnterFrame = function () {
txt.speed *= .8;
txt._y += txt.speed;

Dus bij elke scroll verhoog je de speed en tegelijkertijd verlaag je de snelheid via een onEnterFrame constant met 20%. En daarbovenop verhoog je de txt._y met deze voortdurend afnemende snelheid die wel toeneemt als je scrollt. Niet echt een combinatie waar ik aan uit kan. :S Dat script kan volgens mij een heel stuk korter met hetzelfde effect.

Groeten,
Jan

RolfDingerink
%Europe/Berlin %569 %2007, 14:40
[:(] [:(] het probleem is dat ik niet de kennis heb om het in te korten en ik al lang blij ben dat het scrollt, maar wat is nu precies de oplossing?

Mr. Black
%Europe/Berlin %601 %2007, 15:26
@Rolf: heb je dit script helemaal zelf gemaakt (en begrijp je het dus ook helemaal)? Want ik sluit me geheel bij adnez aan: meerendeel slaat nergens op. flash.geom en flash.filters importeren, een heleboel remove onEnterFrames... Dit kan veel simpeler. Kijk gewoon eens op het internet voor (eventueel) eerst wat basisscrolling, en daarna kan je een custom scroll maken die je toe kan passen op je site.

Succes! :)

RolfDingerink
%Europe/Berlin %608 %2007, 15:36
zoals in een vorige post ben ik meerdere malen op zoek geweest naar goede scripts voor scroll in combinatie met wheelmouse.. die zijn er weinig te vinden naar mijn mening, deze twee scripts heb ik gecombineerd en met veel vallen en op staan is het gelukt om het deels zo te krijgen als ik wil, ik begrijp de werking van actionscript alleen heb ik de kennis niet om het precies te ontcijferen .. dus is het ook een zeer grote opgave om dit aan te passen.

het is niet mogelijk binnen dit script wat aan te passen zodat het wel werkt? ondanks de vele overbodige stukjes? .. moet gewoon een simpele oplossing zijn.

alvast bedankt

en als er eventueel wat bekend is waar moet ik dan zoeken voor goede uitleg? ik ben al op het net aan het zoeken maar kan niet echt iets vinden waar ze er duidelijk op in gaan.. ik heb nooit uitleg in flash gehad en weet dus ook niet wat elke formule in een script bereikt..

RolfDingerink
%Europe/Berlin %505 %2007, 12:08
jammer dat er niet echt een oplossing duidelijk is..

RolfDingerink
%Europe/Berlin %687 %2007, 16:29
@ Adnez,

heb jouw oplossing toegepast en scroll werkt gelukkig nog steeds. maar hij blijft ook nog steeds versnellen dus ik denk dat dat ook niet de oplossing is.
bedankt voor je reactie..:)

@ MR. Black,

Nee het is niet mn eigen script. het is samen gevoegd van kirupa en een andere tutorialsite.. zelf aangepast en verandert.. vandaar de overbodige delen.. ik begrijp niet alles van het script.. gaat mijn petje te boven..


wie kan mij uit de brand helpen? ik zit er echt mee, wil het gewoon goed werkend zien te krijgen..

iemand?

Jan
%Europe/Berlin %748 %2007, 17:57
Hier het simpelst denkbare voorbeeld:
http://users.telenet.be/jansurf/scrollen/mousescroll2.html
http://users.telenet.be/jansurf/scrollen/mousescroll2.fla

Groeten,
Jan

RolfDingerink
%Europe/Berlin %575 %2007, 13:48
bedankt jan, daar kan ik weer mee verder, maar hoe combineer ik die dan met een scrollbutton?

Jan
%Europe/Berlin %626 %2007, 15:01
bedankt jan, daar kan ik weer mee verder, maar hoe combineer ik die dan met een scrollbutton?
scroll button met 1 stap per klik
http://users.telenet.be/jansurf/scrollen/mousescroll3.html

scrollbuttons met onRollOver/onRollOut
http://users.telenet.be/jansurf/scrollen/mousescroll4.html

scrollbuttons met onPress/onRelease
http://users.telenet.be/jansurf/scrollen/mousescroll5.html

(fla's zitten allemaal in dezelfde folder)


Groeten,
Jan

RolfDingerink
%Europe/Berlin %703 %2007, 16:53
mijn dank is zeer groot,

Jan
%Europe/Berlin %708 %2007, 16:59
Show me the money! :D 8D

link (http://66.102.9.104/search?q=cache:Iz-hRJsumgsJ:en.wikipedia.org/wiki/Jerry_Maguire+show+me+the+money&hl=nl&ct=clnk&cd=2&gl=be&client=firefox-a)

Jan

PS: De tekst(action script) op de stage in voorbeeld 4 en 5 kloppen niet met wat je ziet. Deze is nog van voorbeeld 3. Het actionscript zelf, in de fla klopt natuurlijk wel)

RolfDingerink
%Europe/Berlin %621 %2007, 14:54
ben wat aan het klussen geslagen met je fla's maar kom er nog niet helemaal uit :$,
als mijn mc nou groter is dan de achtergrond, hoe wordt dan het script? ga zelf ook nog even vogelen dus misschien krijg ik het zo wel voor elkaar...

Jan
%Europe/Berlin %652 %2007, 15:39
als mijn mc nou groter is dan de achtergrond, hoe wordt dan het script?
http://users.telenet.be/jansurf/scrollen/mousescroll6.html
http://users.telenet.be/jansurf/scrollen/mousescroll6.swf
http://users.telenet.be/jansurf/scrollen/mousescroll6.fla

Groeten,
Jan