Promotic

Draw - karta obiektu PmgCanvas

Opis:
Definicja algorytmów (JavaScript) dla zdarzenia rysowania onDraw, która umożliwia rysowanie na powierzchni do rysowania CanvasCtx.
Konfiguratory:
onDrawZdarzenie to zostanie wywołane, jeżeli zaistnieje potrzeba odświeżenia tego obiektu.
Parametry:
pEvent(Object) Odniesienie do obiektu zawierającego ściślejsze informacje o danym zdarzeniu.
pEvent.GetCtx(state)(Object) Zwraca obiekt CanvasCtx, który przedstawia powierzchnię do rysowania. Znaczenie parametru state:
0 - Zostanie uzyskany pusty obszar do rysowania, ewentualna zawartość zostanie usunięta. Ponownie zostanie wyrysowane wszystko, co ma być widoczne.
1 - Zostanie uzyskany obszar do rysowania w aktualnym stanie, a ewentualna istniejąca zawartość zostanie zachowana. W taki sposób jest umożliwione rysowanie przyrostowe, na przykład przebieg zmiennej, kiedy rysuje się tylko nowy punkt. To, czy obszar do rysowania nie jest zainicjowana (pusta) lub czy już zawiera zawartość graficzną z przeszłości można stwierdzić przy pomocy metody pEvent.CtxExt.isReset().
pEvent.GetVar()(Object) Zwraca zmienną Pmg obiektu w karcie "Zmienne" o określonej nazwie name. Patrz PmgObject.Vars.
pEvent.GetParentVar()(Object) Zwraca zmienną Pmg obiektu w karcie "Zmienne" o określonej nazwie name. Musi być włączony konfigurator "W onDraw będzie zastosowana metoda pEvent.GetParentVar()", by były dostępne zmienne rodzica obiektu. Patrz PmgObject.Vars.
pEvent.CtxDx(Long) Szerokość powierzchni do rysowania (w pikselach). Powierzchnia do rysowania ma identyczny rozmiar jako obiekt PmgCanvas.
pEvent.CtxDy(Long) Wysokość powierzchni do rysowania (w pikselach).
pEvent.CtxExt(Object) Odniesienie do obiektu CanvasCtxExt.
pEvent.Methods(Object) Metody projektanta do rysowania.
pEvent.ViewerType(Long) Znacznik, gdzie obiekt CanvasCtx jest rysowany:
0 - tryb deweloperski
1 - tryb runtime (lokalny)
2 - tryb runtime (przeglądarka internetowa)
Metody pomocniczePonieważ niektóre rysunki mogą być złożone, lepiej rozdzielić rysowanie do pomocniczych projektanckich metod rysowania, które można wytworzyć na tym samym poziomie na jakim znajduje się zdarzenie onDraw.
Pomocnicze metody rysowania posiadają takie same parametry jak zdarzenie onDraw a w dodatku mogą zawierać swoje parametry. Jest zalecane by metody posiadały przynajmniej jeden parametr ctx, by każda z metod nie musiała osobno pozyskiwać ctx - patrz przykład:

Jedna metoda rysuje podziałkę (nazwa na przykład DrawScale), inna metoda rysuje przebieg krzywej (nazwa na przykład DrawCurve). W zdarzeniu onDraw wtedy może być tylko prosty skrypt, który woła dane metody.
JavaScriptWybierz oraz skopiuj do schowka

var ctx = pEvent.GetCtx(0);
pEvent.Methods.DrawScale(ctx);
pEvent.Methods.DrawCurve(ctx);
Notatka:
Algorytmy do rysowania są tutaj pisane zawsze w języku JavaScript, niezależnie na ustawienie konfiguratora "Ustawienia języka skryptowego" w obiekcie PmaPanel.

Obiekt PmgCanvas zapewni automatyczne wywołanie zdarzenia onDraw dla odświeżenia powierzchni do rysowania CanvasCtx w następujących przypadkach:
1) Jeżeli powierzchnia do rysowania jest niezinicjowana (pusta) po otwarciu panela, po zmianie rozmiaru obiektu PmgCanvas lub po wywołaniu metody CtxReset. W tym przypadku powierzchnia do rysowania jest zawsze pusta (przeźroczysty).
2) Jeżeli zmieniły się wstępne zmienne (Zmienne) obiektu PmgCanvas. Metoda rysowania może sobie zażądać albo już istniejącą powierzchnię do rysowania patrz pEvent.GetCtx(1) albo (bardziej powszechne) niezinicjowaną (pustą) powierzchnię do rysowania patrz pEvent.GetCtx(0).
3)Jeżeli zmieniły się zmienne (Zmienne) Pmg obiektu rodzica (tło) PmgCanvas (ważne dla wżłobionego obiektu - front).

Powierzchnia do rysowania zostanie wtedy odświeżona w zdarzeniu onDraw tylko podczas zmiany. Jeżeli nie dojdzie do zmiany, wtedy nie jest potrzebne odświeżenie powierzchni do rysowania lecz wykorzystuje się jej zapamiętana wartość. Zdarzenie onDraw ma dostęp tylko do wartości zmiennych lokalnych (Zmienne) obiektu PmgCanvas, które tak przedstawiają interfejs danych dla funkcji rysowania. Dalej może wykorzystać obiekt Pm oraz obiekt powierzchni do rysowania CanvasCtx. Interfejs skryptowy obiektu CanvasCtx udostępnia większość metod oraz właściwości dla 2D rysowania używanych w HTML5 v tagu <canvas>.
Patrz również:
- CanvasCtx (obiekt)
- PmgCanvas (obiekt)

Historia:
Pm8.02.05: Wytworzono
© MICROSYS, spol. s r.o.