Flash CS3-Dokumentation |
|||
| Programmieren mit ActionScript 3.0 > ActionScript-Sprache und -Syntax > Datentypen > Beschreibung der Datentypen | |||
Die Grunddatentypen umfassen „Boolean", „int", „Null", „Number", „String", „uint" und „void". Darüber hinaus definieren die ActionScript-Kernklassen folgende komplexe Datentypen: „Object", „Array", „Date", „Error", „Function", „RegExp", „XML" und „XMLList".
Der Datentyp „Boolean" besteht aus zwei Werten: true und false. Für Variable des Typ „Boolean" sind keine anderen Werte zulässig. Der Standardwert einer Boolean-Variablen, die zwar deklariert, jedoch nicht initialisiert wurde, lautet false.
Der Datentyp „int" wird intern als Ganzzahl mit 32 Bit gespeichert und umfasst Ganzzahlen im Bereich von
-2.147.483.648 (-231) bis einschließlich 2.147.483.647 (231 - 1). Frühere Versionen von ActionScript boten lediglich den Datentyp „Number", der sowohl für Ganzzahlen als auch für Gleitkommazahlen verwendet wurde. In ActionScript 3.0 können Sie jetzt auch auf maschinennahe Typen für vorzeichenbehaftete und vorzeichenlose Ganzzahlen zugreifen. Wenn für eine Variable keine Gleitkommazahlen verwendet werden, wird der Code mit dem Datentyp „int" anstelle des Datentyps „Number" schneller und effizienter.
Für ganzzahlige Werte außerhalb des Bereichs für int-Werte verwenden Sie den Datentyp „Number", der Werte zwischen plus/minus 9.007.199.254.740.992 (ganzzahlige Werte mit 53-Bit) verarbeiten kann. Der Standardwert für Variable des Datentyps „int" lautet 0.
Der Datentyp „Null" umfasst nur den Wert null. Dies ist der Standardwert für den Datentyp „String" und alle Klassen, die komplexe Datentypen definieren. Hierzu gehört auch die Object-Klasse. Keiner der anderen Grunddatentypen wie „Boolean", „Number", „int" und „uint" enthält den Wert null. Flash Player wandelt den Wert null in den entsprechenden Standardwert um, wenn Sie versuchen, Variable des Typs „Boolean", „Number", „int" oder „uint" null zuzuweisen. Sie können diesen Datentyp nicht als Typanmerkung verwenden.
In ActionScript 3.0 kann der Datentyp „Number" Ganzzahlen, vorzeichenlose Ganzzahlen und Gleitkommazahlen darstellen. Um die Leistung des Programms zu maximieren, sollten Sie den Datentyp „Number" nur für ganzzahlige Werte größer als die Speichergrenze für int- und uint-Typen mit 32 Bit oder für Gleitkommazahlen verwenden. Zum Speichern als Gleitkommazahl müssen Sie mit der Zahl ein Dezimalzeichen angeben. Ohne das Dezimalzeichen wird die Zahl als Ganzzahl gespeichert.
Der Datentyp „Number" verwendet eine Gleitkommazahl nach dem IEEE Standard for Binary Floating-Point Arithmetic (IEEE-754) mit doppelter Genauigkeit (64 Bit). Dieser Standard legt fest, wie Gleitkommazahlen mit 64 verfügbaren Bits gespeichert werden. Ein Bit legt fest, ob die Zahl positiv oder negativ ist. 11 Bit werden für den Exponenten verwendet, der als Basis 2 gespeichert wird. Die verbleibenden 52 Bit werden zum Speichern des Signifikand (auch als Mantisse bezeichnet) verwendet. Dies ist die Zahl, die durch den Exponenten potenziert wird.
Indem einige Bits zum Speichern eines Exponenten verwendet werden, kann der Datentyp „Number" wesentlich größere Gleitkommazahlen speichern, als wenn alle Bits für die Mantisse verwendet werden. Würde der Datentyp „Number" alle 64 Bit zum Speichern der Mantisse verwenden, könnte lediglich eine Zahl in der Größe von 265 -1 gespeichert werden. Indem 11 Bit zum Speichern eines Exponenten verwendet werden, kann der Datentyp „Number" die Mantisse bis zu einer Potenz von 21023 anheben.
Die Höchst- und Mindestwerte, die der Datentyp „Number" darstellen kann, sind in den statischen Eigenschaften der Number-Klasse namens Number.MAX_VALUE und Number.MIN_VALUE gespeichert.
Number.MAX_VALUE == 1.79769313486231e+308 Number.MIN_VALUE == 4.940656458412467e-324
Dieser enorm große Zahlenbereich geht jedoch zu Lasten der Genauigkeit. Der Datentyp „Number" verwendet 52 Bit zum Speichern der Mantisse. Dadurch sind Zahlen, die mehr als 52 Bit zur exakten Darstellung benötigen, wie z. B. der Bruch 1/3, nur Annäherungen. Wenn die Anwendung Dezimalzahlen mit absoluter Präzision erfordert, benötigen Sie Software, die anstelle von Binär-Gleitkommaarithmetik die Dezimal-Gleitkommaarithmetik verwendet.
Wenn Sie ganzzahlige Werte mit dem Datentyp „Number" speichern, werden nur die 52 Bit der Mantisse verwendet. Der Datentyp „Number" verwendet diese 52 Bit sowie ein spezielles verborgenes Bit, um Ganzzahlen im Bereich von -9.007.199.254.740.992 (-253) bis 9.007.199.254.740.992 (253) darzustellen.
Flash Player verwendet den NaN-Wert nicht nur als Standardwert für Variable des Typs Number, sondern auch als Ergebnis für jeden Vorgang, der eine Zahl liefern sollte, aber einen anderen Wert liefert. Wenn Sie beispielsweise versuchen, die Wurzel einer negativen Zahl zu berechnen, lautet das Ergebnis NaN. Weitere spezielle Number-Werte sind positive infinity (positive Unendlichkeit) und negative infinity (negative Unendlichkeit).
|
HINWEIS |
|
Das Ergebnis einer Division durch |
Der Datentyp „String" stellt eine Zeichenfolge von 16-Bit-Zeichen dar. Strings werden intern als Unicode-Zeichen im Format UTF-16 gespeichert. Strings sind, ebenso wie in der Programmiersprache Java, unveränderliche Werte. Eine Operation mit einem Stringwert liefert eine neue Instanz des Strings. Der Standardwert für eine Variable, die mit dem Datentyp „String" deklariert ist, lautet null. Der Wert null ist nicht das Gleiche wie eine leere Zeichenfolge (""), obwohl beide das Nichtvorhandensein von Zeichen darstellen.
Der Datentyp „uint" wird intern als vorzeichenlose Ganzzahl mit 32 Bit gespeichert und umfasst Ganzzahlen im Bereich von 0 bis einschließlich 4.294.967.295 (232 - 1). Sie verwenden den Datentyp „uint" für Sonderfälle, die nicht-negative Ganzzahlen verlangen. Beispielsweise müssen Sie den Datentyp „uint" zur Darstellung von Farbwerten für Pixel verwenden, da der Datentyp „int" ein internes Vorzeichen-Bit umfasst, das für die Verarbeitung von Farbwerten nicht geeignet ist. Für ganzzahlige Werte größer als der uint-Höchstwert verwenden Sie den Datentyp „Number", der ganzzahlige Werte mit 53 Bit verarbeiten kann. Der Standardwert für Variable des Datentyps „uint" lautet 0.
Der Datentyp „void" umfasst nur den Wert undefined. In früheren Versionen von ActionScript war undefined der Standardwert für Instanzen der Object-Klasse. In ActionScript 3.0 lautet der Standardwert für Object-Instanzen null. Wenn Sie versuchen, einer Instanz der Object-Klasse den Wert undefined zuzuweisen, wandelt Flash Player diesen Wert zu null um. Der Wert undefined kann nur nicht typisierten Variablen zugewiesen werden. Nicht typisierte Variable sind Variable, denen entweder eine Typanmerkung fehlt, oder die das Sternchen-Symbol (*) als Typanmerkung verwenden. Sie können void nur als Rückgabe-Typanmerkung verwenden.
Der Datentyp „Object" wird von der Object-Klasse definiert. Die Object-Klasse dient als Basisklasse für alle Klassendefinitionen in ActionScript. Der Datentyp „Object" in ActionScript 3.0 unterscheidet sich vom Datentyp „Object" früherer Versionen in dreifacher Hinsicht. Zunächst einmal ist der Datentyp „Object" nicht mehr der Standarddatentyp, der Variablen ohne Typanmerkung zugewiesen wird. Zweitens enthält der Datentyp „Object" nicht mehr den Wert undefined, der als Standardwert für Object-Instanzen verwendet wurde. Drittens lautet der Standardwert für Instanzen der Object-Klasse in ActionScript 3.0 jetzt null.
In früheren Versionen von ActionScript wurde einer Variablen ohne Typanmerkung automatisch der Datentyp „Object" zugewiesen. Dies findet in ActionScript 3.0 nicht mehr statt, da ActionScript 3.0 jetzt das Konzept einer wahrhaft nicht typisierten Variablen enthält. Variable ohne Typanmerkung werden jetzt als nicht typisiert betrachtet. Wenn Sie anderen Programmierern, die Ihren Code lesen, deutlich machen möchten, dass Sie eine Variable absichtlich nicht typisiert haben, können Sie das neue Sternchen-Symbol (*) als Typanmerkung verwenden. Dies entspricht dem Weglassen einer Typanmerkung. Im folgenden Beispiel sind zwei gleichwertige Anweisungen dargestellt. Beide deklarieren eine nicht typisierte Variable x:
var xvar x:*
Nur nicht typisierte Variable können den Wert undefined annehmen. Wenn Sie versuchen, einer Variablen mit einem Datentyp den Wert undefined zuzuweisen, wandelt Flash Player den Wert undefined in den Standardwert dieses Datentyps um. Bei Instanzen des Datentyps „Object" lautet der Standardwert null. Dies bedeutet, dass Flash Player den Wert undefined in null umwandelt, wenn Sie versuchen, einer Object-Instanz den Wert undefined zuzuweisen.
Flash CS3
Eine E-Mail an mich senden, wenn dieser Seite Kommentare hinzugefügt werden | Kommentarbericht
Aktuelle Seite: http://livedocs.adobe.com/flash/9.0_de/main/00000047.html