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




 
 
SEGÉDLETEK ActionScript

A MovieClipLoader osztály ismertetése
  feltöltve: 2005.10.23 | szerző: Giruna | olvasva: 11025 alkalommal

   
 

A MovieClipLoader osztály segítségével egy külső SWF vagy JPEG fájl (Flash 8-tól kezdve pedig, akár GIF vagy PNG) betöltődését kisérhetjük figyelemmel, hasonlóan mint bármilyen onEnterFrame-es előtöltővel. Mégis amiért foglalkolkozunk ezzel az osztállyal, annak az az oka, hogy jópár - a MovieClipLoader osztályhoz rendelt figyelőhöz kapcsolható - beépített eseménykezelővel rendelkezik. Ezek közül is leginkább az onLoadError eseménykezelőt emelném ki, amellyel a betöltés során fellépő hiba természete állapítható meg.

A MovieClipLoader csak Flash MX 2004-től és 7 player-től kezdve használható. A forrásfájlok Flash MX 2004-gyel készültek.


Gyorsan nézzünk is rá egy működő példát





Az egész mozi egy frame-ből és 6 layer-ből áll, egy layer az ActionScript-eké, a többi pedig a különböző grafikáké és szimbólumoké.
A layereken tartalma, fentről lefelé:

  • statikus szövegmezők
  • egy dinamikus szövegmező (output_txt, amibe a visszajelzéseket, eseményeket íratjuk ki)
  • gombok, amik hatására indul el/nem indul el a betöltés
  • a preloader (ami egy vízszintes csík - preloader_mc - amely a betöltés állapotától függően változtatja a szélességét és egy dinamikus szövegmező - preloader_txt - amiben a betöltődés állapota jelenik meg százalékosan)
  • a háttér, ami egy szimpla, mozi méretü shape




Az ActionScript:
//A preloader részei ne látszódjanak
preloader_mc._visible = preloader_txt._visible = false;
// MovieClipLoader osztály my_mcl nevü példányát hozzuk létre
var my_mcl:MovieClipLoader = new MovieClipLoader();
// A figyelő létrehozása
var myListener:Object = new Object();
// Az addListener()-rel regisztráljuk a függvényeket tartalmazó objektumot az eseménykezelésekhez
my_mcl.addListener(myListener);
//
// A figyelőhöz társított eseménykezelők
//
// A betöltés megkezdődik
myListener.onLoadStart = function(target_mc:MovieClip) {
   preloader_mc._visible = preloader_txt._visible = true;
   echo(":: onLoadStart esemény ::\nA betöltés elkezdődött a "+target_mc+" nevü MovieClip-be.\n");
};
// A betöltődés folyamatos figyelése
myListener.onLoadProgress = function(target_mc:MovieClip, loadedBytes:Number,totalBytes:Number) {
   percent = Math.floor((loadedBytes/totalBytes)*100);
   preloader_txt.text = percent+" %";
   preloader_mc._width = 2*percent;
};
// A fájl sikeres betöltődött
myListener.onLoadComplete = function(target_mc:MovieClip) {
   echo(":: onLoadComplete esemény ::\nA betöltés befejeződött a "+target_mc+" nevü MovieClip-be.");
   var loadProgress:Object = my_mcl.getProgress(target_mc);
   echo(loadProgress.bytesLoaded+" = bájt töltődött be");
   echo(loadProgress.bytesTotal+" = bájtból.\n");
};
// A tartalom teljesen betöltődött és inicializálódott
myListener.onLoadInit = function(target_mc:MovieClip) {
   preloader_mc._visible = preloader_txt._visible = false;
   echo(":: onLoadInit esemény ::\nA "+target_mc+" nevü MovieClip inicializálódott.\n");
};
// Valamilyen hiba lépett fel a betöltés során, azt kezeljük le itt
myListener.onLoadError = function(target_mc:MovieClip, errorCode:String) {
   echo(":: onLoadError esemény ::\nHIBA!");
   echo("A HIBA KÓDJA: "+errorCode);
   echo("Nem sikerült a betöltés a "+target_mc+" nevü MovieClip-be.\n");
};
// Egy üres moziklip létrehozása, ebbe fogunk betölteni
this.createEmptyMovieClip("clip1_mc", this.getNextHighestDepth());
clip1_mc._x = 257;
clip1_mc._y = 5;
//
correct_btn.onRelease = function () {
   // A létező fájl betöltésének megkezdése
   my_mcl.loadClip("images/boris.jpg", clip1_mc);
}
wrong_btn.onRelease = function () {
   // A nem létező fájl betöltésének megkezdése
   my_mcl.loadClip("images/nincs_ilyen_fajl.jpg", clip1_mc);
}
// Függvény, mely a dinamikus szövegmezőbe írogat
function echo (src) {
   output_txt.text += src+"\n";
   output_txt.scroll = output_txt.maxscroll;
}
 
   
 
 

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