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.3 Typumwandlung  downtop

Siehe auch Typisierung auf Seite 192

Um den Typ einer Variablen brauchen Sie sich in ActionScript in der Regel nicht zu kümmern, da Flash diesen automatisch bestimmt und in Berechnungen gegebenenfalls umwandelt (implizite Typkonvertierung). Meistens funktioniert das auch zufrieden stellend – leider nicht immer. Aus diesem Grund sollten Sie das Ergebnis einer Berechnung nicht dem Zufall überlassen und eine explizite Typkonvertierungen durchführen – falls das nötig ist.

Besonders häufig treten Probleme bei arithmetischen Operationen mit Zeichenketten und Zahlen auf. Denn man übersieht schnell, dass eine als Zeichenkette gespeicherte Zahl in einer Variablen kein Wert vom Typ Zahl ist. Die folgenden Anweisungen erzeugen dieselbe Ausgabe, obwohl sie von unterschiedlichem Typ sind:

zahl1 = "1.5";
zahl2 = 1.5;
trace(zahl1);
trace(zahl2);

Ein Blick auf die Variablen innerhalb des Testmodus (Steuerung Film testen und dann Fehlersuche Variablen auflisten) offenbart dann aber doch, dass einmal eine Zeichenkette verwendet wird und einmal der Datentyp Zahl. Falls Sie nun diesen Unterschied nicht beachten, dann geht das bei den meisten Operationen trotzdem gut, da Flash eine automatische Typkonvertierung durchführt:

zahl1 = "1.5";
zahl2 = 1.5;
trace(zahl1-zahl2); // Ergibt 0
trace(zahl1*zahl2); // Ergibt 2.25
trace(zahl1/zahl2); // Ergibt 1

Die Anweisung trace(zahl1+zahl2); ergibt jedoch "1.51.5", da ActionScript den Additionsoperator »+« zum Aneinanderfügen von Zeichenketten verwendet, sobald einer der beteiligten Operanden eine Zeichenkette ist. Um das zu verhindern, verwenden Sie eine der Umwandlungsfunktionen:

trace(zahl1+zahl2); // Ergibt fälschlicherweise "1.51.5"
trace(Number(zahl1)+zahl2); // Ergibt 3
Probleme mit »unpassenden« Typen verhindern

Die folgende Grundregel hilft, Probleme mit Zeichenketten (String) innerhalb von Berechnungen zu vermeiden: Konvertieren Sie alle von einer URL eingelesenen (z.B. loadVariables, loadVars-Objekt oder XML-Objekt) oder durch den Benutzer eingegebenen Daten (Textfelder) in den gewünschten Typ, bevor Sie diese in einer Berechnung verwenden. Denn bei diesen Werten handelt es sich immer um Zeichenketten.

Zur Typumwandlung steht eine ganze Reihe Funktionen zur Verfügung, die Sie der Tabelle »Typumwandlungsfunktionen« auf der nächsten Seite entnehmen.


Tabelle 7.9   Typumwandlungsfunktionen

Funktion Datentyp Egebnis
parsteInt Zeichenkette (string) Ganzzahl (number)
parseFloat Zeichenkette (string) Gleitkommazahl (number)
Boolean beliebig Wahrheitswert (boolean)
Number beliebig Zahl (number)
String beliebig Zeichenkette (string)
Array beliebig Liste (object)
Object beliebig Objekt (object), je nach Parameter von der Klasse, Boolean, Object, String oder Number (siehe Seite 191).

Viele Funktionen und Operatoren erwarten Parameter bzw. Operanden eines speziellen Datentyps. In diesen Fällen konvertiert ActionScript die gegebenen Daten automatisch in das gewünschte Format. Die Regeln entnehmen Sie bitte den folgenden Tabellen.


Tabelle 7.10   Datentyp in einen Wahrheitswert (boolean) umwandeln

Eingabetyp Ergebnis Bemerkung
Undefined false  
Null false  
Boolean Eingabewert (keine Umwandlung)  
Number Das Ergebnis ist false, falls der Wert 0 oder NaN ist. Sonst ist das Ergebnis true.  
String Das Ergebnis is false, falls der Wert eine leere Zeichenkette mit der Länge 0 ist. Sonst ist das Ergebnis true.  
Object true  


Tabelle 7.11   Datentyp in eine Zahl (Number) umwandeln

Eingabetyp Ergebnis Bemerkung
Undefined NaN Bis inkl. Flash 6 ist das Ergebnis 0.
Null NaN Bis inkl. Flash 6 ist das Ergebnis 0.
Boolean Das Ergebnis ist 0, falls der Wert false ist. Sonst ist das Ergbnis 1.  
Number Eingabewert (keine Umwandlung)  
String Soweit möglich konvertiert ActionScript die Zeichenkette in eine Zahl. Siehe auch parseFloat (Seite 187)
Object Soweit möglich konvertiert ActionScript das Objekt in einen primitiven Datentyp und diesen dann in eine Zahl.  


Tabelle 7.12   Datentyp in eine Zeichenkette (String) umwandeln

Eingabetyp Ergebnis Bemerkung
Undefined "undefined" Aus Kompatibilitätsgründen mit älteren Flash-Versionen unterscheidet sich dieses Ergebnis vor Flash 7 von der ECMAScript-Spezifikation und gibt eine leere Zeichenkette "" zurück.
Null "null"  
Boolean Das Ergebnis ist "false", falls der Wert false ist. Sonst ist das Ergbnis "true".  
Number ActionScript konvertiert die Zahl in eine Zeichenkette.  
String Eingabewert (keine Umwandlung)  
Object Soweit möglich konvertiert ActionScript das Objekt in einen primitiven Datentyp und diesen dann in eine Zeichenkette.  


Tabelle 7.13   Datentyp in ein Objekt (Object) umwandeln

Eingabetyp Ergebnis Bemerkung
Undefined leeres Objekt vom Typ object ECMAScript generiert an dieser Stelle eine Fehlermeldung.
Null leeres Objekt vom Typ object ECMAScript generiert an dieser Stelle eine Fehlermeldung.
Boolean Boolean-Objekt mit demselben Wert wie die Eingabe  
Number Number-Objekt mit demselben Wert wie die Eingabe  
String String-Objekt mit demselben Wert wie die Eingabe  
Object Eingabewert (keine Umwandlung)  


Rheinwerk Design - Zum Seitenanfang

7.3.1 parseInt  downtop

Die Funktion parseInt wandelt eine Zeichenkette in eine Ganzzahl (engl. Integer) um. Meist wird dies ähnlich wie die Funktion Number zur Typumwandlung eingesetzt. Im Gegensatz zu dieser Funktion ist aber auch die Angabe einer Basis möglich, was beispielsweise die Eingabe von Binärzahlen erlaubt.

gp  Bemerkung:
    Diese Funktion steht seit dem Flash Player 4 zur Verfügung. Alternativ kann die Funktion Number eingesetzt werden.
       
gp  Syntax:
parseInt(zeichenkette);
parseInt(zeichenkette, basis);
gp  Parameter:
    Der erste Parameter gibt die Zeichenkette an, die in eine Zahl umgewandelt werden soll (andere Datentypen werden automatisch in eine Zeichenkette konvertiert). Führende Leerzeichen werden automatisch entfernt. Der optionale zweite Parameter legt die Basis zwischen 2 und 36 fest. Fehlt dieser Parameter, dann wird entweder eine Dezimalzahl (Basis 10), eine mit 0 beginnende Oktalzahl (Basis 8) oder eine mit 0x beginnende Hexadezimalzahl erwartet (Basis 16).
       
gp  Ergebnis:
    Diese Funktion gibt eine Ganzzahl vom Typ number zurück. Sollte sich die Zeichenkette nicht in eine Zahl umwandeln lassen, ist das Ergebnis NaN.
       
    Die Umwandlung der Zeichenkette in eine Zahl gestaltet sich umgangssprachlich in der Form, dass ActionScript alle führenden Leerzeichen und alle Zeichen ab dem ersten nicht erlaubten Zeichen entfernt und den Rest in eine Ganzzahl konvertiert. Erlaubt sind abhängig von der gewählten Basis die Zeichen 0 bis 9 und a bis z. Bei einer Basis 2 sind davon nur die Zeichen 0 und 1 zulässig, bei der Basis 16 die Zeichen 0 bis 9 und a bis f, wobei a 10 und f 15 entsprechen. Die Basis 36 erfordert alle Zeichen, wobei die 0 der Zahl 0 und z der Zahl 35 entsprechen.
       
gp  Beispiel:
trace(parseInt("123"));
// Ausgabe: 123
trace(parseInt("-123"));
// Ausgabe: -123
trace(parseInt("123e5"));
// Ausgabe: 123
trace(parseInt("123.5"));
// Ausgabe: 123
trace(parseInt("011"));
// Ausgabe: 9 (Oktal 11)
trace(parseInt("0x1f"));
// Ausgabe: 31 (Hexadezimal 1f)
trace(parseInt("101",2));
// Ausgabe: 5 (Binär 101)
Angabe von Binärzahlen

Sollten Sie einmal Zahlen zu anderen Basen angeben wollen, dann hilft die Funktion parseInt dabei. Insbesondere für Binärzahlen ist das nützlich: meineZahl = parseInt("10101111", 2);


Rheinwerk Design - Zum Seitenanfang

7.3.2 parseFloat  downtop

Die Funktion parseFloat wandelt eine Zeichenkette in eine Gleitkommazahl (engl. Float) um. Meist wird dies ähnlich wie die Funktion Number zur Typumwandlung eingesetzt.

gp  Bemerkung:
    Diese Funktion steht seit dem Flash Player 4 zur Verfügung. Alternativ kann die Funktion Number eingesetzt werden.
       
gp  Syntax:
parseFloat(zeichenkette);
gp  Parameter:
    Der Parameter gibt die Zeichenkette an, die in eine Zahl umgewandelt werden soll (andere Datentypen werden automatisch in eine Zeichenkette konvertiert). Führende Leerzeichen werden automatisch entfernt.
       
gp  Ergebnis:
    Diese Funktion gibt eine Gleitkommazahl vom Typ number zurück. Sollte sich die Zeichenkette nicht in eine Zahl umwandeln lassen, ist das Ergebnis NaN.
       
    Die Umwandlung der Zeichenkette in eine Zahl gestaltet sich umgangssprachlich in der Form, dass ActionScript alle führenden Leerzeichen und alle Zeichen ab dem ersten nicht erlaubten Zeichen entfernt und den Rest in eine Gleitkommazahl konvertiert. Erlaubt sind alle Zeichen, die auch sonst zur Angabe einer Gleitkommazahl verwendet werden dürfen, inklusive Punkt und dem e für Zehnerpotenzen.
       
gp  Beispiel:
trace(parseFloat("123"));
// Ausgabe: 123
trace(parseFloat("-123"));
// Ausgabe: -123
trace(parseFloat("123e5"));
// Ausgabe: 12300000
trace(parseFloat("123.5"));
// Ausgabe: 123.5
trace(parseFloat("011"));
// Ausgabe: 11
trace(parseFloat("0x1f"));
// Ausgabe: 0
trace(parseFloat("unsinn"));
// Ausgabe: NaN

Rheinwerk Design - Zum Seitenanfang

7.3.3 Boolean (Funktiondowntop

Die Funktion Boolean wandelt einen beliebigen Ausdruck in einen Wahrheitswert (boolean) um. Die Funktion wird ähnlich wie der gleichnamige Konstruktor eingesetzt.

gp  Bemerkung:
    Diese Funktion steht seit dem Flash Player 5 zur Verfügung.
       
gp  Syntax:
Boolean(ausdruck);
gp  Parameter:
    Der Parameter gibt den Wert als Ausdruck an, der in einen Wahrheitswert (boolean) umgewandelt werden soll.
       
gp  Ergebnis:
    Diese Funktion gibt einen primitiven Datentyp vom Typ boolean zurück.
       
    gp  E undefined wird zu false.
    gp  E null wird zu false.
    gp  E Boolesche Werte werden nicht umgewandelt.
    gp  E Zahlen werden zu false, falls der Wert 0 oder NaN ist. Sonst ist das Ergebnis true.
    gp  E Zeichenketten werden zu false, falls der Wert eine leere Zeichenkette mit der Länge 0 ist. Sonst ist das Ergebnis true.
    gp  E Objekte werden zu true.
    Der gleichnamige Konstruktor erzeugt eine Instanz des Boolean-Objektes und keinen primitiven Datentyp (referenzdatentyp = new Boolean (ausdruck);).
       
gp  Beispiel:
ausdruck = 1;
// Boolean (Funktion)
standarddatentyp = Boolean (ausdruck);
trace(standarddatentyp);
trace(typeof standarddatentyp);
// Boolean (Konstruktor)
referenzdatentyp = new Boolean(ausdruck);
trace(referenzdatentyp);
trace(typeof referenzdatentyp);

Rheinwerk Design - Zum Seitenanfang

7.3.4 Number (Funktiondowntop

Siehe OOP

Die Funktion Number wandelt einen beliebigen Ausdruck in eine Zahl (Number) um. Die Funktion wird ähnlich wie der gleichnamige Konstruktor eingesetzt.

gp  Bemerkung:
    Diese Funktion steht seit dem Flash Player 5 zur Verfügung.
       
gp  Syntax:
Number(ausdruck);
gp  Parameter:
    Der Parameter gibt den Wert als Ausdruck an, der in eine Zahl (Number) umgewandelt werden soll.
       
gp  Ergebnis:
Diese Funktion gibt einen primitiven Datentyp vom Typ number zurück. undefined wird vor Flash 7 zu 0 und ab Flash 7 zu NaN. null wird vor Flash 7 zu 0 und ab Flash 7 zu NaN. Boolesche Werte werden zu 0, falls der Wert false ist. Sonst ist das Ergebnis 1. Zahlen werden nicht umgewandelt. Soweit möglich konvertiert ActionScript die Zeichenkette in eine Zahl. Soweit möglich konvertiert ActionScript das Objekt in einen primitiven Datentyp und diesen dann in eine Zahl.
    Der gleichnamige Konstruktor erzeugt eine Instanz des Number-Objektes und keinen primitiven Datentyp (referenzdatentyp = new Number (ausdruck);).
       
gp  Beispiel:
ausdruck = "-10.5e-3"; // entspricht -0.0105
// Number (Funktion)
standarddatentyp = Number (ausdruck);
trace(standarddatentyp);
trace(typeof standarddatentyp);
// Number (Konstruktor)
referenzdatentyp = new Number(ausdruck);
trace(referenzdatentyp);
trace(typeof referenzdatentyp);

Rheinwerk Design - Zum Seitenanfang

7.3.5 String (Funktiondowntop

Siehe OOP

Die Funktion String wandelt einen beliebigen Ausdruck in eine Zeichenkette (String) um. Die Funktion wird ähnlich wie der gleichnamige Konstruktor eingesetzt.

gp  Bemerkung:
    Diese Funktion steht seit dem Flash Player 5 zur Verfügung.
       
gp  Syntax:
String(ausdruck);
gp  Parameter:
    Der Parameter gibt den Wert als Ausdruck an, der in eine Zeichenkette (String) umgewandelt werden soll.
       
gp  Ergebnis:
    Diese Funktion gibt einen primitiven Datentyp vom Typ string zurück.
       
undefined wird bis Flash 6 zu einer leeren Zeichenkette "" (aus Kompatibilitätsgründen mit älteren Flash-Versionen unterscheidet sich dieses Ergebnis von der ECMAScript-Spezifikation, die "undefined" zurückgibt), Flash 7 gibt wie ECMAScript "undefined" zurück. null wird zu "null". Boolesche Werte werden zu "false", falls der Wert false ist. Sonst ist das Ergebnis "true". Zahlen werden in eine Zeichenkette umgewandelt. Zeichenketten werden nicht umgewandelt. Soweit möglich konvertiert ActionScript das Objekt in einen primitiven Datentyp und diesen dann in eine Zeichenkette.
    Der gleichnamige Konstruktor erzeugt eine Instanz des String-Objektes und keinen primitiven Datentyp (referenzdatentyp = new String(ausdruck);).
       
gp  Beispiel:
ausdruck = -0.0105;
// String (Funktion)
standarddatentyp = String(ausdruck);
trace(standarddatentyp);
trace(typeof standarddatentyp);
// String (Konstruktor)
referenzdatentyp = new String(ausdruck);
trace(referenzdatentyp);
trace(typeof referenzdatentyp);

Rheinwerk Design - Zum Seitenanfang

7.3.6 Array (Funktiondowntop

Siehe OOP

Die Funktion Array wandelt eine Folge beliebiger Ausdrücke in eine Liste (Instanz des Array-Objektes) um.

gp  Bemerkung:
    Diese Funktion steht seit dem Flash Player 5 zur Verfügung.
       
gp  Syntax:
Array(ausdruck1,ausdruck2 ...);
gp  Parameter:
    Als Parameter geben Sie beliebig viele durch Kommata getrennte Ausdrücke an, die in eine Liste (Array) umgewandelt werden sollen.
       
gp  Ergebnis:
    Diese Funktion gibt als komplexen Datentyp eine Liste (Array) zurück.
       
    Der gleichnamige Konstruktor verhält sich wie die Funktion (referenzdatentyp = new Array(ausdruck1,ausdruck2 ...);) oder die Zugriffsoperatoren [ und ].
       
gp  Beispiel:
// Array
liste1 = Array("Marc", "Saban", "Sascha");
liste2 = new Array("Marc", "Saban", "Sascha");
liste3 = ["Marc", "Saban", "Sascha"];

Rheinwerk Design - Zum Seitenanfang

7.3.7 Object (Funktiontoptop

Siehe OOP

Die Funktion Object wandelt einen beliebigen Ausdruck in ein Objekt (Object) um.

gp  Bemerkung:
    Diese Funktion steht seit dem Flash Player 5 zur Verfügung.
       
gp  Syntax:
Object(ausdruck);
gp  Parameter:
    Der Parameter gibt den Wert als Ausdruck an, der in ein Objekt (Object) umgewandelt werden soll.
       
gp  Ergebnis:
    Diese Funktion gibt einen komplexen Datentyp in der folgenden Form zurück:
       
undefined wird zu einer leeren neuen Instanz des Object-Objektes. null zu einer leeren neuen Instanz des Object-Objektes. Boolesche Werte werden zu einer Instanz des Boolean-Objektes mit demselben Wert wie der Parameter. Zahlen werden zu einer Instanz des Number-Objektes mit demselben Wert wie der Paramter. Zeichenketten werden zu einer Instanz des String-Objektes mit demselben Wert wie der Parameter.
gp  Objekte werden nicht umgewandelt.
    Der gleichnamige Konstruktor verhält sich wie die Funktion (referenzdatentyp = new Object(ausdruck);).
       
gp  Beispiel:
ausdruck = -0.0105;
// Object (Funktion)
referenzdatentyp = Object(ausdruck);
trace(referenzdatentyp);
trace(typeof referenzdatentyp);
 << 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