Know-how für Kreative

Inhaltsverzeichnis
1 Erste Schritte
2 Versionen
3 Einführung in die Programmierung
4 Die Entwicklungsumgebung
5 Regeln
6 Anweisungen und Aktionen
7 Werte und Datentypen
8 Ausdrücke und Operatoren
9 Funktionen
10 Kontrollstrukturen
11 Dokumenten-Objektmodell und Gültigkeitsbereich (Scope)
12 Ereignisse
13 Objekterstellung
14 Vererbung
15 Movieclips
16 ActionScript 2.0
17 Komponenten
18 Codedesign und Konzeption
19 Flashdetection
20 Aussergewoehnliche Benutzerfuehrung
21 D mit Flash
22 Macromedia Central
23 HTML
24 JavaScript, ActiveX und Java
25 Flash undokumentiert
26 Vergangenheit, Gegenwart und Zukunft
27 Kurzreferenz
28 Buchtipps
29 Links
30 Die CD-ROM zum Buch
Index
Download: - ZIP, ca. 9,8 MB
Buch bestellen
Ihre Meinung?
<< zurück | Galileo Design / <openbook> / ActionScript | vor >>
ActionScript 1 und 2 von Sascha Wolter (http://www.saschawolter.de/) Objektorientierung und Codedesign mit Flash MX 2004
ActionScript 1 und 2 672 S., mit CD, Referenzkarte, 44,90 Euro Galileo Design ISBN 3-89842-221-6 |
| Kapitel 16 ActionScript 2.0
|  | 16.1 Klassen
|  |  | 16.1.1 class
|  |  | 16.1.2 Technisch gesehen
|  |  | 16.1.3 Klassenpfade
|  |  | 16.1.4 ASO (ActionScript Objekt)
|  | 16.2 Packages
|  |  | 16.2.1 import
|  | 16.3 Typisierung
|  | 16.4 Vererbung
|  |  | 16.4.1 extends
|  | 16.5 Schnittstellen
|  |  | 16.5.1 Interfaces erstellen
|  |  | 16.5.2 Implements
|  | 16.6 Öffentlich oder privat
|  | 16.7 Statisch
|  |  | 16.7.1 static
|  |  | 16.7.2 Öffentlich oder privat
|  |  | 16.7.3 Statisch versus Singleton
|  | 16.8 Getter und Setter
|  |  | 16.8.1 addProperty
|  |  | 16.8.2 Getter und Setter in ActionScript 2.0
|  | 16.9 Dynamisch
|  |  | 16.9.1 dynamic
|  | 16.10 Intrinsic
## 16.5 Schnittstellen ##### ActionScript 2.0\Schnittstellen Zu den Stärken der Objektorientierung zählt, dass Objekte feste Schnittstellen verwenden, über die sie miteinander kommunizieren. Das macht es bei komplexen Projekten einfacher, Objekte unterschiedlichen Typs zu nutzen, solange die Schnittstellen identisch sind. In einem Shop sollte es für die Ermittlung des Preises beispielsweise unerheblich sein, ob es sich um eine Hose oder eine Jacke handelt:
    gesamtPreis = jeans.ermittlePreis()+sacko.ermittlePreis();
Schnittstellen (engl. Interfaces) helfen dabei, solche Strukturen festzulegen, indem sie Methoden und deren Parameter vorschreiben. Die Beschreibung einer Methode inklusive der Typen für die Parameter und die Rückgabe bezeichnet man dabei als Signatur. Ein Interface ist somit nichts anderes als eine Sammlung von Signaturen. Schnittstellen stellen die Verwendbarkeit von Objekten in einem speziellen Kontext sicher, da die in der Schnittstelle definierten Signaturen implementiert sein müssen! Ein angenehmer Nebeneffekt von Schnittstellen ist, dass so Funktionalität auch in Gruppen zusammengefasst werden kann. Sämtliche Methoden, die von den Produkten in einem Shop beherrscht werden müssen, könnten z.B. in der Schnittstelle »Verkaufbar« deklariert sein. ##### Polymorphie Falls Objekte aufgrund gleicher Signaturen in einem Programm gegeneinander ausgetauscht werden können, dann spricht man von Polymorphie. Die Gleichartigkeit von Methoden kann durch Schnittstellen sichergestellt werden. ### 16.5.1 Interfaces erstellen Die Benennung und Speicherung von Interfaces sowie die Organisation in Packages verhält sich genauso wie bei Klassen. Eine Schnittstelle erstellen Sie wie eine Klasse, nur dass eine Schnittstelle nichts weiter als die Deklaration enthält. Die eigentliche Programmierung der Funktionalität geschieht in den Klassen, die die Schnittstelle dann verwenden.
    interface interfaceName {
       // Deklaration von Methoden
    }
Innerhalb einer Schnittstelle dürfen nur Methoden und keine Eigenschaften deklariert werden (siehe »Öffentlich und privat«, Seite 412). Private oder statische Methoden sind ebenfalls nicht erlaubt. Das Schlüsselwort public für Methoden ist dabei wie auch schon bei den Klassen optional:
    interface Einkaufen {
       function sucheAus();
       public function kaufe();
    }
##### Signatur Natürlich darf hier bereits typisiert werden, um die Umsetzung und den Aufruf der Methoden typsicher zu gestalteten. Hier spricht man dann auch von der Signatur einer Methode:
    interface Einkaufen {
       function sucheAus(obj:Object):Void;
       function kaufe(anzahl:Number):Void;
    }
Eine Schnittstelle speichern Sie als ActionScript-Datei unter dem Namen der Schnittstelle ab. Wie bei Klassen muss der Name der Schnittstelle mit dem Namen der Datei identisch sein. Außerdem sind auch hier wieder Packages erlaubt (siehe »Packages« ab Seite 403))! ### 16.5.2 Implements Die eigentliche Programmierung der Methoden aus einer Schnittstelle geschieht in den Klassen, die die Schnittstelle verwenden.
    class Frau implements Einkaufen {
       var ausgesuchtesObjekt:Object;
       function sucheAus(obj:Object):Void {
          ausgesuchtesObjekt = obj;
       }
       function kaufe(anzahl:Number):Void {
          trace("Ich kaufe "+String(anzahl)+" "+String(ausgesuchtes
    Objekt));
       }
    }
Sollten bei der Verwendung einer Schnittstelle abweichende Signaturen programmiert oder die Umsetzung einer Methode sogar ganz vergessen werden, dann meldet Flash dies als Fehler. Die Klasse mit der Schnittstelle kommt im Folgenden wie jede andere Klasse zum Einsatz:
    frau = new Frau();
    frau.sucheAus("Äpfel");
    frau.kaufe(5);
    // Ausgabe ist "Ich kaufe 5 Äpfel"
Klassen dürfen auch mehrere Schnittstellen gleichzeitig verwenden – Hauptsache, Sie vergessen nicht, sämtliche zugehörigen Methoden zu implementieren:
    class Frau implements Einkaufen, Tanzen, Kochen, Singen {
       ...
    }
##### Vererben von Schnittstellen Schnittstellen dürfen von anderen Schnittstellen erben und somit eine vorhandene Schnittstelle erweitern. Beispielsweise haben Sie eine Schnittstelle »Einkaufen« und möchten nur eine Schnittstelle »Verkaufen« umsetzen, die auch das »Einkaufen« umfasst. Dann reicht es aus, dass die Schnittstelle »Verkaufen« von der Schnittstelle »Einkaufen« erbt:
    interface Verkaufen extends Einkaufen {
       function verkaufe (anzahl:Number):Void;
    }
Eine Klasse, die diese Schnittstelle implementiert, muss dann aber neben den Methoden vom »Verkaufen« auch die Methoden vom »Einkaufen« umsetzen.
<< zurück | <top> | vor >>
Zum Katalog
ActionScript 1 und 2 bestellen
Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen? Ihre Meinung
Buchtipps
| Einstieg in ActionScript
| Einstieg in Flash 8
| Flash 8 und PHP
| Flash 8-Tutorials
| Dreamweaver 8
| Webseiten programmieren und gestalten
Shopping
Versandkostenfrei bestellen in Deutschland und Österreich Info

Copyright © Galileo Press GmbH 2005
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

[Galileo Design]
Galileo Press GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de