Takže nejprve si musíte vytvořit MovieClip, který bude tvořit
obsah scrollovaného okna. Zde se fantazii meze nekladou (může
obsahovat prakticky cokoliv - i pohyblivou grafiku)
Tento MC vložte na plochu a pojmenujte jej (třeba "window")
Tomuto MC je nutné definovat následující příkazy:
onClipEvent (load) {
_root.nullpos = _y;
}
Tento zápis znamená, že po načtení se nastaví hodnota proměnné
nullpos jako Y souřadnice tohoto MC.
Posléze si v knihovně vytvořte 3 tlačítka (šipka nahoru resp. dolů a vlastní scroller)
Vytvořte další MovieClip, do kterého importujete instanci tlačítka scrolleru a celé to vložte na plochu a nazvěte třeba "scroller"
- Dále vložte na plochu instance šipek nahoru a dolů
Do prvního snímku animace nyní definujte tuto proměnnou:
length = 143;
Tato proměnná charakterizuje výšku scrollbaru (rozdíl mezi
horní a dolní pozicí v pixelech) Tuto hodnotu přizpůsobíte
velikosti vašeho okna.
Nyní vyberte instanci MC "scroller" a definujte jí tyto příkazy:
onClipEvent (load) {
_root.koeficient = _root.length/(_root.window._height - _root.length - 1.5*_height);
_root.top = _y;
_root.left = _x;
_root.right = _x;
_root.bottom = _y+_root.length;
}
onClipEvent (enterFrame) {
if (_root.dragging == true) {
_root.window._y = _root.nullpos - (_y - _root.top)/_root.koeficient;
}
}
Tento zápis znamená, že po načtení (load) se definuje hodnota
proměnné "koeficient" jako podíl výšky scrollbaru
(definovaná v prvním snímku) a výškou MC "window" od které je
odečtena ještě výška scrollbaru (lenght) a výška scrolleru
(instance "scroller")
Dále jsou definovány 4 proměnné (top, left, right a bottom), které poté
budou vymezovat pohyb scrolleru
Dále po události "EnterFrame" a pokud je proměnná dragging =
true vypočítána pozice posouvaného MC "window" jako
počáteční pozice posouvaného MC mínus vzdálenost scrolleru od
své maximální horní pozice (top) podělená koeficientem.
Nyní si v knihovně otevřete MC "scroller" a v něm umístěnému tlačítku
definujte tyto příkazy:
on (press) {
startDrag("_root.scroller", false, _root.left, _root.top, _root.right, _root.bottom);
_root.dragging = true;
}
on (release, releaseOutside) {
stopDrag();
_root.dragging = false;
}
Zde je napsáno, že po kliknutí na tlačítko začíná tažení
MC "window", které je však limitováno 4 rozměry (v našem případě
jsou místo nich proměnné left, right, bottom a top).
Dále se nastaví hodnota proměnné dragging jako pravda (true).
Po puštění tlačítka se tažení ukončí a dragging se nastaví
jako false.
Nakonec zprovozníme šipky nahoru a dolů. Horní šipce definujeme tyto
příkazy:
on (release, keyPress "<Up>") {
if (_root.scroller._y-10*_root.koeficient>_root.top) {
_root.scroller._y -= 10*_root.koeficient;
_root.window._y += 10;
} else {
_root.scroller._y = _root.top;
}
}
Toto znamená, že po kliknutí nebo po stisknutí šipky nahoru
se scroller posune o desetinásobek koeficientu nahoru a okno
se posune o deset pixelů dolů, ale pouze v případě, že by se tímto posunem
nedostal scroller mimo svou dráhu (nad pozici top).
Pokud ano zůstane scroller ve své horní pozici a šmitec.
Dolní šipka funguje přesně opačně:
on (release, keyPress "<Down>") {
if (_root.scroller._y+10*_root.koeficient<_root.bottom) {
_root.scroller._y += 10*_root.koeficient;
_root.window._y -= 10;
} else {
_root.scroller._y = _root.bottom;
}
}
Úplně nakonec ještě můžete dodělat design dráhy scrolleru a přidat
masku pro okno.