8.2 Zuweisungsoperatoren
Bei Zuweisungsoperatoren ist es immer wichtig, auf der linken Seite nur einen Bezeichner als Operanden zu verwenden. Denn dieser Bezeichner wird als Variable oder Eigenschaft interpretiert und erhält den Wert des Operanden auf der rechten Seite.
Tabelle 8.2
Die wichtigsten Zuweisungsoperatoren
Operator
|
Beschreibung
|
=
|
Zuweisung
|
*=, /=, %=, +=, -=
|
Zusammengesetzte Zuweisung
|
Neben dem »normalen« Zuweisungsoperator verfügt ActionScript über zusammengesetzte Zuweisungsoperatoren. Diese Operatoren führen eine Berechnung durch und weisen das Ergebnis automatisch einer Variablen oder Eigenschaft zu. Das Skript
zwischenergebnis += 2;
ist z.B. eine verkürzte Schreibweise für
zwischenergebnis = zwischenergebnis + 2;
8.2.1 ++ (Prä- und Post-Inkrement)
Der Operator ++ erhöht einen Wert um 1.
|
Bemerkung: |
|
Dieser Operator steht seit dem Flash Player 4 zur Verfügung. |
|
|
|
Syntax: |
ausdruck++
++ausdruck
|
Parameter: |
Als Ausdruck darf eine Zahl angegeben werden.
|
Ergebnis: |
|
Die erste Variante dieses Ausdrucks wertet zuerst den Ausdruck aus und erhöht ihn dann um eins. Die zweite Variante erhöht den Ausdruck erst um eins und wertet ihn dann aus. |
|
|
|
Beispiel: |
|
Abhängig davon, ob Sie ++ vor oder nach einem Operanden wie z.B. einer Variablen platzieren, ändert sich das Verhalten. Das Skript |
|
|
punkte = 100;
trace(punkte++);
trace(punkte);
|
gibt zuerst 100 und dann 101 aus. Das Skript |
|
|
punkte = 100;
trace(++punkte);
trace(punkte);
|
hingegen gibt schon beim ersten mal 101 und dann erneut 101 aus, da in diesem Fall zuerst erhöht und dann ausgewertet wird. |
|
|
8.2.2 -- (Prä- und Post-Dekrement)
Der Operator -- verringert einen Wert um 1.
|
Bemerkung: |
|
Dieser Operator steht seit dem Flash Player 4 zur Verfügung. |
|
|
|
Syntax: |
ausdruck--
--ausdruck
|
Parameter: |
Als Ausdruck darf eine Zahl angegeben werden.
|
Ergebnis: |
|
Die erste Variante dieses Ausdrucks wertet zuerst den Ausdruck aus und verringert ihn dann um eins. Die zweite Variante verringert den Ausdruck erst um eins und wertet ihn dann aus. |
|
|
|
Beispiel: |
|
Abhängig davon, ob Sie -- vor oder nach einem Operanden wie z.B. einer Variablen platzieren, ändert sich das Verhalten. Das Skript |
|
|
punkte = 100;
trace(punkte--);
trace(punkte);
|
gibt zuerst 100 und dann 99 aus. Das Skript |
|
|
punkte = 100;
trace(--punkte);
trace(punkte);
|
hingegen gibt schon beim ersten Mal 99 und dann erneut 99 aus, da in diesem Fall zuerst verringert und dann ausgewertet wird. |
|
|
8.2.3 = (Zuweisung)
Der Operator = weist einer Variablen einen Wert zu.
|
Bemerkung: |
|
Dieser Operator steht seit dem Flash Player 4 zur Verfügung. In Flash 4 wurde das = auch als Gleichheitsoperator eingesetzt. Für die Gleichheit verwendet ActionScript seit Flash 5 das doppelte Gleich ==. |
|
|
|
Syntax: |
bezeichner = ausdruck
|
Parameter: |
|
Der Bezeichner steht für eine Variable oder Eigenschaft von einem beliebigen Typ. Als Ausdruck darf ebenfalls ein beliebiger Wert angegeben werden, der den Datentyp der Variablen oder der Eigenschaft anschließend festlegt. |
|
|
|
Ergebnis: |
|
Der Ausdruck auf der rechten Seite wird berechnet und dann im Bezeichner auf der linken Seite gespeichert. |
|
|
|
Beispiel: |
// Zahl
entfernung = Math.sqrt(deltax*deltax+deltay*deltay);
// Zeichenkette
adresse = plz+ort;
// Wahrheitswert
rentner = alter>65;
// Objekt (hier Datum)
heute = new Date();
// Funktion
ermittleBogenmass = function (grad) {
return (grad/180*Math.PI);
};
8.2.4 *= (Multiplikationszuweisung)
Der Operator *= multipliziert eine Variable mit einem Wert und weist das Ergebnis der Variablen anschließend zu.
|
Bemerkung: |
|
Dieser Operator steht seit dem Flash Player 4 zur Verfügung. |
|
|
|
Syntax: |
bezeichner *= ausdruck
|
Parameter: |
|
Der Bezeichner steht für eine Variable oder Eigenschaft mit einer Zahl. Als Ausdruck wird ebenfalls eine Zahl erwartet. |
|
|
|
Ergebnis: |
|
Der Ausdruck auf der rechten Seite wird berechnet und dann mit dem Bezeichner auf der linken Seite multipliziert und anschließend in diesem Bezeichner abgelegt. Dieser Operator ermöglicht eine verkürzte Schreibweise von bezeichner = bezeichner * ausdruck. |
|
|
|
Beispiel: |
// Verdopple den Punktestand
bonus = 2;
punkte *= bonus;
8.2.5 /= (Divisionszuweisung)
Der Operator /= dividiert eine Variable mit einem Wert und weist das Ergebnis der Variablen anschließend zu.
|
Bemerkung: |
|
Dieser Operator steht seit dem Flash Player 4 zur Verfügung. |
|
|
|
Syntax: |
bezeichner /= ausdruck
|
Parameter: |
|
Der Bezeichner steht für eine Variable oder Eigenschaft mit einer Zahl. Als Ausdruck wird ebenfalls eine Zahl erwartet. |
|
|
|
Ergebnis: |
|
Der Ausdruck auf der rechten Seite wird berechnet und dann mit dem Bezeichner auf der linken Seite multipliziert und anschließend in diesem Bezeichner abgelegt. Dieser Operator ermöglicht eine verkürzte Schreibweise von bezeichner = bezeichner / ausdruck. |
|
|
|
Beispiel: |
// Halbiere die Größe
movieClipInstanz._xscale /= 2;
movieClipInstanz._yscale /= 2;
8.2.6 %= (Modulozuweisung)
Der Operator %= dividiert eine Variable mit einem Wert und weist den Rest der Variablen anschließend zu. Dieser Operator ist immer dann nützlich, wenn das Ergebnis einer Berechnung nur in einem festgelegten Bereich liegen darf.
|
Bemerkung: |
|
Dieser Operator steht seit dem Flash Player 4 zur Verfügung. |
|
|
|
Syntax: |
bezeichner %= ausdruck
|
Parameter: |
|
Der Bezeichner steht für eine Variable oder Eigenschaft mit einer Zahl. Als Ausdruck wird ebenfalls eine Zahl erwartet. |
|
|
|
Ergebnis: |
|
Der Ausdruck auf der rechten Seite wird berechnet. Anschließend erhält der Bezeichner den Rest einer Division des Bezeichners durch den Ausdruck. Dieser Operator ermöglicht eine verkürzte Schreibweise von bezeichner = bezeichner % ausdruck. |
|
|
|
Beispiel: |
// Bestimme den Winkel zwischen 0 und 359 Grad
movieClipInstanz._rotation %= 360;
// Bestimme die Position zwischen 0 und 549 Pixel
movieClipInstanz._x %= 550;
// Ist der Wert gerade (0) oder ungerade (1)?
abwechselnd %= 2;
8.2.7 += (Additionszuweisung)
Der Operator += addiert eine Variable mit einem Wert und weist das Ergebnis der Variablen anschließend zu.
|
Bemerkung: |
|
Dieser Operator steht seit dem Flash Player 4 zur Verfügung. |
|
|
|
Syntax: |
bezeichner += ausdruck
|
Parameter: |
|
Der Bezeichner steht für eine Variable oder Eigenschaft mit einer Zahl. Als Ausdruck wird ebenfalls eine Zahl erwartet. |
|
|
|
Ergebnis: |
|
Der Ausdruck auf der rechten Seite wird berechnet und dann mit dem Wert des Bezeichners addiert. Anschließend erhält der Bezeichner das Ergebnis. Dieser Operator ermöglicht eine verkürzte Schreibweise von bezeichner = bezeichner + ausdruck. |
|
|
|
Beispiel: |
// Erhöhe Kinderzahl
kinder += 1;
8.2.8 -= (Subtraktionszuweisung)
Der Operator -= subtrahiert einen Wert von einer Variablen und weist das Ergebnis der Variable anschließend zu.
|
Bemerkung: |
|
Dieser Operator steht seit dem Flash Player 4 zur Verfügung. |
|
|
|
Syntax: |
bezeichner -= ausdruck
|
Parameter: |
|
Der Bezeichner steht für eine Variable oder Eigenschaft mit einer Zahl. Als Ausdruck wird ebenfalls eine Zahl erwartet. |
|
|
|
Ergebnis: |
|
Der Ausdruck auf der rechten Seite wird berechnet und dann von dem Wert des Bezeichners subtrahiert. Anschließend erhält der Bezeichner das Ergebnis. Dieser Operator ermöglicht eine verkürzte Schreibweise von bezeichner = bezeichner – ausdruck. |
|
|
|
Beispiel: |
// Verringere Leben (bei Katzen maximal siebenmal)
leben -= 1;
8.2.9 &= (bitweise Und-Zuweisung)
Der Operator &= verknüpft einen Wert und eine Variable mit dem bitweisen Und und weist das Ergebnis der Variablen anschließend zu.
|
Bemerkung: |
|
Dieser Operator steht seit dem Flash Player 5 zur Verfügung. |
|
|
|
Syntax: |
bezeichner &= ausdruck
|
Parameter: |
|
Der Bezeichner steht für eine Variable oder Eigenschaft mit einer Zahl. Als Ausdruck wird ebenfalls eine Zahl erwartet. |
|
|
|
Ergebnis: |
|
Der Ausdruck auf der rechten Seite wird berechnet und mit dem Wert des Bezeichners bitweise durch ein Und verknüpft. Anschließend erhält der Bezeichner das Ergebnis. Dieser Operator ermöglicht eine verkürzte Schreibweise von bezeichner = bezeichner & ausdruck. |
|
|
|
Beispiel: |
// Aktiviere Schalter 1 und 3
schalter = 1*4+0*2+1*1; // entspricht binär 101
// Deaktiviere alle Schalter außer Schalter 3
schalter &= 1*4+0*2+0*1; // entspricht binär 100
// Schalter hat jetzt das Ergebnis binär 100 (dezimal 4)
trace(schalter);
8.2.10 |= (bitweise Oder-Zuweisung)
Der Operator |= verknüpft einen Wert und eine Variable mit dem bitweisen Oder und weist das Ergebnis der Variablen anschließend zu.
|
Bemerkung: |
|
Dieser Operator steht seit dem Flash Player 5 zur Verfügung. |
|
|
|
Syntax: |
bezeichner |= ausdruck
|
Parameter: |
|
Der Bezeichner steht für eine Variable oder Eigenschaft mit einer Zahl. Als Ausdruck wird ebenfalls eine Zahl erwartet. |
|
|
|
Ergebnis: |
|
Der Ausdruck auf der rechten Seite wird berechnet und mit dem Wert des Bezeichners bitweise durch ein Oder verknüpft. Anschließend erhält der Bezeichner das Ergebnis. Dieser Operator ermöglicht eine verkürzte Schreibweise von bezeichner = bezeichner | ausdruck. |
|
|
|
Beispiel: |
// Aktiviere Schalter 1 und 3
schalter = 1*4 + 0*2 + 1*1; // entspricht binär 101
// Aktiviere Schalter 2
schalter |= 0*4 + 1*2 + 0*1; // entspricht binär 010
// Schalter hat jetzt das Ergebnis binär 111 (dezimal 7)
trace(schalter);
8.2.11 ^= (bitweise XOder-Zuweisung)
Der Operator ^= verknüpft einen Wert und eine Variable mit dem bitweisen XOder (entweder oder) und weist das Ergebnis der Variablen anschließend zu.
|
Bemerkung: |
|
Dieser Operator steht seit dem Flash Player 5 zur Verfügung. |
|
|
|
Syntax: |
bezeichner ^= ausdruck
|
Parameter: |
|
Der Bezeichner steht für eine Variable oder Eigenschaft mit einer Zahl. Als Ausdruck wird ebenfalls eine Zahl erwartet. |
|
|
|
Ergebnis: |
|
Der Ausdruck auf der rechten Seite wird berechnet und mit dem Wert des Bezeichners bitweise durch ein XOder verknüpft. Anschließend erhält der Bezeichner das Ergebnis. Dieser Operator ermöglicht eine verkürzte Schreibweise von bezeichner = bezeichner ^ ausdruck. |
|
|
|
Beispiel: |
// Aktiviere Schalter 1 und 3
schalter = 1*4 + 0*2 + 1*1; // entspricht binär 101
// Aktiviere alle Schalter außer Schalter 3
schalter ^= 1*4 + 1*2 + 1*1; // entspricht binär 111
// Schalter hat jetzt das Ergebnis binär 010 (dezimal 2)
trace(schalter);
8.2.12 <<= (bitweise Verschiebung nach links und Zuweisung)
Der Operator <<= verschiebt einen Wert bitweise nach links. Dies entspricht einer Multiplikation mit einem Vielfachen von zwei. Das Ergebnis wird anschließend einer Variablen zugewiesen.
|
Bemerkung: |
|
Dieser Operator steht seit dem Flash Player 5 zur Verfügung. |
|
|
|
Syntax: |
bezeichner <<= ausdruck
|
Parameter: |
|
Der Bezeichner steht für eine Variable oder Eigenschaft mit einer Zahl. Als Ausdruck wird eine Zahl zwischen 0 und 31 erwartet. |
|
|
|
Ergebnis: |
|
Der Ausdruck auf der rechten Seite wird berechnet und verschiebt den Wert des Bezeichners bitweise nach links. Anschließend erhält der Bezeichner das Ergebnis. Dieser Operator ermöglicht eine verkürzte Schreibweise von bezeichner = bezeichner << ausdruck. |
|
|
|
Beispiel: |
// Aktiviere Schalter 2
schalter = 0*4 + 1*2 + 0*1; // entspricht binär 010
// Verschiebe Bits um eine Stelle
schalter <<= 1;
// Schalter hat jetzt das Ergebnis binär 100 (dezimal 4)
trace(schalter);
8.2.13 >>= (bitweise Verschiebung nach rechts und Zuweisung)
Der Operator >>= verschiebt einen Wert bitweise nach rechts. Dies entspricht einer Division durch ein Vielfaches von zwei. Das Ergebnis wird anschließend einer Variablen zugewiesen.
|
Bemerkung: |
|
Dieser Operator steht seit dem Flash Player 5 zur Verfügung. |
|
|
|
Syntax: |
bezeichner >>= ausdruck
|
Parameter: |
|
Der Bezeichner steht für eine Variable oder Eigenschaft mit einer Zahl. Als Ausdruck wird eine Zahl zwischen 0 und 31 erwartet. |
|
|
|
Ergebnis: |
|
Der Ausdruck auf der rechten Seite wird berechnet und verschiebt den Wert des Bezeichners bitweise nach rechts. Anschließend erhält der Bezeichner das Ergebnis. Dieser Operator ermöglicht eine verkürzte Schreibweise von bezeichner = bezeichner >> ausdruck. |
|
|
|
Beispiel: |
// Aktiviere Schalter 2
schalter = 0*4 + 1*2 + 0*1; // entspricht binär 010
// Verschiebe Bits um eine Stelle
schalter >>= 1;
// Schalter hat jetzt das Ergebnis binär 001 (dezimal 1)
trace(schalter);
8.2.14 >>>= (vorzeichenlose bitweise Verschiebung nach rechts und Zuweisung)
Der Operator >>>= verschiebt einen Wert bitweise nach rechts, ohne dabei auf ein Vorzeichen zu achten. Dies entspricht einer Division durch ein Vielfaches von zwei. Das Ergebnis wird anschließend einer Variablen zugewiesen.
|
Bemerkung: |
|
Dieser Operator steht seit dem Flash Player 5 zur Verfügung. |
|
|
|
Syntax: |
bezeichner >>>= ausdruck
|
Parameter: |
|
Der Bezeichner steht für eine Variable oder Eigenschaft mit einer Zahl. Als Ausdruck wird eine Zahl zwischen 0 und 31 erwartet. |
|
|
|
Ergebnis: |
|
Der Ausdruck auf der rechten Seite wird berechnet und verschiebt den Wert des Bezeichners bitweise nach rechts. Anschließend erhält der Bezeichner das Ergebnis. Dieser Operator ermöglicht eine verkürzte Schreibweise von bezeichner = bezeichner >>> ausdruck. |
|
|
|
Beispiel: |
// Aktiviere das 32. Bit (dieses steht für das Vorzeichen)
// 10000000 00000000 00000000 00000000
schalter = Math.pow(2,31);
// Verschiebe Bits um eine Stelle nach rechts (behalte Vorzeichen bei)
schalter >>= 1;
// Ergebnis ist 11000000 00000000 00000000 00000000
trace(-Math.pow(2,30));
trace(schalter);
// Aktiviere das 32. Bit (dieses steht für das Vorzeichen)
// 10000000 00000000 00000000 00000000
schalter = Math.pow(2,31);
// Verschiebe Bits um eine Stelle nach rechts
schalter >>>= 1;
// Ergebnis ist 01000000 00000000 00000000 00000000
trace(Math.pow(2,30));
trace(schalter);
|