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 10 Kontrollstrukturen
  gp 10.1 Bedingte Anweisungen
    gp 10.1.1 if
    gp 10.1.2 else
    gp 10.1.3 else if (mehr als eine Alternative)
    gp 10.1.4 switch und break
  gp 10.2 Schleifen
    gp 10.2.1 Endlosschleifen
    gp 10.2.2 while
    gp 10.2.3 do while
    gp 10.2.4 for
    gp 10.2.5 for in
    gp 10.2.6 break
    gp 10.2.7 continue
  gp 10.3 Ausnahmebehandlung
    gp 10.3.1 try-catch-finally
    gp 10.3.2 throw

Kapitel 10 Kontrollstrukturen

Ob und wie oft Anweisungen ausgeführt werden

Flash arbeitet die in einem Skript enthaltenen Anweisungen nacheinander von oben nach unten ab, bis das Ende des Skripts erreicht ist. Mit Hilfe von Kontrollstrukturen nehmen Sie Einfluss auf diese Reihenfolge.

Es ist nicht immer ganz einfach, die Einzelschritte computergerecht zu formulieren. z.B. gibt es einige Schritte, die von Bedingungen wie »bis der Teig nicht mehr zu flüssig ist« oder »wurde das Raumschiff getroffen« abhängig sind. Glücklicherweise bieten Programmiersprachen aber auch dafür Anweisungen wie z.B. Kontrollstrukturen in zahlreichen Varianten an:

wiederhole {
   verrühre Teig;
} solange (Teig nicht zu flüssig);
bedingte Anweisung

Sollte eine Aktion oder ein Block von Aktionen abhängig von einer Bedingung einmalig ausgeführt werden, dann spricht man von einer bedingten Anweisung: »Wenn die Ampel rot ist, dann bleibe stehen!«

// Bedingte Anweisung
if (ampelIstRot()) {
   halteAn();
}
Schleife

Sollen die Anweisungen wiederholt werden, dann handelt es sich um eine Schleife: »Reduziere Geschwindigkeit, solange das Auto nicht steht!« oder »Blinke drei Mal!«

//_Bedingte_Schleife
while_(autoStehtNicht)_{
___reduziereGeschwindigkeit();
}
//_Zaehlschleife
for_(var_zaehler=0;_zaehler<3;_zaehler=zaehler+1)_{
___blinke();
}

Rheinwerk Design - Zum Seitenanfang

10.1 Bedingte Anweisungen  downtop

Bedingte Anweisungen helfen zu entscheiden, ob Flash einen Block von Aktionen ausführt oder nicht. Sollten Sie mehrere Alternativen – abhängig von unterschiedlichen Bedingungen – benötigen, dann verwenden Sie dafür ebenfalls bedingte Anweisungen.


Rheinwerk Design - Zum Seitenanfang

10.1.1 if  downtop

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 10.1   Abarbeitung der Aktionen in einer bedingten Anweisung (if)

Das if können Sie sich wie das konditionale Wenn vorstellen. Anstelle von »Wenn Sandra Zeit hat, dann treffe ich mich mit ihr«, schreiben Sie in ActionScript so etwas wie

if (sandra.hatZeit()) {
   ich.treffe(sandra);
}

Die Anweisung if finden Sie innerhalb des ActionScript-Editors unter Anweisungen Bedingungen/Schleifen. Diese Anweisung signalisiert, dass die ihr folgenden Befehle nur ausgeführt werden, falls die angegebene Bedingung wahr (true) ist. Als Bedingung geben Sie einen beliebigen Ausdruck an, dessen Ergebnis ein boolescher Wert ist (true oder false).

Die von der Bedingung abhängigen Aktionen werden innerhalb von geschweiften Klammern bestimmt (sozusagen wie bei einer Gruppierung durch die Klammern zu einer Anweisung zusammengefasst). Sollten Sie nur eine einzige Aktion angeben, dann dürfen Sie auf die geschweiften Klammern verzichten und anstelle von

if (sandra.hatZeit()) {
   ich.treffe(sandra);
}

auch

if (sandra.hatZeit()) ich.treffe(sandra);

schreiben! Die »lange« Schreibweise ist jedoch meist besser lesbar.

Das folgende Skript macht Gebrauch vom if und bewegt ein Objekt mit Hilfe von ActionScript horizontal über die Bühne; sobald der rechte Rand der Bühne erreicht ist, setzt das Skript das Objekte wieder an den linken Rand.

box_mc.onEnterFrame = function() {
02_Programmierung\Kontrollstrukturen
   // Verschiebe Objekt
   this._x = this._x+5;
   // Wenn das Objekt am Ende angekommen ist
   if (this._x>550) {
      // dann setze es wieder auf den Anfang
      this._x = 0;
   }
};

Rheinwerk Design - Zum Seitenanfang

10.1.2 else  downtop

Das else erweitert die Aktion if um einen alternativ auszuführenden Block, der dem umgangssprachlichen sonst entspricht. Anstelle von »Wenn Sandra Zeit hat, dann treffe ich mich mit ihr, sonst lerne ich Flash«, schreiben Sie in ActionScript so etwas wie

if (sandra.hatZeit()) {
   ich.treffe(sandra);
} else {
   ich.lerne(flash);
}

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 10.2   Abarbeitung der Aktionen in einer bedingten Anweisung (if und else)

Die Anweisung else finden Sie innerhalb des ActionScript-Editors ebenfalls unter Anweisungen Bedingungen/Schleifen. Diese Anweisung signalisiert im Zusammenspiel mit der if-Anweisung, dass die ihr folgenden Befehle nur ausgeführt werden, falls die bei if angegebene Bedingung falsch (false) ist.

Die Befehle werden innerhalb von geschweiften Klammern bestimmt. Sollten Sie nur einen einzigen Befehl angeben, dann dürfen Sie auf die geschweiften Klammern verzichten und anstelle von

if (sandra.hatZeit()) {
   ich.treffe(sandra);
} else {
   ich.lerne(flash);
}

ebenfalls

if (sandra.hatZeit()) ich.treffe(sandra); else ich.lerne(flash);

schreiben! Die längere Schreibweise ist jedoch besser lesbar.

Das folgende Skript macht Gebrauch von if mit else und bewegt ein Objekt mit Hilfe von ActionScript horizontal über die Bühne; sobald der rechte Rand der Bühne erreicht ist, setzt das Skript das Objekte wieder an den linken Rand.

box_mc.onEnterFrame = function() {
02_Programmierung\Kontrollstrukturen
   // Wenn das Objekt am Ende angekommen ist
   if (this._x>550) {
      // dann setze es wieder auf den Anfang
      this._x = 0;
   } else {
      // sonst verschiebe das Objekt
      this._x = this._x+5;
   }
};

Rheinwerk Design - Zum Seitenanfang

10.1.3 else if (mehr als eine Alternativedowntop

Falls Sie mehrere Alternativen gleichzeitig überprüfen möchten, dann lassen sich if-Anweisungen ineinander schachteln:

if (bedingung1) {
   // Anweisungen1
} else {
   if (bedingung2) {
      // Anweisungen2
   } else {
      if (bedingung3) {
         // Anweisungen3
      } else {
         // Anweisungen4
      }
   }
}

Anstelle von dieser Verschachtelung bietet Flash das else if, das ebenfalls eine Bedingung überprüft:

if (bedingung1) {
   // Anweisungen1
} else if (bedingung2) {
   // Anweisungen2
} else if (bedingung3) {
   // Anweisungen3
} else {
   // Anweisungen4
}

Rheinwerk Design - Zum Seitenanfang

10.1.4 switch und break  toptop

switch

Eine weitere Möglichkeit für die bedingte Ausführung von Programmcode ist die switch-Anweisung. In diesem Fall prüft Flash einen Ausdruck jeweils auf die strikte Gleichheit (d.h. dass sowohl der Wert als auch der Datentyp identisch sein müssen) mit weiteren Ausdrücken. So muss nicht zwangsläufig eine Bedingung verwendet werden:

switch (ausdruck) {
case ausdruck1 :
   // anweisungen1
   break;
case ausdruck2 :
   // anweisungen2
   break;
case ausdruck3 :
   // anweisungen3
   break;
default :
   // anweisungen4
}
break bricht Kontrollstrukturen ab!

Die break-Anweisung am Ende der einzelnen case-Blöcke ist notwendig, um die Ausführung mehrerer case-Anweisungen zu verhindern. Denn sobald die erste Bedingung erfüllt ist, werden alle weiteren case-Blöcke unabhängig von ihrem Ausdruck abgearbeitet. Wenn also ausdruck === ausdruck2 gilt, dann wird auch der restliche Programmcode inklusive den anweisungen3 und den anweisungen4 ausgeführt. Das break verhindert dies, indem die komplette Kontrollstruktur beendet wird.

In dem default-Bereich geben Sie die Anweisungen an, die ausgeführt werden sollen, falls keine der vorherigen Bedingungen zutrifft. Dies entspricht in etwa dem else bei den if-else-Anweisungen.

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