Autor Zpráva
tapies
Profil
Je prosím možné pozastavit běh AS3 scriptu na určitou dobu?
Děkuji.
DoubleThink
Profil *
Ne. Pro časování použij Timer.
tapies
Profil
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 *
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 *
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
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 *
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
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 *
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
Rozumím.
Děkuji Vám všem za odpovědi.

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:

0