Patrz: obiekt
PmgCanvas.
Obiekt
PmgCanvas na stałe zawiera powierzchnię do rysowania (rastrowy obrazek w pamięci -
bitmap) o wielkości
Pmg obiektu. Powierzchnia do rysowania (obiekt
CanvasCtx) jest udostępniona w zdarzeniu
onDraw (
JavaScript) przy pomocy metody
pEvent.GetCtx(state). Podczas fizycznego rysowania obiektu do okna obrazu PROMOTIC zostanie wykorzystana bieżąca zawartość powierzchni do rysowania, nie dochodzi do odświeżenia powierzchni do rysowania w zdarzeniu
onDraw.
Koncepcja front/tło:
Jeżeli animowana 2D zawartość jest złożona, duża, oraz niektóre jej części mogą się często zmieniać, wtedy ztytnio to obciąża procesor. Rozwiązaniem jest rozdzielenie zawartości obiektu
PmgCanvas złożonego do dwu obiektów
PmgCanvas nad sobą. Na
tło statyczne, bardziej złożone (
background) oraz
front dynamiczny, prostszy (
foreground,
dynamic).
Pmg obiekt przedstawiający dynamiczny front zostania wżłobiny do statyczniejszego tła, w taki sposób podwstanie jeden złożony
Pmg obiekt. Chodzi o standardowy sposób, przy pomocy którego zrealizowanano wiele wstępnie zkonfigurowanych obiektów
PmgCanvas.
Wżłobiony
Pmg obiekt (front) może mieć dostęp również do zmiennych
Vars nadrzędnego
Pmg obiektu (tła). Podczas zmiany zmiennych
Vars nadrzędnego
Pmg obiektu (tła) jest zapewnione odświeżenie również wżłobionego obiektu (front). Patrz konfigurator "
W onDraw będzie zastosowana metoda pEvent.GetParentVar(sName)".
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) lub (bardziej powszechne) niezinicjowaną (pustą) powierzchnię do rysowania patrz
pEvent.GetCtx(0).
3)
Jeżeli zmieniły się zmienne (
Zmienne)
nadrzędnego Pmg obiektu (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>.
Zalety:
- Rysowanie w skrypcie umożliwia rysowanie warunkowe, rysowanie powtarzalne, przeliczanie, uzyskiwanie oraz formatowanie wartości, (polecenia
if...else,
for, obiekt
Pm, zmienne lokalne
Zmienne, itd.).
- Działa również w
Web panelu, rysowanie bezpośrednio w przeglądarkach komputerów klienta, wsparcie większości przeglądarek. Właściwości i metody do rysowania znajdują się w obiekcie
CanvasCtx. Chodzi o standardowy
HTML5 tag
<canvas>, dla którego istnieje wiele przykładów oraz nawet online edytorów a testerów.
- Szybszy od
SVG w
PmgRasterImage (lokalnie oraz w Webie) oraz wspiera również wyświtlanie tekstów.
- Podczas edycji obiektu
PmgCanvas włącznie jego zdarzenia rysowania
onDraw jest obiekt rysowany odrazu w środowisku deweloperskim
w edytorze grafiki.
- Możliwość dla projektantów dostosowania sobie dostarczanych wstępnie zkonfigurowanych paneli opartych na PmgCanvas.
- W Webie jest grafika (skrypty rysowania) bezpośrednio częścią składową panela, nie trzeba pobierać dodatkowe pliki z obrazkami.