Promotic

AddEventTimer - metoda obiektu PmgRoot

Opis:
Rejestracja funkcji do wewnętrzego timera panela na jedorazowe lub wielokrotne wołanie po upływie określonego czasu.
Składnia:
Empty AddEventTimer(Long nTime, Long nType, String sFuncId, Function Func)
Parametry:
nTime(Long) Odcinek czasu (period lub timeout) w milisekundach, po którym dojdzie do wywołania funkcji
lub data oraz czas (typ danych Date), kiedy dojdzie do wywołania funkcji.
nType(Long) Typ wymogu wewnętrznego timera.
0 - (lub -1 przestarzałe) Funkcja zostanie wywołana powtórnie z określonym periodem.
1 - Funkcja zostanie wywołana raz z określonym opóźnieniem (timeout).
2 - Funkcja zostanie wywołana raz z wprowadzoną datą i godziną. Metoda ta nie działa w Web panelach.
sFuncId(String) Identyfikator zarejestrowanej funkcji zdarzenia.
- Umożliwia usunięcie funkcji przy pomocy metody RemoveEventTimer.
- Uniemożliwia ponowne zarejestrowanie tej samej funkcji.
- Może zawierać dowolne znaki (nie jest to nazwa systemowa).
- Nie może być pusty łańcuch.
- Jest zalecane zastosowanie np. pełnej ścieżki do Pmg obiektu.
Func(Function) JavaScript funkcja zdarzenia, która zostanie wywołana timerem panela.
Notatka:
Wewnętrzy timer panela umożliwia wytwarzać w panelu animacje (periodyczne wołanie), pilnować upłynięcie dozwolonego czasu dowolnego asynchronicznego zdarzenia (timeout) lub reagować na niektóre zdarzenia z opóźnieniem. To wszystko bez powiązania z odświeżaniem (refresh) panela.
Metoda ta działa także w Web panelach.
Patrz również:
Przykład:
Przykład cyklicznego (10x) uruchomienia funkcji zdarzenia realizowany na dwa sposoby. Pierwszy polega na cyklicznej nowej rejestracji funkcji pojedyńczego uruchomienia aż do kończ wymogu.
JavaScriptWybierz oraz skopiuj do schowka

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);
Drugi sposób polega na jednej rejestracji funkcji zdarzenia dla cyklicznego wołania, która zostanie odrejestrowana według wymogu. Równocześnie wykona animację ruchu obiektu "Ellipse" w panelu.
JavaScriptWybierz oraz skopiuj do schowka

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);

Historia:
Pm9.00.25: Nowa opcja 2 w parametrze nType
Pm9.00.16: Nowy parametr sFuncId
Pm9.00.06: Wytworzono
© MICROSYS, spol. s r.o.