Promotic
WikipediaLinkedInYoutubeTwitterFacebook

Draw - zakładka elementu PmiCanvas

Opis:
Definicja algorytmów (JavaScript) dla zdarzenia rysowania onDraw, która umożliwia rysowanie na powierzchni do rysowania CanvasCtx.
Pozycje konfiguracji:
onDrawZdarzenie to zostanie wywołane, jeżeli zaistnieje potrzeba odświeżenia tego elementu.
Parametry:
pEvent(Object) Odniesienie do obiektu zawierającego ściślejsze informacje o danym zdarzeniu.
pEvent.GetCtx(state)(Object) Zwraca referencję obiektu 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 odniesienie do zmiennej elementu graficznego w zakładce Zmienne o określonej nazwie name. Patrz PmiItem.Vars.
pEvent.GetParentVar()(Object) Zwraca odniesienie do zmiennej elementu graficznego w zakładce 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 elementu. Patrz PmiItem.Vars.
pEvent.CtxDx(Long) Szerokość powierzchni do rysowania (w pikselach). Powierzchnia do rysowania ma identyczny rozmiar jak element PmiCanvas.
pEvent.CtxDy(Long) Wysokość powierzchni do rysowania (w pikselach).
pEvent.CtxExt(Object) Referencja do rozszerzającego obiektu CanvasCtxExt
pEvent.Methods(Object) Metody projektanta do kreślania.
pEvent.ViewerType(Long) Znacznik, określający czy dany panel wyświetla się w aplikacji PROMOTIC lub w przeglądarce internetowej.

Wartość jest zgodna z wartością właściwości PmiRoot.ClientType. W skrypcie zdarzenia onDraw wszak obiekt PmiRoot nie jest dostępny.

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 zalecanym 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). Wtedy w zdarzeniu onDraw 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 dla rysowania są tutaj pisane zawsze przy pomocy języka JavaScript, bez względu na ustawienie konfiguratora "Ustawienia języka skryptowego" w obiekcie PmPanel.
 

Element graficzny PmiCanvas zapewni automatyczne wywołanie zdarzenia rysowania 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 rozmiarów elementu graficznegoPmiCanvas 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) elementu graficznego PmiCanvas. 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) elementu graficznego rodzica (tła) PmiCanvas (ważne dla wżłobionego elementu - 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) elementu PmiCanvas, 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 w znaczniku <canvas>.

Patrz również:
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice