Scrollen ist nich ganz das einfachste, was man mit Flash lösen kann, aber ich versuch´s mal zu erklären.
Ich geh mal davon aus das du vertikal scrollen willst.
Letzendlich hast du ja die Höhe deines zu scrollenden MCs.
Dann hast du die Höhe von dem Sichtbaren bereich.
Wenn die Höhe des Mcs kleiner ist als die des sichtbaren Bereiches, hast du keine Probleme, ansonsten muss gescrollt werden.
In der Regel kommt dann ein Scrollbalken hinzu, den du mit dem Befehl startDrag () hin und her bzw, in diesem Fall nur rauf und runter draggen kannst.
startDrag erwartet einige Parameter die eingrenzen in welchem Bereich gedraggt werden darf.
Bei meinen Scrollbalken sieht das in der Regel dann so aus:
dragger.startDrag ( false, 0, 0, 0, possible_scroll )
Die Hilfe (F1) sagt dazu folgendes:
"mein_mc.startDrag([einrasten, [links, oben, rechts, unten]])"
Einrasten führt dazu das auch wenn man nur eine Ecke des Scrollbalken erwischt, er zentriert unter der Maus hängt, aber er soll ja da bleiben wo er ist, insofern sollte da ein false sein.
Die drei Nullen machen nur Sinn wenn der MovieClip auf der Postion x:0, y:0 liegt,
in der Variabel possible_scroll steht bei mir wie weit nach unten gescrollt werden darf.
Das hängt z.b. von der Höhe des Scrollbalken ab.
Zu dem Befehl startDrag gehört auch der Befehl stopDrag, da der Balken sonst für immer an der Maus hängt.
Überlicherweise sieht das dann so aus:
PHP:
dragger.onPress = function ()
{
this.startDrag ( false, 0, 0, 0, possible_scroll )
}
dragger.onRelease = function ()
{
stopDrag();
}
Ich arbeite bei Scrollbalken gerne mit Prozenten, d.h. ich errechne mir die Prozentzahl der Position des Scrollbalkens (oben 0% unten 100% dazwischen dann entsprechent),
dann erechne ich mir den Maximalen weg den der zu scrollende Mc bewegt werden darf und setzte ihn auf die gleiche Prozentzahl seines Maximalen Weges.
(Es sind bei mir zwar keine echten Prozente da sie nur von 0-1 gehen, aber das ist denke ich gerade nebensächlich... )
Das ganze könnte dann z.B. so aussehen:
PHP:
dragger.onPress = function ()
{
doDrag ()
}
dragger.onRelease = function ()
{
doStopDrag()
}
dragger.onReleaseOutside = function ()
{
doStopDrag()
}
function doDrag ()
// Scrollfunktion während onPress auf Dragger
{
dragger.startDrag ( false, 0, 0, 0, possible_scroll )
dragger.onEnterFrame = function ()
{
var percent = ( dragger._y / possible_scroll )
obi._y = 0 - ( dif * percent )
}
}
function doStopDrag()
// Ende Scrollfunktion bei OnRelease
{
dragger.stopDrag()
delete dragger.onEnterFrame
}
Wobei obi der zu scrollende MC ist, dif die Differenz zwischen der Höhe des zu Scrollenden Mcs und die des Sichtbaren Bereiches.
Ich hab mal ein einfaches Beispiel als Fla angehängt.
Da fehlen dann natürlich noch so Sachen wie Mausradunterstützung, einen Klickbaren Hintergrund des Scrollbalkens, sanfte Bewegungen, etc.
Aber vom Prinzip her ist das eine Lösung.