Promotic
WikipediaLinkedInYoutubeTwitterFacebook

PmgCanvas - Podrobný popis objektu

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

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

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

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

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

1) Pokud je kreslící plocha neinicializovaná (prázdná) po otevření obrazu, po změně velikosti objektu PmgCanvas nebo po zavolání metody CtxReset. V tom případě je kreslící plocha vždy prázdná (průhledná).
2) Pokud se změnily vstupní proměnné (Proměnné) objektu PmgCanvas. 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) Pokud se změnily proměnné (Proměnné) rodičovského Pmg objektu (pozadí) PmgCanvas (platí pro vnořený objekt - popředí).

Kreslící plocha se tedy překreslí v události onDraw jenom při změně. Pokud nedojde ke změně, pak 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é) objektu PmgCanvas, 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í ve skriptu 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.).
- Je funkční i ve Web obrazu, kreslení přímo v prohlížečích na klientském PC, podpora většiny prohlížečů. Vlastnosti a metody pro kreslení jsou v objektu CanvasCtx. Jedná o standardní HTML5 tag canvas pro který existuje mnoho příkladů a dokonce online editorů a testerů.
- Rychlejší než SVG v PmgRasterImage (lokálně i na Webu) a podporuje i zobrazování textů.
- Při editaci objektu PmgCanvas včetně jeho kreslící události onDraw je objekt vykreslován ihned ve vývojovém prostředí v editoru grafiky.
- Možnost pro projektanty si upravit dodávané předkonfigurované objekty založené na PmgCanvas.
- Na Webu je grafika (kreslící skripty) přímo součástí obrazu, nemusí se stahovat dodatečné soubory s obrázky.
Viz také:
- CanvasCtx (objekt)
- CanvasCtxExt (objekt)
- Událost onDraw

Historie:
Pm8.02.05: Vytvořeno
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice