Home   FORUM   Toplista   HTML   CSS   JavaScript   PHP   DIZAJN   SEO   Mapa
KONTAKT
izuzetan[at]gmail.com






TOP LISTA SAJTOVA

Saving i restoring stanja

Da bi smo mogli kreirati složenije crteže moramo odredjena stanja (pozicije crteža) spremati (uslovno rečeno "memorisati") i po nekad obnavljati. U narednim primerima će biti sve jasnije. Funkcije za to su:

save( )
restore( )

Odredjena CANVAS stanja možemo po želji memorisati save( ) funkcijom, i takodje po želji možemo ih pozivati restore( ) funkcijom kako bi smo ih ponovo promenili, i opet prikazali. Tako možemo napraviti vrlo složene crteže sa malo pisanja. Crtanje stanja sastoji se od:

  • Transformacija (tj. translacije, rotacije i skaliranje - vidi u nastavku)
  • Vrednosti strokeStyle, fillStyle, globalAlpha, LineWidth, lineCap, lineJoin, miterLimit, shadowOffsetX, shadowOffsetY, shadowBlur, shadowColor, globalCompositeOperation svojstva
  • Trenutni clipping put, što ćemo videti u sledećem odeljku.

Evo jednog kraćeg primera koji demonstrira save() i restore() funkcije:

function crtaj() {
canvas = document.getElementById("kocke");
  if (canvas.getContext) {
    ctx = canvas.getContext("2d");
    ctx.fillRect(0,0,150,150);
        // crtanje pravougaonika
    ctx.save();
        // učitavanje pošetnog stanja crteža
    ctx.fillStyle = "#09F"
        // vršimo nove promene istog crteža, ali imajte
        // na umu da smo prethodno stanje zapamtili
    ctx.fillRect(15,15,120,120);
        // crtamo pravougaonik sa novim dimenzijama
    ctx.save();
        // pamtimo nove promene
    ctx.fillStyle = "#FFF"
        // vršimo nove promene
    ctx.globalAlpha = 0.5;
    ctx.fillRect(30,30,90,90);
        // Crtamo novi pravougaonik
    ctx.restore();
        // vraćamo predjašnje stanje
    ctx.fillRect(45,45,60,60);
        // pravougaonik sa obnovljenim postavkama prepravljamo
    ctx.restore();
        // vraćamo predjašnje originalno stanje
    ctx.fillRect(60,60,30,30);
        // pravougaonik sa obnovljenim originalnim
        //postavkama po drugi put prepravljamo
  }
}

Ovaj primer ilustriruje kako učitavanjem stanja možemo manjim pisanjem nacrtati veći broj pravougaonika.

Copyright © 2010 BUbaj. Powered By bubaj.com
JavaScript    Sintaksa    Osnovne funkcije    Kontrolne strukture    Dogadjaji    Browser funkcije    HTML DOM objekti    Tabele    JS i CSS    CANVAS