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.