zu viele Rekursionsstufen

Snakebite

Grünschnabel
Hallo.
Habe ich eine Chance meinem Flash beizubringen, dass die mehr als 256 Rekursionstufen Absicht sind, und er diese doch freundlicherweise ausführen soll oder muss ich meine Programmierung anpassen?
Gruß Snakebite

P.S.: es geht um Flash 2004 MX Pro
 
Hi,

ändern lässt sich diese Einstellung nicht (wird u.a. ein Speicherproblem sein). Was Du machen kannst, ist, ab und zu einen Frame zu warten.

Funktionen mit Rückgabewerten sind dann natürlich nicht mehr möglich; Du musst mit Objektvariablen und Callback-Funktionen arbeiten.

Folgendes Beispiel zählt rekursiv von 300 bis 0 und wartet alle 250 Rekursionsstufen einen Frame:
Code:
function doIt(_cb) {
	trace("step: " + a);
	if (_cb) {
		doIt_init = 0;
		doIt_cb = _cb;
	}
	a --;
	if (a == 0) {
		doIt_cb();
	} else {
		doIt_init ++;
		if (doIt_init < 250) {
			doIt();
		} else {
			this.onEnterFrame = function() {
				delete this.onEnterFrame;
				doIt_init = 0;
				trace("-- frame --");
				doIt();
			}
		}
	}
}

var a = 300;

doIt(onFinished);

function onFinished() {
	trace("Result: " + a);
}

Gruß
.
 

Neue Beiträge

Zurück