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 7 Werte und Datentypen
|  | 7.1 Variablen
|  |  | 7.1.1 Gültigkeitsbereich (engl. Scope)
|  |  | 7.1.2 Eigenschaften
|  |  | 7.1.3 Konstanten
|  |  | 7.1.4 Variablen mit set deklarieren
|  |  | 7.1.5 Variablen mit dem Zuweisungsoperator deklarieren
|  |  | 7.1.6 Lokale Variablen mit var deklarieren
|  |  | 7.1.7 Globale Variablen mit _global deklarieren
|  |  | 7.1.8 Variablen löschen
|  |  | 7.1.9 Den Typ einer Variablen ermitteln
|  | 7.2 Datentypen
|  |  | 7.2.1 Wahrheitswert (boolean)
|  |  | 7.2.2 Zahl (number)
|  |  | 7.2.3 Zeichenketten (string)
|  |  | 7.2.4 Null
|  |  | 7.2.5 Undefiniert (undefined)
|  |  | 7.2.6 Komplexe Datentypen (Objekte)
|  | 7.3 Typumwandlung
|  |  | 7.3.1 parseInt
|  |  | 7.3.2 parseFloat
|  |  | 7.3.3 Boolean (Funktion)
|  |  | 7.3.4 Number (Funktion)
|  |  | 7.3.5 String (Funktion)
|  |  | 7.3.6 Array (Funktion)
|  |  | 7.3.7 Object (Funktion)
|  | 7.4 Typisierung
|  |  | 7.4.1 Typen festlegen
|  |  | 7.4.2 Typisierung und Codehinweise
|  |  | 7.4.3 Laufzeit versus Kompilierung
## 7.3 Typumwandlung ##### 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) |
### 7.3.1 parseInt 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.
| Bemerkung:
| Diese Funktion steht seit dem Flash Player 4 zur Verfügung. Alternativ kann die Funktion Number eingesetzt werden.
| Syntax:
>     parseInt(zeichenkette);
>     parseInt(zeichenkette, basis);
| 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).
| 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.
| 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); ### 7.3.2 parseFloat Die Funktion parseFloat wandelt eine Zeichenkette in eine Gleitkommazahl (engl. Float) um. Meist wird dies ähnlich wie die Funktion Number zur Typumwandlung eingesetzt.
| Bemerkung:
| Diese Funktion steht seit dem Flash Player 4 zur Verfügung. Alternativ kann die Funktion Number eingesetzt werden.
| Syntax:
>     parseFloat(zeichenkette);
| 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.
| 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.
| 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
### 7.3.3 Boolean (Funktion) Die Funktion Boolean wandelt einen beliebigen Ausdruck in einen Wahrheitswert (boolean) um. Die Funktion wird ähnlich wie der gleichnamige Konstruktor eingesetzt.
| Bemerkung:
| Diese Funktion steht seit dem Flash Player 5 zur Verfügung.
| Syntax:
>     Boolean(ausdruck);
| Parameter:
| Der Parameter gibt den Wert als Ausdruck an, der in einen Wahrheitswert (boolean) umgewandelt werden soll.
| Ergebnis:
| Diese Funktion gibt einen primitiven Datentyp vom Typ boolean zurück.
|  | E undefined wird zu false.
|  | E null wird zu false.
|  | E Boolesche Werte werden nicht umgewandelt.
|  | E Zahlen werden zu false, falls der Wert 0 oder NaN ist. Sonst ist das Ergebnis true.
|  | E Zeichenketten werden zu false, falls der Wert eine leere Zeichenkette mit der Länge 0 ist. Sonst ist das Ergebnis true.
|  | E Objekte werden zu true.
| Der gleichnamige Konstruktor erzeugt eine Instanz des Boolean-Objektes und keinen primitiven Datentyp (referenzdatentyp = new Boolean (ausdruck);).
| Beispiel:
>     ausdruck = 1;
>     // Boolean (Funktion)
>     standarddatentyp = Boolean (ausdruck);
>     trace(standarddatentyp);
>     trace(typeof standarddatentyp);
>     // Boolean (Konstruktor)
>     referenzdatentyp = new Boolean(ausdruck);
>     trace(referenzdatentyp);
>     trace(typeof referenzdatentyp);
### 7.3.4 Number (Funktion) ##### Siehe OOP Die Funktion Number wandelt einen beliebigen Ausdruck in eine Zahl (Number) um. Die Funktion wird ähnlich wie der gleichnamige Konstruktor eingesetzt.
| Bemerkung:
| Diese Funktion steht seit dem Flash Player 5 zur Verfügung.
| Syntax:
>     Number(ausdruck);
| Parameter:
| Der Parameter gibt den Wert als Ausdruck an, der in eine Zahl (Number) umgewandelt werden soll.
| 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);).
| 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);
### 7.3.5 String (Funktion) ##### Siehe OOP Die Funktion String wandelt einen beliebigen Ausdruck in eine Zeichenkette (String) um. Die Funktion wird ähnlich wie der gleichnamige Konstruktor eingesetzt.
| Bemerkung:
| Diese Funktion steht seit dem Flash Player 5 zur Verfügung.
| Syntax:
>     String(ausdruck);
| Parameter:
| Der Parameter gibt den Wert als Ausdruck an, der in eine Zeichenkette (String) umgewandelt werden soll.
| 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);).
| 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);
### 7.3.6 Array (Funktion) ##### Siehe OOP Die Funktion Array wandelt eine Folge beliebiger Ausdrücke in eine Liste (Instanz des Array-Objektes) um.
| Bemerkung:
| Diese Funktion steht seit dem Flash Player 5 zur Verfügung.
| Syntax:
>     Array(ausdruck1,ausdruck2 ...);
| Parameter:
| Als Parameter geben Sie beliebig viele durch Kommata getrennte Ausdrücke an, die in eine Liste (Array) umgewandelt werden sollen.
| 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 ].
| Beispiel:
>     // Array
>     liste1 = Array("Marc", "Saban", "Sascha");
>     liste2 = new Array("Marc", "Saban", "Sascha");
>     liste3 = ["Marc", "Saban", "Sascha"];
### 7.3.7 Object (Funktion) ##### Siehe OOP Die Funktion Object wandelt einen beliebigen Ausdruck in ein Objekt (Object) um.
| Bemerkung:
| Diese Funktion steht seit dem Flash Player 5 zur Verfügung.
| Syntax:
>     Object(ausdruck);
| Parameter:
| Der Parameter gibt den Wert als Ausdruck an, der in ein Objekt (Object) umgewandelt werden soll.
| 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.
| Objekte werden nicht umgewandelt.
| Der gleichnamige Konstruktor verhält sich wie die Funktion (referenzdatentyp = new Object(ausdruck);).
| Beispiel:
>     ausdruck = -0.0105;
>     // Object (Funktion)
>     referenzdatentyp = Object(ausdruck);
>     trace(referenzdatentyp);
>     trace(typeof referenzdatentyp);
<< 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