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
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).
bara
Profil
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;

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: