Autor | Zpráva | ||
---|---|---|---|
FlashManiac Profil * |
Moderátor DoubleThink: Přesunuto ze zaniklé kategorie Flash všeobecně. Mam takovy maly problem s getTimerem. Kdyz si k promenne nadefinuju casovac(getTimer) napr: cas = GetTimer() a pak si testuju v cyklu while..do než se napočítá např do 3s(3000ms) kompilátor mi vyhodí hlášku, že cyklus je moc velký a neudělá požadovanou úlohu. zkoušel jsem to s tim cyklem a do 16ms to fungovalo ale od 17.ms uz ne, Tak pokud by nekdo vedel cim to je, prosim o radu Diky |
||
DoubleThink Profil * |
#2 · Zasláno: 23. 12. 2004, 20:50:02
Cyklus není možné takto použít. Scripty v cyklu se provádí s nulovým zpožděním (teoreticky) - ve tvém případě by proběhlo nekonečně mnoho cyklů - prakticky několik miliard.
Musíš použít událost enterFrame viz http://flash.jakpsatweb.cz/index.php?page=podminky Problém Předchozí příklady ve vás možná evokovaly pocit, že lze vytvořit smyčku, která by stále dokola kontrolovala nějakou skutečnost a podle toho prováděla nebo neprováděla akce: while (skore > 0){ Tento způsob použití smyčky sice není v rozporu se správnou syntaxí, ale v praxi je nepoužitelný. Je totiž nutné si uvědomit jednu důležitou skutečnost - všechny příkazy definované snímkům a objektům jsou provedeny po splnění události (MouseOver, KeyDown, ...) v jeden okamžik! Pokud bychom tedy spustili animaci s předchozí smyčkou, bylo by provedeno v jeden moment nekonečně mnoho operací, což nelze. Abych to shrnul - každá smyčka musí mít konečný počet cyklů (ať už pomocí proměnné, nebo příkazu "For"). Typický projev této chyby při testu animace (Ctrl + Enter) je okamžité přetečení bufferu ActionScriptu, který je posléze signalizován chybovou hláškou a terminací veškerých dalších příkazů. Zákeřnost spočívá ve faktu, že nástroj "Check Syntax" nic nepozná. |
||
FlashManiac Profil * |
#3 · Zasláno: 23. 12. 2004, 21:52:50
dík
|
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0