Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 24-02-2004, 00:57   #1 (permalink)
Work. Buy. Consume. Die.
 
Registriert seit: Feb 2003
Beiträge: 216
Unhappy Verschachtelte Schleifen hängen sich auf...

Hallo zusammen!

Ausgangssituation:
Ich habe eine Zufallszahl die 'wert' heißt.
'drawn' ist die wert-te Stelle aus einem Array.
(Mal angenommen mein Array ist [,3,1,5] und 'wert' ist 1, dann wäre also 'drawn' = 3)
'minimal' und 'maximal' sind die Grenzen aus denen die Zufallszahlen ausgewählt werden, jeweils einschließlich.

Problem:
Wenn 'drawn' Null wird, dann müssen solange neue 'wert' durchprobiert werden bis ein 'drawn' dabei ist, dass größer Null ist. Die Schleife wird dann einfach verlassen. Falls es ein solches 'drawn' nicht gibt, dann ist halt schluss und der film springt in frame 6.

Meine Lösung funktioniert nicht:
ActionScript:
  1. minimalminimal = minimal-1;
  2. if (drawn == 0) {
  3.     for (wert=minimalminimal; wert=maximal; wert++) {
  4.         drawn = 3-indquote[wert];
  5.         // Verhindert, dass drawn neg. wird
  6.         if (drawn<0) {
  7.             drawn = 0;
  8.         }
  9.         if (drawn != 0) {
  10.             break;
  11.         }
  12.         if (wert>=maximal) {
  13.             gotoAndStop(6);
  14.         }
  15.     }
  16. }
Was mache ich falsch? Warum geht die Schleife unendlich?

As
Arne_Schmidt ist offline   Mit Zitat antworten
Alt 24-02-2004, 01:52   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
Code:
for (wert= minimalminimal; wert<=maximal; wert++) {
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (24-02-2004 um 01:53 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 24-02-2004, 09:51   #3 (permalink)
Neuer User
 
Benutzerbild von Kryz
 
Registriert seit: Oct 2001
Ort: Hamburg
Beiträge: 45
*sucht immer noch nach den verschachtelten Schleifen*


"IF-Abfrage" != "Schleife"
__________________
Gruß
Kryz | WeBlog: http://www.christianscholz.com
Kryz ist offline   Mit Zitat antworten
Alt 24-02-2004, 11:53   #4 (permalink)
Neuer User
 
Benutzerbild von the binary
 
Registriert seit: Jul 2001
Ort: Berlin | Friedrichshain
Beiträge: 3.561
schieb dir doch mal ein trace() dazwischen, dann solltest du ja sehen, wo der fehler liegt.
versuch mal anstantt dem break ein 'return' zu nehmen.

break unterbricht glaube nur den aktuellen schleifendurchlauf
und beginnt wieder von vorn...

return beendet aber die ausführung des code-blocks...

gruss
__________________
8bm | join ff@BOINC
formpackage.org | audiohunter.de | problematica.de | 8ball-media.de/blog | taikonauten.cn
the binary ist offline   Mit Zitat antworten
Alt 24-02-2004, 20:12   #5 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
deine frage war "Warum geht die Schleife unendlich?" und nicht, wie breche ich eine schleife vorzeitig ab!?

auszug aus dem handbuch:

Die break-Aktion weist Flash an, den restlichen Teil der Schleife zu
überspringen, die Schleifenaktion abzubrechen und die Anweisung auszuführen, die auf die Schleifenanweisung folgt.

oder

In einer for -Schleife weist continue Flash an, den restlichen Teil der Schleife zu überspringen und zur Auswertung des Bis-Ausdrucks der
for-Schleife zu springen.

for (...
if (was auch immer){
wert=maximal;
continue;
}
danach wird die for-schleife abgebrochen, weil der "wert" nach dieser zuweissung die abbruchbedingung erfüllt.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 24-02-2004, 20:26   #6 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
und vorallem des drawn tracen!!
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 24-02-2004, 22:09   #7 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
und (ich warte mal wieder auf meinen computer) ..
ist dir klar, das

if (wert>=maximal) { gotoAndStop(6); }

kann nur einmal, beim aller letzten schleifendurchlauf zutreffen. folglich gehört das gotoAndStop aus der for- schleife raus und hinter deren ende eingesetzt. so käme auch der break- abbruch zum "genuss" des gotoAndStop.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 25-02-2004, 10:25   #8 (permalink)
Work. Buy. Consume. Die.
 
Registriert seit: Feb 2003
Beiträge: 216
@hgseib:
Ich habe einfach wie von dir in deinem ersten richtig verbessert ein <= eingesetzt und alles funktionierte jetzt ganz genau so wie gewünscht.

alle weiteren vorgeschlagenen konstruktionen etc. bringen mir nix, das ist schon alles so absichtlich gemacht. auch der break-abbruch zb. soll garnicht in den genuss des goto kommen. wahrscheinlich kam das widersprüchlich rüber, weil ich nur einen kleinen teil des codes gepostet habe. wenn das projekt fertig ist, stelle ich mal die .fla online. Alle verbesserungsvorschläge im code sind dann sehr herzlich willkommen.

as

as
Arne_Schmidt ist offline   Mit Zitat antworten
Alt 25-02-2004, 23:42   #9 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
naja, hammelherden-effekt :-)

da du nach dieser 1. korrektur immer noch nach einem fehler gesucht hattest, haben wir alle treubrav auch weiter gesucht.
wir helfen bis zum erbrechen - da sind wir von nix und niemandem aufzuhalten und schon garnicht von einer richtigen lösung!!!
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 14:27 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele