Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 12-05-2005, 17:06   #1 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Beiträge: 51
Mehr als 256 rekursionen sonst endlosschleife

hallo zusammen,

ich bekomme manchmal diese fehlermeldung:

256 levels of recursion were exceeded in one action list.
This is probably an infinite loop.
Further execution of actions has been disabled in this movie.

nunja ich weiss dass es keine endlosschleife ist!
kann ich flash anweisen das er mehr wie 256 rekursionen
aufrufen kann. und mir eben keine fehlermeldung aufruft?
fernlicht ist offline   Mit Zitat antworten
Alt 12-05-2005, 17:09   #2 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Das kommt meistens, wenn man einen onEnterFrame nicht vernünftig löscht. "nunja ich weiss dass es keine endlosschleife ist!" Und ich wette, es ist doch eine
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 12-05-2005, 17:26   #3 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Beiträge: 51
sorry - ich benutze gar kein "onEnterFrame"
dh ich rufe solange eine function auf bis sie zB ein feld gefunden wird
das dem entspricht was ich suche.
fernlicht ist offline   Mit Zitat antworten
Alt 12-05-2005, 17:37   #4 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Ich glaube mehr als "256 levels of recursion" gehen nicht. Aber zeig doch mal die fla oder das Script vielleicht ist ja doch ein Fehler drin!?!
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 12-05-2005, 17:43   #5 (permalink)
robo kalkühl
Gast
 
Beiträge: n/a
Zitat:
Zitat von Der Frager
"nunja ich weiss dass es keine endlosschleife ist!" Und ich wette, es ist doch eine
da würd ich mich auch anschließen.

was hast du denn für einen datensatz, das der mehr als 256 rekursive aufrufe macht?
ich habe es so verstanden, das rekursion die rechenzeit und den aufwand verkürzt,
und, mal angenommen,
du wendest bei jedem aufruf die function auf die hälfte der daten an,
dann müsstest du, wenn ich mich nicht vertue jetzt, ungefähr 2^(256-1) daten haben, bei 256 aufrufen, das ist ne gante menge, und das feld wurde immer noch nicht gefunden?
hm...
überprüf nochmal deine function,

grüße,
r.
  Mit Zitat antworten
Alt 12-05-2005, 18:03   #6 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Beiträge: 51
danke für den tip!

hier mein script
<CODE>

randomFood = function(){

//trace("rows "+rows+" cols"+cols+" randomfood")

foodpos = [1+random(rows-2),1+random(cols-2)];

if(myMap[foodpos[0]][foodpos[1]] != 4 ){
randomFood();
trace("food position is the same");
}else{
container["food"]._x = (foodpos[1]*tileW)+tileW/2;
container["food"]._y = (foodpos[0]*tileH)+tileH/2;
}

}

</CODE>


es ist ein tile based game. da prüfe ich das 2DArray solange bis

->myMap[foodpos[0]][foodpos[1]] != 4 eintritt

thanx
fernlicht ist offline   Mit Zitat antworten
Alt 12-05-2005, 18:06   #7 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Nur mal eine Frage:
Die function läuft doch eh weiter. Also wieso dieses hier:
ActionScript:
  1. if(myMap[foodpos[0]][foodpos[1]] != 4 ){
  2. randomFood();

Edit: Bzw. wie rufst du die function denn auf?
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 12-05-2005, 18:12   #8 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Beiträge: 51
Die function ruft sich selber solang auf bis der wert des (spiel)feldes
nicht gleich 4 ist sondern einen anderen wert hat.
das spielarray ist selbst 11x15 felder gross.
fernlicht ist offline   Mit Zitat antworten
Alt 12-05-2005, 18:26   #9 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Ich würde mal gucken, was dir trace(myMap[foodpos[0]][foodpos[1]]) ausgibt. Und wenn's 4 ist, ob 4 eine Nummer oder ein String ist. Wenn's undefined ist haben wir's ja.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager 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 22:41 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele