Autor Zpráva
ZOID.
Profil *
Dobrý den,

potřebuju poradit s preloadnutím několika obrázků. Potřebuju na scénu načíst 5 obrázků a zajistit, aby se zobrazily NAJEDNOU. Používám funkci loadMovie.

Tohle mám např ve framu 3:

photos = new Array("1.jpg", "2.jpg", "3.jpg", "4.jpg", "5.jpg");
loadMovie(photos[0], "komp_inst");
loadMovie(photos[1], "body_inst");
loadMovie(photos[2], "head_inst");
loadMovie(photos[3], "det_top_inst");
loadMovie(photos[4], "det_bottom_inst");
stop();

Pokud to dělám takto, zobrazují se fotky postupně tak, jak je ukončeno jejich načítání. Potřebuju zajistit, aby se nezobrazovalo nic až do doby, než je vše načteno. Pak bych je rád zobrazil MotionTweenem.

Prosím, poraďte. Díky!!!
XXX
Profil *
Nechce se mi z hlavy tvorit kod, ale princip by byl asi takovy: na zacatku si vytvor treba promenne pro kazdy z tech MC, ktere budou typu boolean a budou znamenat, jestli uz je dany obrazek nacteny, napr:
var komp:Boolean = false; ... i pro vsechny ostatni (na zacatku musi byt vsechny false - nejsou nacteny)

nastavis vsechny MC na neviditelne:
komp_inst._visible = false; ... i pro vsechny dalsi

pak pro kazdy movieClip pridat funkci onEnterFrame:
komp_inst.onEnterFrame = function(){
loading = Math.round(this.getBytesLoaded()/this.getBytesTotal()*100);
if(loading == 100){
komp = true;
}
}
tyto funkce zase pro kazdy z MC

a nakonec:
_root.onEnterFrame = function(){
if((komp == true) && (body == true) ... && (det == true)){

//tady das akci, kterou chces vykonat, az jsou vsechny MC nacteny ;-) napr je udelas viditelne: komp-inst._visible = true, atd.. //nebo spustis nejaky ten svuj tween ;-)

}
}

P.S.: je to jenom takovy navod, psal jsem to z hlavy, takze tam mozna budou i nejake preklepy, ale zhruby takhle nejak by to melo fungovat ;-)
ZOID.
Profil *
Je mi lito, ale tohle mi nefunguje. Několika pokusy jsem došel k závěru, že pokud třeba ve snímku n nastavím všechny MC na neviditelné:

_root.head_inst._visible=false;
_root.body_inst._visible=false;
_root.komp_inst._visible=false;
_root.det_top_inst._visible=false;
_root.det_bottom_inst._visible=false;

a ve snímku n+1 do těchto "zneviditelněných" MC načtu obrázky:

loadMovie("katka/head.jpg", "head_inst");
loadMovie("katka/body_dv_20.jpg", "body_inst");
loadMovie("katka/komp_20_K20.jpg", "komp_inst");
loadMovie("detail/top_dv_20.jpg", "det_top_inst");
loadMovie("detail/bottom_20_K20.jpg", "det_bottom_inst");

Tak se mi v tom snímku n+1 automaticky zviditelní. Nezávisle na nastavení ze snímku n. Co dělám š=atně. Začíná mě to dohánět k šílenství...
ZOID.
Profil *
BTW, jak je to vlastně s prováděním příkazu loadMovie? Má-li animace třeba 5 snímků a v prvním provedu

loadMovie("katka/head.jpg", "head_inst");
loadMovie("katka/body_dv_20.jpg", "body_inst");
loadMovie("katka/komp_20_K20.jpg", "komp_inst");
loadMovie("detail/top_dv_20.jpg", "det_top_inst");
loadMovie("detail/bottom_20_K20.jpg", "det_bottom_inst");

nezarazí se provádění na tom příkazu dokud není naloadováno, že? Normálně se dál provádějí snímky 2, 3 ... přestože načítání ještě není hotové? Jaké je pořadí?
ZOID.
Profil *
No, fakt už nevím...
ZOID.
Profil *
Pokud byste někdo něco takového už někdy řešili, budu vděčný za kus kódu. Dík ...
XXX
Profil *
netusim presne, jak to mas cele resene,ale kazdopadne doporucuju delat tohle vsechno v jednom snimku, ne v nekolika snimcich. pak by ti melo fungovat i to zneviditelneni. tzn. budes mit jeden snimek na zacatek dej akci stop(); at ti animace nepokracuje na dalsi snimek. pak pres _vistible zneviditelnis vsechny snimky. a potom do funkce onEnterFrame musis vymyslet podminky, jak testovat, jestli uz jsou vsechny snimky nactene. a az budou - vyhodnotis podminkou, teprve prejdes na dalsi snimek animace ;-) nejhorsi je vychytat ty podminky pro to, jestli uz jsou vsechny MC nactene... s tim si budes muset hooodne vyhrat...
XXX
Profil *
kdyz napises svuj mejl, tak ti poslu neco sice podstatne jednodussiho, ale zakladni princip tam bude ;-)
dredie
Profil *
co takhle zkusit to pres onLoad? Nejdriv nastavit vsechny obrazky (kontejnery) na _visible=false, pak udelat funkci, ktera pri nacteni obrazku nastavi var loaded1:Boolean = true a zkontroluje, jestli jsou vsechny ostatni obrazky nacteny... pokud ano, zviditelni je, pokud ne, hodis tam break;
ZOID.
Profil *
OK, pokud bys mel cas, hod mi neco na marcellus.vallas@centrum.cz . Diky za ochotu :-)
ZOID.
Profil *
Jinak jsem si teď potvrdil, že příkaz LoadMovie(obrazek,MovieClip); způsobí automatické zviditelnění MovieClipu (_visible na true). Všecno ostatní je OK, ale tohle nevim, jak vyřešit
XXX
Profil *
No s tim _visible je to mozne, tak v tom pripade na to jdi pres _alpha ;-) na zacatku to nastav na 0, pak na 100 nebo postupne ;-)
ZOID.
Profil *
Moc díky za pomoc. Už jsem vše vyřešil. S tim _visible je při LoadMovie opravdu problém. Dá se to vyřešit buď humpolácky (v každém framu jakoby znova nastavovat _visible=false; pro všechny MC dokud není vše načteno) nebo elegantně pomocí _alpha. Ještě jednou díky za ochotu ...
XXX
Profil *
jsem rad, ze ti to pomohlo ;-)
denda
Profil *
prosím vám nevítě někdo co nebo kdo je to Marcellus Vallas?? jestli jo tak mi napište ma dena.stepka@seznam.cz
Toto téma je uzamčeno. Odpověď nelze zaslat.

0