Promotic
WikipediaLinkedInYoutubeTwitterFacebook

AddEventTimer - metoda objektu PmgRoot

Popis:
Zaregistruje požadavek do vnitřního časovače obrazu na jednorázové nebo opakované vyvolání funkce po uplynutí zadané doby.
Syntaxe:
Empty AddEventTimer(Long nTime, Long nType, 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).
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.

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, OnTick);
}
var tClicked = Pm.Time;
var nCounter = 10;
pMe.Root.AddEventTimer(1000, 1, 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 obraze.
JavaScriptVyber a zkopíruj do schránky

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

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