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 7 Werte und Datentypen
  gp 7.1 Variablen
    gp 7.1.1 Gültigkeitsbereich (engl. Scope)
    gp 7.1.2 Eigenschaften
    gp 7.1.3 Konstanten
    gp 7.1.4 Variablen mit set deklarieren
    gp 7.1.5 Variablen mit dem Zuweisungsoperator deklarieren
    gp 7.1.6 Lokale Variablen mit var deklarieren
    gp 7.1.7 Globale Variablen mit _global deklarieren
    gp 7.1.8 Variablen löschen
    gp 7.1.9 Den Typ einer Variablen ermitteln
  gp 7.2 Datentypen
    gp 7.2.1 Wahrheitswert (boolean)
    gp 7.2.2 Zahl (number)
    gp 7.2.3 Zeichenketten (string)
    gp 7.2.4 Null
    gp 7.2.5 Undefiniert (undefined)
    gp 7.2.6 Komplexe Datentypen (Objekte)
  gp 7.3 Typumwandlung
    gp 7.3.1 parseInt
    gp 7.3.2 parseFloat
    gp 7.3.3 Boolean (Funktion)
    gp 7.3.4 Number (Funktion)
    gp 7.3.5 String (Funktion)
    gp 7.3.6 Array (Funktion)
    gp 7.3.7 Object (Funktion)
  gp 7.4 Typisierung
    gp 7.4.1 Typen festlegen
    gp 7.4.2 Typisierung und Codehinweise
    gp 7.4.3 Laufzeit versus Kompilierung


Rheinwerk Design - Zum Seitenanfang

7.4 Typisierung  downtop

Mit Flash MX 2004 hat Macromedia Typisierung in ActionScript eingebaut. Typisierung erlaubt es, den Typ einer Variablen festzulegen, um eine falsche Verwendung zu vermeiden. Zum einen verhindert Flash so bereits beim Veröffentlichen bzw. beim Kompilieren, dass Methoden oder Eigenschaften verwendet werden, die gar nicht existieren, und zum anderen zeigt Flash auch an, wenn die Parameter oder Rückgabewerte von Funktionen oder Methoden falsch sind. Beispiel:

var menge:Number;

// Folgende Anweisung ist erlaubt

menge = 123;

// Folgende Anweisung erzeugt einen Fehler

menge = "123";

Siehe ActionScript 2.0 ab Seite 396

Gerade bei sehr großen Projekten mit mehreren Entwicklern ist die Typisierung ein mächtiges Werkzeug, um Fehler zu vermeiden. Doch leider funktioniert die Typsicherheit nicht zur Laufzeit, und zum anderen unterstützt Flash die typsichere Programmierung ohnehin nur, wenn die ActionScript 2.0-Option im Register Flash des Menüs Datei Voreinstellungen für das Veröffentlichen aktiviert ist. Diese steht erst mit Flash MX 2004 zur Verfügung, funktioniert aber auch bei Flash 6-Projekten.


Rheinwerk Design - Zum Seitenanfang

7.4.1 Typen festlegen  downtop

Den Typ einer Variablen oder Eigenschaft legen Sie durch eine Deklaration mit dem Schlüsselwort var fest, indem Sie dem Bezeichner getrennt durch einen Doppelpunkt den Typ bei der Erzeugung zuweisen:

var bezeichner:Typ;

Natürlich dürfen Sie der Variablen auch gleich einen Wert zuweisen:

var bezeichner:Typ = Wert;

Dies sollte aber wegen der besseren Lesbarkeit besser in zwei aufeinander folgenden Anweisungen geschehen:

var bezeichner:Typ;
bezeichner = Wert;

Anstelle des Typs geben Sie immer den Klassennamen des zugrunde liegenden Typs an:

var meineZahl:Number;
var meineZeichenkette:String;
var meinObjekt:Object;
var meineListe:Array;

Die Parameter einer Funktion typisieren Sie auf ganz ähnliche Art und Weise, indem Sie für jeden Parameter den Typ ebenfalls getrennt durch einen Doppelpunkt angeben:

function erzeugeSterne(ziel:MovieClip, anzahl:Number) {
   var i:Number;
   var x:Number;
   var y:Number;
   var mc:MovieClip;
   for (i=anzahl; i>0; i--) {
      x = Math.random()*550;
      y = Math.random()*400;
      // Ein Symbol mit dem Verknüpfungsnamen "stern" wird benötigt
      mc = ziel.attachMovie("stern", "stern"+String(i), i);
      mc._x = x;
      mc._y = y;
   }
}
erzeugeSterne(_root, 10);
Rückgabewert

Sollte eine Funktion einen Rückgabewert haben, dann können Sie diesen ebenfalls typisieren:

// Berechne den Body-Mass-Index für Männer
function berechneBMI(groesse:Number):Number {
   var bmi:Number;
   bmi = (groesse-100)/1.05;
   return bmi;
}
meinBMI = berechneBMI(178);

Und sollte eine Funktion keinen Rückgabewert besitzen, dann schadet es nicht, dies ebenfalls durch den Typ Void anzugeben:

function gibNichtsZurueck():Void {
   // Anweisungen
}
Ohne ActionScript 2.0 geht nur die Hälfte

Leider ist eine Typisierung mit selbst erstellten Klassen nur möglich, wenn Sie diese Klassen mit ActionScript 2.0 und nicht durch Prototypen in ActionScript 1 erzeugt haben. Ohne ActionScript 2.0 beschränkt sich die Typsicherheit auf die in Flash bereits eingebauten Typen.


Rheinwerk Design - Zum Seitenanfang

7.4.2 Typisierung und Codehinweise  downtop

Durch die Typisierung erreichen Sie, dass Flash Codehinweise anzeigt. Sofern Flash den angegebenen Typ kennt, blendet der ActionScript-Editor dann die verfügbaren Methoden und Eigenschaften ein (siehe Codehinweis im Kapitel »Grundlagen« auf Seite 85).


Rheinwerk Design - Zum Seitenanfang

7.4.3 Laufzeit versus Kompilierung  toptop

Die Typsicherheit von Flash beschränkt sich leider auf das Kompilieren, also auf den Moment, in dem Sie Ihre Anwendung als SWF-Datei veröffentlichen. In diesem Fall gibt Flash alle erkannten Typfehler im Ausgabefenster aus.

Leider lässt sich der Compiler von Flash jedoch recht einfach »austricksen«, so dass zur Laufzeit weiterhin Typfehler möglich sind. Diese erkennt Flash jedoch dann nicht mehr. Es reicht bereits aus, Bezeichnernamen dynamisch zu erzeugen, um die Typsicherheit zu umgehen:

var meineZahl:Number;

this["meineZahl"] = "Ich bin keine Zahl!";

Ebenfalls ist es mit der Typsicherheit dahin, wenn die Werte zur Laufzeit von außen, wie z.B. einem Server, eingelesen werden. Doch auch diese Schwierigkeiten lassen sich zumindest teilweise mit ein wenig Disziplin umgehen. Mehr dazu finden Sie in den Kapiteln 18, »Codedesign«, und 16, »ActionScript 2.0«.

Typfehler zur Laufzeit ermitteln

Im Zusammenhang mit Flex hat Macromedia zumindest unter Windows eine Möglichkeit eingeführt, den Programmablauf inkl. Laufzeitfehlern zu protokollieren, sofern der Flash Debug Player installiert ist und die SWF-Datei außerhalb der Entwicklungsumgebung abspielt.

Innerhalb des Benutzerordners (unter Windows XP ist dies meist das Verzeichnis C:\Dokumente und Einstellungen\[Benutzername]) findet sich die Datei mm.cfg, in der die dafür notwendigen Einstellungen festgelegt werden. Sollte diese Datei bei Ihnen nicht vorhanden sein, dann können Sie diese auch selber anlegen.

Die folgenden zwei Zeilen aktivieren einen Fehlerbericht und das Protokollieren von trace-Anweisungen:

ErrorReportingEnable=1
TraceOutputFileEnable=1

Die maximale Anzahl an Meldungen legt MaxWarnings=500 fest.

Normalerweise schreibt Flash dann alle Meldungen in die Datei flashlog.txt, die sich im selben Verzeichnis wie die Datei mm.cfg befindet. Sie können über den Parameter TraceOutputFileName=C:\log.txt aber auch eine andere Datei angeben.

 << 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