. .. : Swf.hu 1.0 archívum : Swf.hu főoldal >>> : .. .


 
 
SEGÉDLETEK Navigáció, Scroll

Statikus szöveg és moziklip scroll megoldások - 2.rész
  feltöltve: 2003.12.30 | szerző: Ducky | olvasva: 18368 alkalommal

       
 

Betöltött mozik scrollozása

A megoldás itt is ugyanaz lesz, de a scroll alkalmazásoknak nem kell szerepelnie a színpadon. A meglévő mozit folytathatjuk, a scene-ről töröljük ki a két scroll mc-t (yscroll_mc, xscroll_mc). A scrollbar-ok csak akkor fognak megjelenni, ha szükség van rájuk, azaz a betöltött mozit scrollozni kell. A library-ból fogjuk őket megjeleníteni.

Nyissuk meg a library-t (F11). Válasszuk ki az xscroll_mc-t, majd a legördülő menüben kattintsunk a Linkage menüpontra. A lenti képen látható módon jelöljük be az 'Export for Actionscript'-et, identifier-nek adjuk meg az mc library-ban szereplő nevét.

Írjuk be a következő kódsort. A felső képen látható módon tegyünk a maszk fölé négy gombot, ezek fogják majd betölteni a képeket. A betöltéshez tartozik egy preloader is, erre nem térünk ki, van rá két segédlet is. A preloader mc-t tegyük felülre, az action layer alá egy új rétegre. Instance neve legyen: preload_mc. A letölthető források között statscr7.fla néven szerepel ez a rész, ott meg lehet nézni az elrendezést. A fő timeline action layerén jelöljük ki a frame-et, és nyissuk meg az action palettát.

_root.preload_mc._visible = 0;
lxpos = kep_mc._x;
lypos = kep_mc._y;

A preloadert eltüntetjük, majd ha szükség lesz rá a betöltéskor, akkor megjelenik. Változókban rögzítjük, a kep_mc x-y pozícióját. Ez azért kell, mert minden újratöltéskor ezt az alap pozíciót állítjuk vissza.

function imgload(nev) {
removeMovieClip("_root.xscroll_mc");
removeMovieClip("_root.yscroll_mc");
kep_mc._x = lxpos;
kep_mc._y = lypos;
kep_mc.unloadMovie();
preload_mc._visible = 1;
kep_mc.loadMovie(nev);

Innentől az imgload() függvény fog végig szerepelni. Előbb töröljük a scrollbar-okat a színpadról. Mivel minden betöltéskor ezt a függvényt használjuk, azért kell a scrollbar törlése, mert a következő képhez nem biztos, hogy kell scroll. Ezután a kep_mc-t visszaállítjuk a kezdeti pozíciójába, majd a tartalmát - ha van - unload-oljuk. Megjelenítjük a preloader_mc-t és elindítjuk a kép betöltését. A nev változóban fogjuk megkapni az aktuális kép nevét, a gomboktól.

preload_mc.onEnterFrame = function() {
prc = kep_mc.getBytesLoaded()/kep_mc.getBytesTotal()*100;
this.loadbar_mc._xscale = prc;
this.perc = int(prc)+" %";
if (prc == 100) {
delete this.onEnterFrame;
this._visible = 0;
if (_root.kep_mc._width>_root.mask_mc._width) {
_root.attachMovie("xscroll_mc", "xscroll_mc", 100);
xscroll_mc._x = Math.round(_root.mask_mc._x);
xscroll_mc._y = Math.round(_root.mask_mc._y+_root.mask_mc._height)+2;
}
if (_root.kep_mc._height>_root.mask_mc._height) {
_root.attachMovie("yscroll_mc", "yscroll_mc", 101);
yscroll_mc._x = Math.round(_root.mask_mc._x+_root.mask_mc._width)+2;
yscroll_mc._y = Math.round(_root.mask_mc._y);
}
}
};
}
stop();

Innen már mindenkinek ismerős, aki a preloader segédleteket olvasta, vagy ismeri az eljárást. Figyelemmel kísérjük a betöltést, és ha megtörtént, levizsgáljuk a kep_mc szélességét és magasságát. Ha bármelyik szükségessé teszi, akkor az attachMovie() utasítással megjelenítjük a megfelelő scrollbart, majd átadjuk a működéséhez szükséges paramétereket. Nézzük meg az egyik gombot, ami a betöltést kezeli:

on (release) {
imgload("loadk1.jpg");
}

Mint az látható, a gombok meghívják a fent megírt függvényt és átadják neki a kép nevét. Ezzel be is fejeztük a második részt. Remélhetőleg aki figyelmesen átrágta magát a forrásokon és a segédleteken is, az kapott egy átfogó képet az eljárás lényegéről. Mindenkinek sok sikert a használatához.

 
       
 
 

© Devnet.hu. A segédletek semmilyen formában nem másolhatók, publikálhatók a Devnet.hu és a szerzők közös írásos engedélye nélkül.
 
. .. : Swf.hu 1.0 archívum : Swf.hu főoldal >>> : .. .