Promotic
WikipediaLinkedInYoutubeTwitterFacebook

PmiCanvas - Podrobný popis objektu

Viz: Objekt PmiCanvas
 
Grafický prvek PmiCanvas trvale obsahuje kreslící plochu (rastrový obrázek v paměti - bitmap) o velikosti grafického prvku. Kreslící plocha (v podobě objektu CanvasCtx) je zpřístupněna v kreslící události onDraw (JavaScript) pomocí metody pEvent.GetCtx(state). Při fyzickém kreslení prvku do okna obrazu systémem PROMOTIC se použije aktuální zapamatovaný obsah kreslící plochy, nedochází k překreslování kreslící plochy v události onDraw.
 
Koncept prvků popředí/pozadí:

Pokud je animovaný 2D obsah složitý, plošně velký, a přitom se některá jeho část často mění, dochází ke zbytečnému vytěžování procesoru. Řešením je rozdělit obsah složitého prvku PmiCanvas na dva prvky PmiCanvas nad sebou. Na statičtější složitější pozadí (background) a dynamické jednodušší popředí (foreground, dynamic). Prvek představující dynamické popředí se zanoří do statičtějšího pozadí, takže vznikne jeden složený prvek. Jedná se o standardní způsob, kterým je řešeno mnoho předkonfigurovaných prvků PmiCanvas.

Vnořený prvek (popředí) může přistupovat i k proměnným Vars rodičovského prvku (pozadí). Při změně proměnných Vars rodičovského prvku (pozadí) je zajištěno překreslení i vnořeného prvku (popředí).

Viz konfigurátor "V onDraw se bude používat metoda pEvent.GetParentVar()".
 

Grafický prvek PmiCanvas zajistí automatické vyvolání kreslící události onDraw pro překreslení kreslící plochy CanvasCtx v případě potřeby:

1) Když je kreslící plocha neinicializovaná (prázdná) po otevření obrazu, po změně velikosti grafického prvku PmiCanvas nebo po zavolání metody CtxReset. V tomto případě je kreslící plocha vždy prázdná (průhledná).
2) Když se změnily vstupní proměnné (Proměnné) grafického prvku PmiCanvas. Kreslící metoda si může vyžádat buď existující kreslící plochu viz pEvent.GetCtx(1) nebo (běžnější případ) neinicializovanou (prázdnou) kreslící plochu viz pEvent.GetCtx(0).
3) Když se změnily vstupní proměnné (Proměnné) rodičovského grafického prvku (pozadí) PmiCanvas (platí pro vnořený prvek - popředí).

Kreslící plocha se tedy překreslí v události onDraw jenom při změně. Pokud nedojde ke změně, není nutno kreslící plochu skriptem překreslovat a používá se jeho zapamatovaná hodnota. Událost onDraw má přístup pouze k hodnotám lokálních proměnných (Proměnné) prvku PmiCanvas, které tak představují datové rozhraní pro kreslící funkci. Dále může využívat objekt Pm a objekt kreslící plochy CanvasCtx. Skriptové rozhraní objektu CanvasCtx zpřístupňuje většinu metod a vlastností pro 2D kreslení používaných v HTML5 v tágu <canvas>.

 
Výhody:
- Kreslení skriptem umožňuje podmíněné kreslení, opakované kreslení, přepočítávání, získávání a formátovaní hodnot, (příkazy if...else, for, objekt Pm, lokální proměnné Proměnné, atd.).
- Funkční i na webu, kreslení přímo v prohlížečích na klientském PC, podpora většiny prohlížečů. Metody a vlastnosti pro vlastní kreslení jsou v objektu CanvasCtx. Jedná o standardní HTML5 prvek canvas pro který existuje mnoho příkladů a dokonce online editorů a testerů.
- Rychlejší než SVG v PmiRasterImage (lokálně i na WEBu) a podporuje i zobrazování textů.
- Při editaci prvku PmiCanvas včetně jeho kreslící události onDraw je prvek vykreslován ihned ve vývojovém prostředí v editoru obrazu.
- Možnost pro projektanty si upravit dodávané předkonfigurované prvky založené na PmiCanvas.
- Na WEBu je grafika (kreslící skripty) přímo součástí obrazu, nemusí se stahovat dodatečné soubory s obrázky.
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice