PDA

Volledige versie bekijken : mc scroll met static text


Bzil
%Europe/Berlin %597 %2005, 15:20
Heb al een tijd terug het volgende script gevonden op deze site:

scrollspeed = 20;
easing = 4;
// stel de easing-snelheid in.....
achtergrond_balk._height = Mask._height-1;
knop_init = (Mask._height/tekst._height)*Mask._height;
if (knop_init<=Mask._height) {
// tekst is langer dan venster
knop._height = (Mask._height/tekst._height)*Mask._height;
} else {
// tekst is korter dan venster; geen scrollbalk
knop._height = 0;
achtergrond_balk._height = 0;
}
mouseListener = new Object();
mouseListener.onMouseWheel = function(delta) {
if (delta<0) {
knop._y = Math.min(knop._y -= delta*scrollspeed, (Mask._height-knop._height));
} else {
knop._y = Math.max(knop._y -= delta*scrollspeed, 0);
}
};
Mouse.addListener(mouseListener);
//
knop.onPress = function() {
startDrag(this, false, this._x, 0, this._x, Mask._height-this._height);
};
knop.onRelease = knop.onReleaseOutside=function () { stopDrag();};
tekst.onEnterFrame = function() {
scrollAmount = (this._height-(Mask._height))/(Mask._height-knop._height);
targY = -knop._y*scrollAmount;
this._y -= (this._y-targY)/easing;
};

Hiermee scroll ik een mc met easing.
Nu heb ik in die mc een pixelfont gebruikt die er in eerste instantie crisp uitziet. Als ik ga scrollen blijft ie niet altijd crisp.
Hoe zorg ik er voor dat ie altijd crisp blijft en dus niet op halve pixels kan stoppen?

theFlashWizard
%Europe/Berlin %620 %2005, 15:53
maak voor de _y positie een posY variabele, pas die steeds aan, rond die af, en maak dan pas de _y positie gelijk aan de posY variabele.

Laiverd
%Europe/Berlin %620 %2005, 15:53
tekst._x = Math.round(tekst._x);
tekst._y = Math.round(tekst._y);

theFlashWizard
%Europe/Berlin %621 %2005, 15:55
dat kan ook.. maar dat is altijd net iets meer CPU intensief..

Bzil
%Europe/Berlin %656 %2005, 16:44
thanks, heb laiverds oplossing gebruikt. Het gaat om een redelijk eenvoudig tekst vlak. Die cpu wordt niet echt belast. (niet dat ik merk iig)

Laiverd
%Europe/Berlin %779 %2005, 19:42
Het script wat ik postte natuurlijk pas gebruiken als de scroll stopt slimmo ;) Het heeft echt geen zin om tijdens het scrollen iedere keer af te gaan ronden.

John