Posted: 13.11.2006 19:10 Post subject: pomoc s loaderom...
naime...
imam sajt sa cirka 200 slika, svaka se loada pritiskom na neki gumb... buduci da ih ima oko 35Mb mislio sam ih stavit na server pa loadat s te lokacije....
pitanje...
kako napraviti preloader za svaku fotku, koju loadam izvana u prazni mc swf-a ?
Pokusat cu ti predstaviti jednostavan primjer koncepta ucitavanja sa MovieClipLoader klasom, koji za razliku od koristenja metoda MovieClip klase getBytesLoaded() i getBytesTotal pruza mnogo vise funkcionalnosti kod ucitavanja i razne mogucnosti da razradis nacin ucitavanja i njegovog prikaza.
Ovdje je prikazano samo najosnovnije sto ti je potrebno da bi lakse shvatio o cemu se radi, a izmjene ili daljnja razrada su na tebi.
Da bi kod prikazan dolje radio potrebno je da imas mc nazvan slikaHolder u koji ces loadati slikice i jednostavan mc nazvan preloader koji moze biti recimo obican izduzeni pravokutnik koji se nalazi na lejeru iznad slikaHoldera. Ti, naravno, izmjeni koncept i nazive kako hoces.
U kodu dolje se kreira MovieClipLoader instance i listener objekt na kojem definiras listener funkcije koje se pokrecu na odredjeni dogadjaj ("npr. kad loadanje pocne, ili zavrsi ili...whatever).
U ovom slucaju te funkcije koristis samo da bi animirao preloader i ucinio ga vidljivim odnosno nevidljivim. Takodjer, u ovom primjeru uvijek koristis jedan te isti preloader mc za loadanje slika. Svaki put kad pozoves loadClip() da loadas novu sliku, preloader se resetira, a stara slika se sama ukloni, jer kad kad loadas nesto u mc sav njegov prethodni sadrzaj nestane.
Moguce je napraviti slozeniji scenario, recimo ako zelis ucitavati slike na vise mjesta (npr. ucitati thumbnaile od kojih svaki ima svoj preloader) onda mozes kreirati thumbnail mc koji sadrzi holder i preloader. Ucitavat ces sa loadClip("path/slika1.jpg", thumbnail1.holder).
Pomocu parametra mc u event listener funkcijama imas pristup mciju u koji loadas, pa ces pomocu njega moci pristupiti i svakom preloaderu. Npr:
slikaLoaderListener.onLoadStart = function(mc){
mc._parent.preloader._xscale = 0;
preloader._visible = true;
}
Zatim mozes imati i error tekst koji ces prikazati umjesto slike ako ucitivanje iz nekog razloga ne uspije. Za to ces morati definirati onLoadError listener funkciju na slikaLoaderListeneru... itd.
Onda naravno mozes recimo risajzati sliku kad se ucita, ufejdati je pomocu neke svoje custom funkcije pojaviSe() koju ces pozvati unutar onLoadInit funkcije, ili postepeno fejd outati preloader umjesto da ga samo ucinis nevidljivim kad vise nije potreban, pozivajuci svoju nestani() funkciju unutar onLoadInit event listenera... itd, što god ti padne napamet...
Ovo su ti samo smjernice kako mozes poslije razvijati loadanje svojih slika. Ne znam koliko je tvoje znanje actionscripta pa se nadam da ti jasno o cemu govorim, a za podrobnija objasnjenja nije bas da previse vremena.
U svakom slucaju ako imas pitanja u vezi primjera prikazanog dolje slobodno pitaj.
//potrebni su ti:
//-otvoren novi prazan .fla u tvom fleshu sa tri lejera
//- jedan prazan mc nazvan slikaHolder u najdonjem lejeru
//- na lejeru iznad slikaHoldera mc nazvan preloader koji jepolozeni izduzeni pravokutnik
//- pravilan path do slike koju ces loadati kad pozoves loadClip() (na dnu koda)
//-zlica vegete
//pejstaj ovaj kod u prvi frejm na najgornjem lejeru, promijesaj i probaj Ctrl+Enter
// napravi MovieClipLoader i definiraj listener funkcije
var slikaLoader = new MovieClipLoader();
var slikaLoaderListener = new Object();
slikaLoader.addListener(slikaLoaderListener);
//ova listener funkcija je pozvana samo jednom, kad ucitavanje pocne
slikaLoaderListener.onLoadStart = function(mc){
preloader._xscale = 0; //resetiraj preloader
preloader._visible = true; //učini ga vidljivim
}
//ova listener funkcija je pozvana svaki put kad se ucita dio podataka na hard
//ona animira tvoj preloader
slikaLoaderListener.onLoadProgress = function(mc, loaded, total){
var postotak = Math.ceil(loaded/total*100); //cuva iznos postotka ucitanih podataka
preloader._xscale = postotak;
}
//ova listener funkcija je pozvana kad je slika/swf ucitana i inicirana
//tad su ti dostupni propertiji tvoje slike pa se tad mozes njima posluziti
//da risajzas sliku prije nego je prikazana ili napravis s njom sto vec zelis
//u ovom jednostavnom primjeru sluzi samo da ucinis preloader nevidljivim jer ti vise ne treba
slikaLoaderListener.onLoadInit = function(mc){
preloader._visible = false;
}
//pozovi loadClip() da ucitas sliku u zeljeni mc
//parametri su: 1. path do tvoje slike ("tvojPath/01.jpg") i 2.referenca na mc u koji zelis ucitati sliku (slikaHolder)
//funkciju pozovi onda ti je to potrebno, na pritisak gumba ili kako si vec zamislio
slikaLoader.loadClip("tvojPath/01.jpg", slikaHolder);
Joined: 13 Nov 2003 Posts: 1397 Location: Karlovac
Posted: 19.11.2006 13:04 Post subject:
dblchckd wrote:
Pokusat cu ti predstaviti jednostavan primjer koncepta ucitavanja sa MovieClipLoader klasom, koji za razliku od koristenja metoda MovieClip klase getBytesLoaded() i getBytesTotal pruza mnogo vise funkcionalnosti kod ucitavanja i razne mogucnosti da razradis nacin ucitavanja i njegovog prikaza.
Ovdje je prikazano samo najosnovnije sto ti je potrebno da bi lakse shvatio o cemu se radi, a izmjene ili daljnja razrada su na tebi.
Da bi kod prikazan dolje radio potrebno je da imas mc nazvan slikaHolder u koji ces loadati slikice i jednostavan mc nazvan preloader koji moze biti recimo obican izduzeni pravokutnik koji se nalazi na lejeru iznad slikaHoldera. Ti, naravno, izmjeni koncept i nazive kako hoces.
U kodu dolje se kreira MovieClipLoader instance i listener objekt na kojem definiras listener funkcije koje se pokrecu na odredjeni dogadjaj ("npr. kad loadanje pocne, ili zavrsi ili...whatever).
U ovom slucaju te funkcije koristis samo da bi animirao preloader i ucinio ga vidljivim odnosno nevidljivim. Takodjer, u ovom primjeru uvijek koristis jedan te isti preloader mc za loadanje slika. Svaki put kad pozoves loadClip() da loadas novu sliku, preloader se resetira, a stara slika se sama ukloni, jer kad kad loadas nesto u mc sav njegov prethodni sadrzaj nestane.
Moguce je napraviti slozeniji scenario, recimo ako zelis ucitavati slike na vise mjesta (npr. ucitati thumbnaile od kojih svaki ima svoj preloader) onda mozes kreirati thumbnail mc koji sadrzi holder i preloader. Ucitavat ces sa loadClip("path/slika1.jpg", thumbnail1.holder).
Pomocu parametra mc u event listener funkcijama imas pristup mciju u koji loadas, pa ces pomocu njega moci pristupiti i svakom preloaderu. Npr:
slikaLoaderListener.onLoadStart = function(mc){
mc._parent.preloader._xscale = 0;
preloader._visible = true;
}
Zatim mozes imati i error tekst koji ces prikazati umjesto slike ako ucitivanje iz nekog razloga ne uspije. Za to ces morati definirati onLoadError listener funkciju na slikaLoaderListeneru... itd.
Onda naravno mozes recimo risajzati sliku kad se ucita, ufejdati je pomocu neke svoje custom funkcije pojaviSe() koju ces pozvati unutar onLoadInit funkcije, ili postepeno fejd outati preloader umjesto da ga samo ucinis nevidljivim kad vise nije potreban, pozivajuci svoju nestani() funkciju unutar onLoadInit event listenera... itd, što god ti padne napamet...
Ovo su ti samo smjernice kako mozes poslije razvijati loadanje svojih slika. Ne znam koliko je tvoje znanje actionscripta pa se nadam da ti jasno o cemu govorim, a za podrobnija objasnjenja nije bas da previse vremena.
U svakom slucaju ako imas pitanja u vezi primjera prikazanog dolje slobodno pitaj.
//potrebni su ti:
//-otvoren novi prazan .fla u tvom fleshu sa tri lejera
//- jedan prazan mc nazvan slikaHolder u najdonjem lejeru
//- na lejeru iznad slikaHoldera mc nazvan preloader koji jepolozeni izduzeni pravokutnik
//- pravilan path do slike koju ces loadati kad pozoves loadClip() (na dnu koda)
//-zlica vegete
//pejstaj ovaj kod u prvi frejm na najgornjem lejeru, promijesaj i probaj Ctrl+Enter
// napravi MovieClipLoader i definiraj listener funkcije
var slikaLoader = new MovieClipLoader();
var slikaLoaderListener = new Object();
slikaLoader.addListener(slikaLoaderListener);
//ova listener funkcija je pozvana samo jednom, kad ucitavanje pocne
slikaLoaderListener.onLoadStart = function(mc){
preloader._xscale = 0; //resetiraj preloader
preloader._visible = true; //učini ga vidljivim
}
//ova listener funkcija je pozvana svaki put kad se ucita dio podataka na hard
//ona animira tvoj preloader
slikaLoaderListener.onLoadProgress = function(mc, loaded, total){
var postotak = Math.ceil(loaded/total*100); //cuva iznos postotka ucitanih podataka
preloader._xscale = postotak;
}
//ova listener funkcija je pozvana kad je slika/swf ucitana i inicirana
//tad su ti dostupni propertiji tvoje slike pa se tad mozes njima posluziti
//da risajzas sliku prije nego je prikazana ili napravis s njom sto vec zelis
//u ovom jednostavnom primjeru sluzi samo da ucinis preloader nevidljivim jer ti vise ne treba
slikaLoaderListener.onLoadInit = function(mc){
preloader._visible = false;
}
//pozovi loadClip() da ucitas sliku u zeljeni mc
//parametri su: 1. path do tvoje slike ("tvojPath/01.jpg") i 2.referenca na mc u koji zelis ucitati sliku (slikaHolder)
//funkciju pozovi onda ti je to potrebno, na pritisak gumba ili kako si vec zamislio
slikaLoader.loadClip("tvojPath/01.jpg", slikaHolder);
samo ideja - a da ovo malo uredis i bacis u tutorial?
_________________ Bolje biti malo lud, nego malo pametan.
hvala ti puno na ovom iznimno detaljnom objasnjenju...
trenutno nisam doma pa cu to isprobati ovih dana...
bilo kako bilo javim se ak cu imati problema...
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum