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




 
 
SEGÉDLETEK ActionScript alapok

Előtöltés - mozi preloader százalék és Kbyte kijelzéssel
  feltöltve: 2003.10.27 | szerző: Ducky | olvasva: 27783 alkalommal

 
 

Örök kérdés a fórumtémákban a mozi előtöltése, a preloader. Ebben a segédletben a teljes mozi előtöltését tanuljuk meg, mégpedig százalék és Kbyte kijelzéssel.

1. LÉPÉS: Készítsünk egy új mozit és hozzunk létre 2 réteget a fő idősíkon, 'action' és 'preloader' névvel.
Az 'action' réteg első és második frame-jére tegyünk egy-egy stop(); -ot.

A 'preloader' réteg első frame-jén lesz majd a preloader moziklipünk, a másodikon pedig a tartalom, mondjuk valami kép 50-100Kb os méretben, hogy tesztelhessük később a munkánkat.

2. LÉPÉS: Készítsünk egy új moziklipet, intance neve legyen 'prd_mc'. A moziklip idősíkján három rétegre lesz szükségünk, 'text', 'keret' és 'csik':

3. LÉPÉS: A 'text' rétegre kerülnek az előtöltésnél használt feliratok, 'PERCENT', 'TOTAL' és 'LOADED', valamint ezek alatt 3 dinamikus szövegmező, melyeknek instance nevei balról jobbra: 'percent', 'total' és 'loaded'.

4. LÉPÉS: Készítsük el az előtöltés csíkot. Hozzunk létre egy új moziklipet, melynek tartalma az alábbihoz hasonló csík. Instance neve legyen ' ldb_mc' és helyezzük valahova a feliratok alá.

Az ldb_mc ben található grafika (csík) elhelyezése fontos. Ügyeljünk arra, hogy a pozitív tengelyen helyezkedjen el a középponthoz viszonyítva. Ha nem így tesszük akkor a növekedése fordított lesz vagy kétirányú.

5. LÉPÉS: A 'keret' rétegre az előtöltő csíknak készítünk egy keretet, hogy látsszon mennyi van még hátra. Tehát a végeredmény valami ilyesmi lehet. Persze a csík helyett használhatunk bármi egyéb, sokkal ötletesebb kijelzést is:

Készen is lennénk a grafikai résszel, jöhet az ActionScript. Térjünk vissza a fő idősíkra!

6. LÉPÉS: Jelöljük ki a 'prd_mc' moziklipet, majd nyissuk meg az Actions palettát és másoljuk be a következő ActionScript kódot:

onClipEvent (enterFrame) {
     status = _root.getBytesLoaded()/_root.getBytesTotal()*100;
     ldb_mc._xscale = status;
     percent.text = int(status)+" %";
     total.text = Math.round(_root.getBytesTotal()/1024*100)/100+" Kb";
     loaded.text = Math.round(_root.getBytesLoaded()/1024*100)/100+" Kb";
     if (status == 100) {
          _root.gotoAndStop(2);
     }
}

Ezzel a végére is értünk. Teszteljük a mozit a Ctrl+Enter kétszeri lenyomásával és máris láthatjuk a szépen működő előtöltés csíkot és a kijelzett százalék és Kbyte értékeket.

Végezetül jöjjön egy kis magyarázat, hogy értsük is meg mi történik itt!

status = _root.getBytesLoaded()/_root.getBytesTotal()*100;
A status változóban tároljuk a letöltés aktuális állapotát. A _root.getBytesLoaded értéke egyenlő a mozi pillanatnyilag már letöltött byte értékével. A _root.getBytesTotal értéke pedig a moziklip teljes byte mérete. Mindkettő beépített paraméter a Flash MX-ben.

ldb_mc._xscale = status;
Az 'ldb_mc', vagyis az előtöltés csík moziklip _xscale értéke követi a status változó értékét, tehát így fog folyamatosan növekedni a csík, ahogy a moziklip töltődik.

percent.text = int(status)+" %";
A 'percent' dinamikus szövemezőbe kiírjuk a status értéket és egy százalék jelet is teszünk a végére.

total.text = Math.round(_root.getBytesTotal()/1024*100)/100+" Kb";
A 'total' dinamikus szövemezőbe kiiírjuk a moziklip teljes méretét byte-okról Kbyte-ra alakítva

loaded.text = Math.round(_root.getBytesLoaded()/1024*100)/100+" Kb";
A 'loaded' dinamikus szövemezőbe kiiírjuk a pillanatnyilag letöltött byte értéket

     if (status == 100) {
          _root.gotoAndStop(2);
     }
Ha a letöltés eléri a 100%-ot akkor ugrás a második frame-re

A Kbyte értékeket kiírathatjuk egész számként is, akkor a /100*100 rész nem kell, pl.:
total.text = Math.round(_root.getBytesTotal()/1024)+" Kb";
Természetesen ha a második frame-től egy animáció van és nem egy kép akkor az utasítás nem gotoAndStop(2) hanem gotoAndPlay(2) lesz.

Ezzel végére is értünk a segédletnek. Ha érdekel a külső JPEG képek beolvasása és előtöltése akkor
olvasd el ezt is...

 
 
 
 

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