Autor | Zpráva | ||
---|---|---|---|
bara Profil |
Zdravím,
potřebovala bych poradit se scriptem pro externí nahrávání jpg v cyklu. Toto funguje... pocet = 4; y_cil = 20; for (i=1; i<new Number(pocet); i++) { duplicateMovieClip(cil_0, "cil_"+i, i+20); _root["cil_"+i]._y = y_cil; y_cil = y_cil+300; var mcLoader:MovieClipLoader = new MovieClipLoader(); mcLoader.loadClip("data/foto/news/"+i+".jpg",_root["cil_"+i]); } cil_0._visible = false; Ale ještě bych potřebovala aby v cyklu fungoval listener pro zjištění stavu načtení. To zkouším takhle... pocet = 4; y_cil = 20; for (i=1; i<new Number(pocet); i++) { duplicateMovieClip(cil_0, "cil_"+i, i+20); _root["cil_"+i]._y = y_cil; y_cil = y_cil+300; var mcLoader:MovieClipLoader = new MovieClipLoader(); var listener:Object = new Object(); listener.onLoadComplete = function(target:MovieClip):Void { trace("nacten obrazek "+i); }; mcLoader.addListener(listener); mcLoader.loadClip("data/foto/news/"+i+".jpg",_root["cil_"+i]); } cil_0._visible = false; Ale místo abych dostala... nacten obrazek 1 nacten obrazek 2 nacten obrazek 3 ... Dostávám pouze... nacten obrazek 4 nacten obrazek 4 nacten obrazek 4 Předem díky za rady. |
||
embee Profil |
#2 · Zasláno: 24. 9. 2009, 17:53:30
No, podle me dostavas 4,4,4 proto, protoze tracujes promennou "i" na udalost loadComplete, coz je dost dlouho pote, co smycka skonci - a ta konci s i=4. Smycka se totiz vykona de facto okamzite, otevreni streamu pro nacteni dat a samotne nacteni trva podstatne dele - obcas se dostanes do situace, ze pres smycku nacitas treba 20 fotek a prvnich par je uz nactenych, zatimco poslednich par se jeste ani nezacalo nacitat.
Dale udalost complete je ti na zjisteni stavu nacitani v podstate k nicemu, na to potrebujes udalost progress (complete se zavola jen jednou po skonceni nacitani, takze tam stav nezjistis - maximalne to, ze se neco nactelo). |
||
Časová prodleva: 7 dní
|
|||
bara Profil |
#3 · Zasláno: 1. 10. 2009, 16:43:05
Tak už znám funkční kód.
Řešení je: pocet = 4; y_cil = 20; for (i=1; i<new Number(pocet); i++) { duplicateMovieClip(cil_0, "cil_"+i, i+20); _root["cil_"+i]._y = y_cil; y_cil = y_cil+300; var mcLoader:MovieClipLoader = new MovieClipLoader(); var listener:Object = new Object(); listener.id = i; listener.onLoadComplete = function(target:MovieClip):Void { trace("nacten obrazek "+this.id); }; mcLoader.addListener(listener); mcLoader.loadClip("data/foto/news/"+i+".jpg",_root["cil_"+i]); } cil_0._visible = false; |
||
Časová prodleva: 15 let
|
0