EaselJS: Vererbung

Synopsis: Creating custom classes that extend display objects.
Topics: inheritance
Target: EaselJS v0.5.0

Vererbung

Neue Klassen Definitionen zu erschaffen, die Display Objekte erweitern, ist einfach und unterstützt Verkapselung und leicht wieder verwendbare visuelle Elemente. In diesem Tutorial wird eine Methode gezeigt, eine Klasse zu erweitern. Aber es gibt viele andere Optionen. Benutze die für dich komfortabelste und wende die Lektion an, die du hier lernst.
(Anmerkung von mir) Schaue dir zu diesem Beispiel die Original Button.js an, um das Ganze besser zu verstehen. Außerdem verweise ich auf folgendes Javascript Tutorial zum Thema Klassen und Objekte in Javascript.

Wir erzeugen eine Button Klasse , die die Container Klasse erweitert.

In Zeile 1 & 15 wird eine anonyme wrapper Funktion erstellt und aufgerufen ( damit der globale Bereich nicht "verunreinigt" wird). In Zeile 3 wird eine neue Konstruktor Funktion definiert, dann wird in Zeile 6 sein prototype auf eine neue Container Instanz gesetzt. Das bewirkt, dass die neue Klasse alle Eigenschaften und Methoden von der Container Klasse erbt.

The initialize method

Im Konstruktor in Zeile 4, rufen wir die initialize Methode auf und lassen die Konstruktor Parameter durchlaufen. Die initialize Methode behandelt das Set Up für neue Instanzen und es ist lebensnotwendig, dass es aufgerufen wird.

In dieser Klasse überschreiben wir die Container's initialize Methode, um ein selbst erstelltes Setup zu erzeugen, allerdings müssen wir sicherstellen, dass die übergeordnete, super Klassen initialize Methode aufgerufen wird. Das ist sehr wichtig, besonders bei Klassen, die vom Container erben.

Um das zu erreichen, speichern wir die existierende initialize Methode (Zeile 8), definieren sie neu (Zeile 9), und stellen sicher, dass wir sie als erstes in der neuen Methode aufrufen (Zeile 10).

Finishing up

Zum Schluß in Zeile 14 übertragen wir unsere Klasse zurück in den globalen (window) Bereich, um ihn für unsere Anwendung erreichbar zu machen. Nun kann die Klasse instanziiert werde und der Display Liste hinzugefügt werden, wie jedes andere Display Objekt.

Check out demo.html and Button.js to see an example this in action.