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


 
 
SEGÉDLETEK ActionScript

Dinamikus Flash képgaléria - mérethez igazodó felület
  feltöltve: 2003.10.25 | szerző: kiskp | olvasva: 20887 alkalommal

   
 

3. réteg - mask

Egyetlen mc található ezen is (wipeMask). Ez az img nevű rétegünk mask rétege (1. kép). Egy 1*30 pixel-es téglalap, a következő scripttel:

onClipEvent (load) {
     sp=0.7;
     fr=0.1;
}

onClipEvent (enterFrame) {
//méret és pozició megegyezik a wipe nevű mc méretével és poziciójával, magyarul ahhoz igazítjuk a maszkolást
     this._x = _parent.wipe._x+(_parent.wipe._width);
     this._y = _parent.wipe._y;
     this._height = _parent.wipe._height;
     this._width = _parent.bgr._width-_parent.wipe._width;
}

4. réteg - wipe

Ugyanaz az mc található meg rajta mint a maszk rétegen (instance neve: wipe), de a következő scripttel:

onClipEvent (load) {
     sp=0.7;
     fr=0.1;
}

onClipEvent (enterFrame) {

     
//ennek a mérete és poziciója, pedig egyezik a háttérével
     this._x = _parent.bgr._x-(_parent.bgr._width/2);
     this._y = _parent.bgr._y-(_parent.bgr._height/2);
     this._height = _parent.bgr._height;
     
     //ha betöltődött a kép és engedélyeztük a méretezést is
     if (_parent.imgLoaded && _parent.reSize) {
          this._x = _parent.bgr._x-(_parent.bgr._width/2);
          this._y = _parent.bgr._y-(_parent.bgr._height/2);
          this._width = _parent.bgr._width;
          this._height = _parent.bgr._height;
     }

     //csillapítás wipeIn (maszkolás vége) esetén
     wd=_parent.bgr._width-this._width;
     wrate=(wrate+(wd/sp))*fr;

     //csillapítás wipeOut (maszkolás kezdete) esetén
     rwd = 1-this._width;
     rwrate = (rwrate+(rwd/sp))*fr;

     //ha a kép "beúsztatása" folyik
     if (_parent.wipeIn) {
          this._width +=wrate;
     }
     //ha már "kiúsztatjuk" a képet
     if (_parent.wipeOut) {
          this._width +=rwrate;
     }
     //engedélyezzük a kép ki/be-úsztatását, attól függöen, hogy a wipe mérete, megeggyezik-e már a      betöltött kép méretével. Itt persze, nem a tényleges képre hivatkozunk, hanem a háttérre, ami      közvetlen a kép méreteiből szedi a szükséges információkat.
     if (Math.round(this._width) > Math.round(_parent.bgr._width)-2) {
          _parent.wipeIn = false;
     }
     if (Math.round(this._width) <= 1) {
          _parent.imgLoaded = false;
          _parent.wipeOut = false;
     }
}

5 - 6. réteg - actions & labels

A cimkék alatt a követekző action-ök rejtőznek (1. kép):

frame 1. wipeIn
stop();

frame 2.

stop();
trace(">------[ S T A R T ]-------");
trace("init engine to view: "+loadThis);
trace(" wipeIn");
this.onEnterFrame = function () {
     if (!wipeIn) {
     gotoAndStop("loadIMG")
     }
}

frame 7. loadIMG

stop();
_blank.loadMovie("./images/"+loadThis+".jpg");

this.onEnterFrame = function () {
     //egy egyszerű előtöltés
     percent = int(_blank.getBytesLoaded()/_blank.getBytesTotal()*100);
     if (percent == "100" and !wipeIn) {
          _blank._visible = true;
          imgLoaded = true;
          gotoAndStop("reSize");
     } else {
          stop();
     }
}

frame 14. reSize

stop();
reSize = true;
this.onEnterFrame = function () {
     if (wipeOut) {
          gotoAndStop("wipeOut")
     }
}


frame 20. wipeOut
stop();
reSize = false;

Nagyjából ennyi. Mivel nem tervezett segédletről van szó (egy hirtelen ötlettől vezérelve született meg), talán nem igazán értehtőek bizonyos részek, így ha bármi gondotok van itt a fórumban vagy e-mail-ben kérdezzetek bátran! Hajrá!

 
   
 
 

© 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 >>> : .. .