Java Reference
In-Depth Information
spiegeln. Unter http://downloads.hanser.de inden Sie das Beispiel kap14_27.html für eine
praktische Anwendung.
14.5.1.14■Kompositionen und Clipping
Wenn Sie in einem Canvas -Element mehrere Formen kombinieren wollen, können Sie mit
der Eigenschat globalCompositeOperation die Art der Komposition beeinlussen. Das
betrit im Wesentlichen den Fall, dass sich Formen überdecken. Im Vorgabefall überdeckt
jede neue Form die vorangegangen. Das entspricht dem Wert source-over für die Eigen-
schat globalCompositeOperation . Mit destination-over können Sie die neue Form aber
auch dahinter legen. Die Möglichkeiten gehen aber noch weiter, wobei wir sie hier nur
andeuten. So können Sie festlegen, dass nur überlappende Bereiche angezeigt werden (ent-
weder vom vorderen oder hinteren Objekt) oder nur die Bereiche außerhalb, dass Farben
von überlappenden Bereichen verschieden kombiniert werden, usw.
In den gleichen Kontext fällt das sogenannte Clipping. Das ist die Angabe einer Filtermaske.
Alles, was sich außerhalb dieser Filtermaske beindet, kann weggeschnitten werden. Dazu
müssen Sie bloß einen gewöhnlichen Pfad bzw. eine Form erzeugen und dieses Objekt über
einen anderen Bereich legen. Wenn Sie dann die Methode clip() aufrufen, wird der Inhalt
außerhalb der Filtermaske weggenommen und dieser Bereich transparent gesetzt. Unter
http://downloads.hanser.de zeigt das Beispiel kap14_28.html eine Anwendung.
14.5.1.15■Animationen mit Canvas-Objekten
Mit Canvas -Elementen können Sie auch Animationen erstellen. Allerdings gibt es wenig
Neues hier zu erwähnen, wenn Sie Animationen mit DHTML bereits kennen. Oder anders
ausgedrückt  - im Grunde müssen Sie klassische DHTML-Animationen erstellen, denn
Canvas -Elemente wurden im Grunde nicht für Animationen konzipiert. Es ist vielleicht
etwas enttäuschend, aber es gibt aktuell keine speziellen Methoden, die dafür gedacht sind.
Von daher müssen Sie sogar etwas Aufwand betreiben, um die Einschränkungen von
Canvas -Elementen in Hinsicht auf Animationen zu kompensieren. Insbesondere müssen Sie
bei einer Veränderung des Canvas -Bereichs vorhandene Graikelemente beseitigen. Diese
bleiben standardmäßig erhalten, wenn man eine Veränderung zeichnet. Dazu verwenden
Sie am besten die Methode clearRect() , die wir auch bei unseren interaktiven Canvas -
Beispielen verwendet haben. Die Animation selbst wird wie üblich mit - meist rekursiven -
setTimeout() -Aufrufen gestaltet. Das ist altbekannt. Schauen wir uns zum Abschluss der
Behandlung von Canvas -Elementen eine einfache Animation an (kap14_29.js):
Listing 14.56■ Eine Animation mit einem Rechteck
var zeichnenbereich = null;
var i=1;
var j=1;
var zeichnenbereich = null;
var i = 1;
var j = 1;
function zeichnen() {
with (zeichnenbereich) {
clearRect(10, 10, i, j);
strokeRect(10, 10, i++, j++);
}
 
Search WWH ::




Custom Search