Autor | Zpráva | ||
---|---|---|---|
tapies Profil |
#1 · Zasláno: 5. 1. 2010, 15:56:23 · Upravil/a: tapies
Je prosím možné pozastavit běh AS3 scriptu na určitou dobu?
Děkuji. |
||
DoubleThink Profil * |
#2 · Zasláno: 5. 1. 2010, 15:58:09
Ne. Pro časování použij Timer.
|
||
tapies Profil |
#3 · Zasláno: 5. 1. 2010, 16:22:57
DoubleThink:
Děkuji za odpověď. Pokud chci například provést: TweenLite.to(a_mc, 5, {alpha:1}); // a za 5 vteřin toto: TweenLite.to(a_mc, 5, {alpha:0}); musím pro každou z těchto událostí použít vlastní Timer? Omlovám se, jsem začátečník. |
||
DoubleThink Profil * |
#4 · Zasláno: 5. 1. 2010, 22:56:49
Podle situace, můžeš připojit víc listenerů k jednomu timeru, vybírat akce podle uběhnutého času, atd. Možností je spousta.
|
||
COBIS Profil * |
#5 · Zasláno: 6. 1. 2010, 14:41:02
Zkusil bych se mrknout do dokumentace k TweenLite jestli tam je nejaka udalost, ktera se vykona po ukonceni animace neco jak onComplete u tridy Tweener. A nebo se mrkni sem http://help.adobe.com/cs_CZ/AS3LCR/Flash_10.0/ na balicek flash.utils kde je metoda setTimeout() nebo setInterval() a pod.
|
||
tapies Profil |
#6 · Zasláno: 6. 1. 2010, 18:44:14
COBIS:
Ano, u TweenLite onComplete možnost je , dokonce i Delay tam je. Ty dva příkazy TweenLite jsem použil jen jako příklad příkazů, asi nevhodně. Takže, pokud rozumím dobře, v AS nejde udělat něco jako: příkaz1 pause(5 vteřin) příkaz2 ale musí se takováto jednoduchá situace řešit pomocí Timer nebo ENTER_FRAME, což podle mne hodně znepřehlední kód. Mám pravdu? S AS mám minimum zkušeností. Děkuji. |
||
COBIS Profil * |
#7 · Zasláno: 6. 1. 2010, 19:27:56
Toto co jsi uvedl se da krasne resit pomoci setTimeout(); ktery se ti vykona jdnou po uplinuti casu.
function volanaFunkce(ahojString:String):void { trace(ahojString); // AHOJ } var myTimeout:unit = setTimeout(volanaFunkce, 5000, "AHOJ"); Za 5 sekund se zavola funkce volanaFunkce a ta vypise do Output AHOJ pouze jednou. function volanaFunkce(ahojString:String):void { trace(ahojString); // AHOJ } var myInterval:unit = setInterval(volanaFunkce, 5000, "AHOJ"); Zatim co metoda setInterval(); bude kazdych 5 sekund volat funkci volanaFunkce a bude vypisovat AHOJ do Output. A u Timer si muzes urcit kolikrat se ma dana funkce zavolat. |
||
tapies Profil |
#8 · Zasláno: 7. 1. 2010, 09:31:45
Díky moc, toto řešení se mi líbí.
Jde mi o zachování maximální přehlednosti skriptu. Řekněme, že mám takovýto skript: trace("toto je intro"); trace("toto je HLAVNÍ část scriptu"); // následují desítky řádků skriptu pak se rozhodnu, že spustím HLAVNÍ část scriptu až za 5 sec, takže to udělám takto: trace("toto je intro"); function hlavni():void { trace("toto je HLAVNÍ část scriptu"); // následují desítky řádků skriptu } var myTimeout:uint = setTimeout(hlavni, 5000); Rozumím-li dobře, část skriptu, kterou chci časově ovlivnit, bude muset být vždy uzavřena v nějaké funkci. V mém příkladu je to jednoduché, ale pokud budu mít v HLAVNÍ části skriptu mnoho dalších časových posunů, skript bude dosti nepřehledný. Je to tak? Děkuji. |
||
COBIS Profil * |
#9 · Zasláno: 7. 1. 2010, 17:15:15
Na prvni pohled se zda, ze ano. Ale naopak funkce jsou urceny k zprehledeni a zjednoduseni kodu a AS3 je to jedna ze zakladnich veci.
|
||
tapies Profil |
#10 · Zasláno: 7. 1. 2010, 17:23:58
Rozumím.
Děkuji Vám všem za odpovědi. |
||
Časová prodleva: 14 let
|
0