PDA

Volledige versie bekijken : tekst gaat er niet volledig op met scroll


cr33mers
%Europe/Berlin %904 %2008, 22:42
Hoi

Ik heb deze tutorial gebruikt:
link (http://www.kirupa.com/developer/flash8/scrollbar.htm)

Nu heb ik het toegepast op mijn eigen site, maar tot mijn verbazing scrollt de scroller niet ver genoeg. Redelijk vervelend aangezien in het voorbeeld de tekst langer is dan mijn tekst eigenlijk is.

De Code is de volgende:

scrolling = function () {
var scrollHeight:Number = scrollbg._height;
var contentHeight:Number = contentMain._height;
var draggerHeight:Number = dragger._height;
var maskHeight:Number = maskedView._height;
//
var initPosition:Number = dragger._y=scrollbg._y; var initContentPos:Number = contentMain._y;
var finalContentPos:Number = maskHeight-contentHeight+initContentPos;
//
var left:Number = scrollbg._x;
var top:Number = scrollbg._y;
var right:Number = scrollbg._x;
var bottom:Number = scrollbg._height-draggerHeight+scrollbg._y;
//
var dy:Number = 0;
var speed:Number = 10;
var moveVal:Number = (contentHeight-maskHeight)/(scrollHeight-draggerHeight);
//
dragger.onPress = function() {
var currPos:Number = this._y;
startDrag(this, false, left, top, right, bottom);
this.onMouseMove = function() {
dy = Math.abs(initPosition-this._y);
contentMain._y = Math.round(dy*-1*moveVal+initContentPos);
};
};
dragger.onMouseUp = function() {
stopDrag();
delete this.onMouseMove;
};
btnUp.onPress = function() {
this.onEnterFrame = function() {
if (contentMain._y + speed < maskedView._y) {
trace(dragger._y + " " + top);
if (dragger._y <= top) {
dragger._y = top;
contentMain._y += speed;
} else {
contentMain._y += speed;
dragger._y -= speed / moveVal;
}
} else {
dragger._y = top;
contentMain._y = maskedView._y;
delete this.onEnterFrame;
}
};
};
btnUp.onDragOut = function() {
delete this.onEnterFrame;
};
btnUp.onMouseOut = function() {
delete this.onEnterFrame;
};
btnDown.onPress = function() {
this.onEnterFrame = function() {
if (contentMain._y - speed >finalContentPos) {
if (dragger._y>=bottom) {
contentMain._y -= speed;
dragger._y = bottom;
} else {
contentMain._y -= speed;
dragger._y += speed/moveVal;
}
} else {
dragger._y = bottom;
contentMain._y = finalContentPos;
delete this.onEnterFrame;
}
};
};
btnDown.onRelease = function() {
delete this.onEnterFrame;
};
btnDown.onDragOut = function() {
delete this.onEnterFrame;
};
};
scrolling();

Sushi
%Europe/Berlin %421 %2008, 11:07
moeilijk te zien, zet je script is tussen [as]script[ /as]

digitalecartoons
%Europe/Berlin %446 %2008, 11:42
Heb je die 'contentMain' clip ook uitgelijnd tot de bovenkant van de stage/mask? Als je bijvoorbeeld het voorbeeld van Kirupa pakt en in de contentMain clip het Kirupa logo bovenaan verwijderd en de rest op hun plek laat staan, dan zal hij niet volledig naar beneden schuiven. Check even of de contentMain clip precies bovenaan de stage begint.

cr33mers
%Europe/Berlin %480 %2008, 12:32
neen, mijn contentMain begint niet precies bovenaan de stage. Zelfde geld voor de slider die op gelijke hoogte begint als de mask en de contentMain

cr33mers
%Europe/Berlin %687 %2008, 17:30
weet er iemand hoe ik de action script dan moet aanpassen?

digitalecartoons
%Europe/Berlin %754 %2008, 19:06
neen, mijn contentMain begint niet precies bovenaan de stage.
Bedoelde eigenlijk dat hij geplaatst is op _y=0 van bijvoorbeeld een hoofdmovieclip. Als je alles bijvoorbeeld in een aparte movieclip hebt geplaatst dan zou contentMain._y zich op y=0 van die movieclip moeten bevinden.

Als ik b.v. wil checken dat contentMain._y niet verder dan y=50 mag schuiven (in het coordinatenstelsel van de hoofdmovieclip, dus niet van de stage), dan zou de clip op y=0 moeten staan. Of anders, als die clip b.v. op y=20 staat, dan moet de test op contentMain._y aangepast worden. Dat je dan b.v. kijkt of contentMain.Y >= 50 + 20. De hoofdmovieclip hoeft dan niet bovenaan de stage van de site te staan. Als de contentMain clip in die hoofdmovieclip zich maar op y=0 van de hoofdmovieclip bevind. Ben ik een beetje duidelijk?

cr33mers
%Europe/Berlin %795 %2008, 20:05
OK! heb gedaan wat je zei. De contentMain staat nu (in de movieclip) op y=0 . Hij stond op Y=180. Nu is het probleem dat de tekst te ver naar boven gaat :D , en dat de slider (balkje) niet meer beweegt. Scrollen kan nu enkel via de up en down buttons.

Enige raad?

BEDANKT alvast !

digitalecartoons
%Europe/Berlin %836 %2008, 21:04
De y coordinaten van de diverse clips zullen waarschijnlijk wat afwijkend staan ten opzichte van het Kirupa voorbeeld. Daar staan bijvoorbeeld:
maskedView y=0
contentMain y=0
Je zou even moeten checken of de diverse clips qua afstand hetzelfde ten opzichte van elkaar staan als die in het Kirupa voorbeeld.
Ook zou ik mij voor kunnen stellen dat je bij het converteren van iets naar een movieclip het registratiepunt centraal hebt laten staan in plaats van linksboven.
Post anders even een fla die enkel dit gehele movieclip deel bevat (hoef je je site niet te posten), dan kunnen we het beter bekijken. En als je even je code in je eerste post tussen 'AS' tags wilt zetten? Dat leest wat makkelijker.

cr33mers
%Europe/Berlin %914 %2008, 22:56
nu heb ik alles op 0 gezet, maar nu werkt hij weer niet meer volledig. Gek ding..

hier is de .fla

fla (http://www.cr33mers.be/scroll.fla)

digitalecartoons
%Europe/Berlin %917 %2008, 23:01
Zou je 'm eens als Flash 8 op kunnen slaan? (heb nog geen cs3)

cr33mers
%Europe/Berlin %309 %2008, 08:25
done

digitalecartoons
%Europe/Berlin %453 %2008, 11:53
Bijgaand aangepast. Je had de clips in de actionscript andere namen gegeven dan de instancenamen van de clips. Die hadden nog de oorspronkelijke namen zoals in het Kirupa voorbeeld, maar het schuivertje had je in de code bijvoorbeeld 'dragger' genoemd.

cr33mers
%Europe/Berlin %416 %2008, 11:00
ah, dus als ik nu bv andere tekst in voeg, dan werkt hij nog steeds?

Is er nu ook een manier om die fla aan te passen zodat ik alleen dat blokje zie, en daarmee kan schuiven?


BEDANKT ALVAST

digitalecartoons
%Europe/Berlin %425 %2008, 11:12
Ja, door de up/down buttons op de stage te verwijderen, de btnUp/btnDown delen in de actionscript (onderaan) te deleten en de buttonup/buttondown items in de library weg te halen.