Autor Zpráva
MarcoL
Profil *
Zdravim, takže mám asi takýto problém:

ide o to, že doteraz som robil fps cez getTimer() a to takto: fps = 1000/(-msec+(msec=getTimer()));"
Teraz keď sa snažím vytvoriť zložitejšie animácie, zistil som, že mi po chvíli začalo sekať cele flashko a to som sa ani nehýbal. zistil som, že "hra ktorá mala pôvodne 8kb ako .swf po niekoľkých minútach zaberať o 40MB viac RAMky. zistil som že to je premennou msec (a to sa mi ešte podarilo to zredukovať na jednu premennu). Skúšal som aj msec%1000 ale to zas začalo trápiť procesor.... Nepomáhalo ani new Time(), ten neukazuje presne iba po nejakých intervaloch. Keďže chcem, aby mi "hra" išla plynule aj v nižších fps (aby nespomalila), potrebujem aspoň zistiť, ako dlho trvala pauza medzi dvomi frameami. Viete mi niekto poradiť?

môžem aj ukázať onu "hru", ak by nebolo jasne...

Dik,
Marcol07
DoubleThink
Profil *
Bez zdrojového kódu neporadíme. Pravděpodobně vytváříš šílené kaskády paralelních vlastností "fps" až do vyčerpání, v uvozovkách, stacku Flash Playeru.
MarcoL
Profil *
ja potom načítavam tu animáciu všade, kde je potreba plynulého pohybu. nič viac s ňou nerobím. ide mi len o to, či sa dá nejako spraviť, aby som dokázal zistiť čas od posledného frameu.
MarcoL
Profil *
tu je .fla prosím nezneužívať moju dôveru k ostatným :-)

game.fla //zastavilo ma to v prvej fáze takže tam skoro nič nie je. fyzika je len testovacia...
MarcoL
Profil *
srry zly link som si to pomylil s mojou domenou na ktoru neviem ftp acc... :D game.fla
MarcoL
Profil *
skript je v tom "aute" v 6 framee
MarcoL
Profil *
potrebujem to fakt súrne... zastavilo to celú moju prácu...
DoubleThink
Profil *
duplicateMovieClip("temp", "mc_"+c, 100+c);


Každou sekundu vytvoříš 100 instancí MovieClipu. Kolik čekáš, že jich VM Flash Playeru zvládne?
MarcoL
Profil *
ale ved ono sa to stopne potom ako to vytvori trat
MarcoL
Profil *
toto je skript to kde je spominany vyraz len toto je cez cyklus...

_global.trk_dat[1] = "z20_s01_s31_s00_z21_s00_z10_s33_z11_s00_z30_z13_s31_c13_c12_s00_s00_s00_z10_z12_s00_z13_s43_z12_s00";
_global.trk_inf[1] = "05_05_025179";
vel = 1400;
c = 0;
t = 1;
x = 1;
y = 1;
xmax = substring(trk_inf[t], 1, 2);
ymax = substring(trk_inf[t], 4, 2);
xymax = xmax*ymax;
while (y<=ymax) {
	clip = substring(trk_dat[t], ((y-1)*xmax+x-1)*4+1, 2);
	rot = substring(trk_dat[t], ((y-1)*xmax+x-1)*4+3, 1);
	attachMovie(clip, "temp", 1);
	duplicateMovieClip("temp", "mc_"+c, 100+c);
	setProperty("mc_"+c, _x, vel/2+(x-1)*vel);
	setProperty("mc_"+c, _y, vel/2+(y-1)*vel);
	setProperty("mc_"+c, _rotation, rot*90);
	setProperty("mc_"+c, _xscale, vel);
	setProperty("mc_"+c, _yscale, vel);
	if (clip == "s4") {
		_x -= vel/2+(x-1)*vel;
		_y -= vel/2+(y-1)*vel;
		_parent._rotation = -rot*90;
	}
	c++;
	x++;
	if (x>xmax) {
		y++;
		x = 1;
	}
}
_global.car_go = 1;
stop();
DoubleThink
Profil *
ale ved ono sa to stopne potom ako to vytvori trat
Nestopne.
MarcoL
Profil *
Dik za pomoc, myslel som ze to stopnem, Pravdupovediac, opticky sa to nedalo zistiť, keďže sa prekryvali tie iste MCs. Fakt to bolo tym, zacnem pracovat na prerobeni. Vyriesilo by sa to dalsim frameom so skriptom stop(), s tym, ze v tom prvom nebude stop()?

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: