Promotic
WikipediaLinkedInYoutubeTwitterFacebook

AddEventTimer - metoda objektu PmaRoot

Popis:
Zaregistruje požadavek do časovače aplikace na jednorázové nebo opakované vyvolání funkce po uplynutí zadané doby.
Syntaxe:
Empty AddEventTimer(Long nTime, Long nType, String sFuncId, Function Func)
Parametry:
nTime(Long) Časový úsek (interval nebo timeout) v milisekundách, po kterém dojde k vyvolání funkce.
nType(Long) Typ požadavku na vnitřní časovač.
-1 - Funkce bude volána opakovaně se zadanou periodou (interval).
1 - Funkce bude volána jednou se zadaným zpožděním (timeout).
sFuncId(String) Identifikátor registrované událostní funkce.
- umožňuje odebrání funkce metodou RemoveEventTimer
- zamezuje duplicitnimu zaregistrování téže funkce
- může obsahovat jakékoliv znaky (není to systémový název)
- doporučuje se použít např. celou cestu k Pma objektu
Func(Function) JavaScript událostní funkce, která bude volána časovačem aplikace.
Příklad:
Příklad opakovaného (10x) spuštění funkce realizovaný dvěma přístupy. První přístup spočívá v opakované nové registraci funkce jednorázového spuštění, dokud je potřeba.
JavaScriptVyber a zkopíruj do schránky

function OnTick()
{
Pm.Debug("OnTick: tClick=" + Pm.FormatDate(tClicked, 1) + "nCounter = " + nCounter);
if (nCounter-- > 0)
pMe.Root.AddEventTimer(1000, 1, pMe.GetPathName(), OnTick);
}
var tClicked = Pm.Time;
var nCounter = 10;
pMe.Root.AddEventTimer(1000, 1, pMe.GetPathName(), OnTick);
Druhý přístup spočívá v jediné registraci funkce pro opakované spuštění, která je odregistrována až je potřeba. A současně provede animaci pohybu grafického objektu "Ellipse" v obrazu.
JavaScriptVyber a zkopíruj do schránky

function OnTick()
{
Pm.Debug("OnTick: tClick=" + Pm.FormatDate(tClicked, 1) + "nCounter = " + nCounter);
if (nCounter-- < 0)
pMe.Root.RemoveEventTimer(pMe.GetPathName());
}
var tClicked = Pm.Time;
var nCounter = 10;
pMe.Root.AddEventTimer(60, -1, pMe.GetPathName(), OnTick);

Historie:
Pm9.00.16: Nový parametr sFuncId
Pm9.00.09: Vytvořeno
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice