Promotic

AddEventTimer - metoda objektu PmgRoot

Popis:
Zaregistruje funkci do vnitřního časovače obrazu na jednorázové nebo opakované zavolání po uplynutí zadané doby.
Syntaxe:
Empty AddEventTimer(Long nTime, Long nType, String sFuncId, Function Func)
Parametry:
nTime(Long) Buď časový úsek (perioda nebo timeout) v milisekundách, po kterém dojde k zavolání funkce
nebo datum a čas (datový typ Date), kdy dojde k zavolání funkce.
nType(Long) Typ požadavku na vnitřní časovač.
0 - (nebo -1 zastaralé) Funkce bude volána opakovaně se zadanou periodou.
1 - Funkce bude volána jednou se zadaným zpožděním (timeout).
2 - Funkce bude volána jednou se zadaným datumem a časem. Tato metoda není funkční ve Web obrazech.
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).
- Nesmí být prázdný řetězec.
- Doporučuje se použít např. celou cestu k Pmg objektu.
Func(Function) JavaScript událostní funkce, která bude volána časovačem obrazu.
Poznámka:
Vnitřní časovač obrazu umožňuje vytvářet v obrazu animace (periodické volání), hlídat uplynutí povolené doby nějaké asynchronní události (timeout) nebo reagovat na některé události se zpožděním. A to vše bez vazby na rychlosti obnovování (refresh) obrazu.
Tato metoda je funkční i ve Web obrazech.
Viz také:
Příklad:
Příklad opakovaného (10x) spuštění událostní 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 událostní funkce pro opakované spuštění, která je odregistrována až je potřeba. A současně provede animaci pohybu objektu "Ellipse" v obrazu.
JavaScriptVyber a zkopíruj do schránky

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

Historie:
Pm9.00.25: Nová volba 2 v parametru nType
Pm9.00.16: Nový parametr sFuncId
Pm9.00.06: Vytvořeno
© MICROSYS, spol. s r.o.