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 *
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){

buton01.enabled = true;
}
buton01.enabled = false;


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 *
dík
Toto téma je uzamčeno. Odpověď nelze zaslat.