Wiederholung der Basiskurve mit einer do-while-Schleife
Ergebnis der swf-Datei
Die Wiederholungen der Basiskurve werden über eine do-while-Schleife gesteuert.
Wiederholung der Basiskurve
Im letzten Arbeitsschritt wurde die Basiskurve mittels einer for-Schleife sechsmal aneinandergereiht.
for (var i:Number = 0; i<6; i++) { |
Im letzten Arbeitsschritt endet die Gesamtkurve auf Grund der gewählten Parameterwerte innerhalb der Bühne.
Unser Ziel ist es jedoch, die Kurve über die ganze Bühnenbreite zu zeichnen.
In einer for-(Zähl-)Schleife sind in der Regel das Wiederholungskriterium und damit die Anzahl der Wiederholungen bereits vor Beginn der Abarbeitung der Schleife fixiert.
Wenn man die Breite der Basiskurve parametrisiert, müsste man daher bei einer for-Schleife die Anzahl der Wiederholungen relativ zum Breitenparameter vorher ausrechnen und diesen Wert in das Wiederholungskriterium einfügen:
w ist im nachfolgenden Codeabschnitt die Breite der Basiskurve und count die Anzahl der Wiederholungen.
Die Funktion Math.ceil(x) berechnet die größte ganze Zahl größer oder gleich x .
var count:Number = Math.ceil(Stage.width/w); |
Eleganter ist es jedoch, nicht die Anzahl der Wiederholungen vorher zu berechnen, sondern den Abbruch der Schleife durch das eigentliche Wiederholungskriterium zu beschreiben:
Der Anweisungsblock der Schleife wird wiederholt, wenn der Endpunkt der zuletzt gezeichneten Basiskurve innerhalb der Bühne liegt. Das lässt sich mit einer do-while-Schleife realisieren.
Der Programmcode ohne Erklärungen
Codeabschnitte, die sich nicht vom vorigen Arbeitsschritt unterscheiden, werden grau geschrieben.
// BÜHNENRECHTECK MIT FARBE FÜLLEN UND KONTURIEREN |
Der Programmcode mit Erklärungen
Wiederholungskriterium und logisches UND
Der Endpunkt der zuletzt gezeichneten Basiskurve, der gleichzeitig der Startpunkt der nächsten Basiskurve ist, muss innerhalb der Bühne liegen.
Innerhalb der Bühne liegen heißt, daß
die x-Koordinate des Punktes größer oder gleich 0 UND kleiner als die Bühnenbreite ist UND
die y-Koordinate des Punktes größer oder gleich 0 UND kleiner als die Bühnenhöhe ist .
Es müssen also vier Bedingungen gleichzeitig erfüllt sein, damit der Punkt, dessen x- und y-Koordinaten im Array point abgespeichert werden, innerhalb der Bühne liegt.
D.h. die Einzelbedingungen werden über das logische UND && verknüpft: Die Gesamtbedingung ist wahr, wenn alle Teilbedingungen erfüllt sind.
0<=point.x && point.x<Stage.width && 0<=point.y && point.y<Stage.height |
do-while-Schleife
do { |
Das Zeichnen der Basiskurve wird wiederholt, solange das Wiederholungskriterium erfüllt ist.
Man erkennt, dass die Kurve nicht mehr fortgesetzt wird, sobald der Endpunkt außerhalb der Bühne liegt.
while-Schleife
Im Fall der do-while-Schleife wird die Basiskurve auf jeden Fall einmal gezeichnet, auch wenn der Startpunkt außerhalb der Bühne liegt.
Wenn man das nicht möchte, muß man eine while-Schleife verwenden:
while (0<=point.x && point.x<Stage.width && 0<=point.y && point.y<Stage.height){ |