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.9 Dynamisch ##### ActionScript 2.0\dynamisch Dank der mit Version MX 2004 in Flash eingefuehrten Typisierung ueberprueft der Compiler nun, ob Methoden und Eigenschaften in einer Klasse vorhanden sind. Doch in einigen wenigen Faellen ist genau dieses Verhalten nicht gewuenscht. Wenn Sie beispielsweise eine Klasse erstellen, deren Instanzen als Container dienen und zur Laufzeit mit weiteren Eigenschaften und Methoden versehen werden sollen, stoert Sie dieses Verhalten – denn dann muessen Sie an dieser Stelle auf die Typisierung verzichten. Aber ohne Typisierung zeigt Flash nicht einmal mehr an, falls eine vorhandene Eigenschaft oder Methode mit falschen Parametern genutzt wird. ##### Movieclips sind bereits dynamisch! Dynamische Klassen bieten hier Abhilfe, indem zwar die Typprüfung auf vorhandene Eigenschaften und Methoden weiterhin durchgeführt wird, aber das Hinzufügen weiterer Methoden und Eigenschaften dennoch zulässig ist. Movieclips sind z.B. von Natur aus dynamisch, da ihnen beliebige zusätzliche Methoden und Eigenschaften hinzugefügt werden müssen. Schließlich möchten Sie in einem Movieclip weitere Movieclips platzieren, um ein Dokumenten-Objektmodell mit grafischen Elementen aufbauen zu können! Und auch die Klasse LoadVars ist dynamisch, da Instanzen von ihr das Ergebnis einer Serveranfrage als Eigenschaften erhalten, deren Bezeichner und Typ im Vorfeld nicht bekannt sein muss ### 16.9.1 dynamic ##### ActionScript 2.0 Hier klicken, um das Bild zu Vergrößern Abbildung 16.5 Instanzen von ActionScript 2-Klassen können nicht mehr beliebig um neue Eigenschaften und Methoden erweitert werden, sofern der korrekte Typ angegeben wurde, außer die Klasse ist dynamisch. Ein Effekt der Typisierung ist, dass Instanzen nicht mehr um Eigenschaften und Methoden erweitert werden können, sofern diese nicht bereits in der Klasse definiert wurden. Instanzen dynamischer Klassen hingegen sind um neue Mitglieder erweiterbar und verhalten sich somit wie das Pendant im herkömmlichen ActionScript:
    dynamic class Freundin {
       var kreativ;
       function Freundin() {
          kreativ = true;
       }
       function tanze() {
          trace("yippi!");
       }
    }
Eine Frau kann mit Hilfe einer dynamischen Klasse direkt über Eigenschaften mit zusätzlichen Kindern versehen werden. Die zugehörige Klasse könnte so aussehen:
    dynamic class Frau {
       var alter:Number;
       var name:String;
    }
Eine Instanz dieser Klasse versehen Sie wie folgt mit zusätzlichen Eigenschaften oder Methoden:
    // Typisierung ist notwendig, da sonst keine Typprüfung durchgeführt wird
    var mutter:Frau;
    mutter = new Frau();
    // Typfehler, da anders deklariert
    mutter.alter = new Date();
    // OK
    mutter.alter = 29;
    mutter.name = "Tanja";
    // Füge Eigenschaften hinzu (O.K., da dynamisch)
    mutter.robin = new Kind();
    mutter.jamie = new Kind();
Da die Typisierung jedoch zur Laufzeit ohnehin nicht mehr überprüft wird, kann eine nicht dynamische Klasse durch etwas kryptischere Schreibweisen leicht »ausgetrickst« werden. Den Zugriff auf Objekte anhand ihres Namens als Zeichenkette wie bei eval("instanzname") oder this["instanzname"] überprüft Flash zu keinem Zeitpunkt auf den Typ. Doch sollte dieses Vorgehen vermieden werden, da die Typisierung ja sonst keinen Sinn mehr macht und der Code doch wieder schwer les- und wartbar wird – ganz abgesehen von zusätzlichen Fehlerquellen! ##### Vererbung bei dynamischen Klassen Die Unterklassen von dynamischen Klassen sind bis auf eine Ausnahme auch dynamisch. Nur bei der Klasse MovieClip gilt diese Regel nicht. Denn obwohl die Klasse MovieClip dynamisch ist, sind Unterklassen von MovieClip dies nicht, außer Sie spezifizieren diese ausdrücklich als dynamisch.
<< 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