Rheinwerk Design < openbook > Rheinwerk Design - Know-how für Kreative.
Know-how für Kreative

 << zurück
ActionScript 1 und 2 von Sascha Wolter (http://www.saschawolter.de/)
Objektorientierung und Codedesign mit Flash MX 2004
Buch: ActionScript 1 und 2

ActionScript 1 und 2
672 S., mit CD, Referenzkarte, 44,90 Euro
Rheinwerk Design
ISBN 3-89842-221-6
gp Kapitel 16 ActionScript 2.0
  gp 16.1 Klassen
    gp 16.1.1 class
    gp 16.1.2 Technisch gesehen
    gp 16.1.3 Klassenpfade
    gp 16.1.4 ASO (ActionScript Objekt)
  gp 16.2 Packages
    gp 16.2.1 import
  gp 16.3 Typisierung
  gp 16.4 Vererbung
    gp 16.4.1 extends
  gp 16.5 Schnittstellen
    gp 16.5.1 Interfaces erstellen
    gp 16.5.2 Implements
  gp 16.6 Öffentlich oder privat
  gp 16.7 Statisch
    gp 16.7.1 static
    gp 16.7.2 Öffentlich oder privat
    gp 16.7.3 Statisch versus Singleton
  gp 16.8 Getter und Setter
    gp 16.8.1 addProperty
    gp 16.8.2 Getter und Setter in ActionScript 2.0
  gp 16.9 Dynamisch
    gp 16.9.1 dynamic
  gp 16.10 Intrinsic


Rheinwerk Design - Zum Seitenanfang

16.9 Dynamisch  downtop

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


Rheinwerk Design - Zum Seitenanfang

16.9.1 dynamic  toptop

ActionScript 2.0

Abbildung
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
  
  Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: ActionScript 1 und 2
ActionScript 1 und 2
bestellen
 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchtipps
Zum Rheinwerk-Shop: JavaScript






 JavaScript


Zum Rheinwerk-Shop: jQuery






 jQuery


Zum Rheinwerk-Shop: Responsive Webdesign






 Responsive Webdesign


Zum Rheinwerk-Shop: Suchmaschinen-Optimierung






 Suchmaschinen-
 Optimierung


Zum Rheinwerk-Shop: Schrödinger lernt HTML5, CSS3 und JavaScript






 Schrödinger lernt
 HTML5, CSS3
 und JavaScript


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo





Copyright © Rheinwerk Verlag 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.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern