Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 05-05-2005, 14:44   #1 (permalink)
°
 
Benutzerbild von echo5-7
 
Registriert seit: Aug 2002
Ort: Baden-Baden
Beiträge: 3.962
function, onEnterFrame, rekursionsstufen

hi,
normalerweise mach ich eine onEnterFrame funktion ja so:

this.onEnterFrame = function () {trace("blabla");}

jetzt könnte ich es aber gebrauchen, das ich eine anderswo definierte funktion per onEnterFrame aufrufe. quasi so:

function gogo() {
trace("gogo");
}
this.onEnterFrame = gogo();

das wird bei mir aber nur einmal ausgeführt? weiß jemand warum, oder andersrum, hat jemand mal schnell die richtige syntax für mich?

was ich mich noch frage ist, wenn ich die funktion so per onEnterFrame aufrufe, ergibt sich da nicht ein problem mit den 256 rekursionsstufen? also, das die funktion zu oft aufgerufen wird?

gruß echo
__________________

LRRM | BLOG | FACEBOOK | TWITTER | G+
echo5-7 ist offline   Mit Zitat antworten
Alt 05-05-2005, 15:02   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
this.onEnterFrame = gogo;

mit klammer ist es eine function, die ausgeführt wird.
ohne klammer ist es "nur" der name/ adresse der funktion.

----------
EnterFrame
der programmablauf führt alle befehle eines frames aus. falls kein stop() dabei war gehts zum nächsten frame. wenns der letzte frame war gehts zum 1. frame.
das ganze heisst loopen und das geht unendlich.

----------
rekursion
eine funktion ruft sich selbst auf. bei jedem aufruf werden die localen variablen angelegt. dabei geht irgendwann mal der speicher aus. deshalb sind rekursionen begrenzt.
klassisches rekursionsbeispiel: die berechnung der fakultät.
ActionScript:
  1. function fFakultaet(n) {
  2.     return n*((n>1) ? fFakultaet(n-1) : 1);
  3. }
  4. trace(fFakultaet(5));
die funktion ruft sich selbst so lange auf, bis n nicht mehr grösser 1 ist:
5 * fFakultaet(4)
4 * fFakultaet(3)
3 * fFakultaet(2)
2 * fFakultaet(1)
1
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (05-05-2005 um 15:11 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 05-05-2005, 15:03   #3 (permalink)
°
 
Benutzerbild von echo5-7
 
Registriert seit: Aug 2002
Ort: Baden-Baden
Beiträge: 3.962
ah gut, und wenn ich dem teil jetzt parameter mitgeben möchte, macht das nix wenn die klammern wieder da sidn?
__________________

LRRM | BLOG | FACEBOOK | TWITTER | G+
echo5-7 ist offline   Mit Zitat antworten
Alt 05-05-2005, 15:04   #4 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
Hi.
Was steht denn in deiner gogo() ?

Mit rekursion hat das nicht viel zutun.. rekursion wäre es, wenn du die function sich selbst aufrufen lässt.. also so:
ActionScript:
  1. function gogo () {
  2.    trace("blabla");
  3.    gogo();
  4. }

die syntax für des oEF :
ActionScript:
  1. function gogo () {
  2.    trace("blabla");
  3. }
  4. this.onEnterFrame = function () {
  5.     gogo();
  6. }
...so haste jedenfalls net das prob mit den parametern

lg
pape
pape ist offline   Mit Zitat antworten
Alt 05-05-2005, 15:12   #5 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
"..wenn ich dem teil jetzt parameter mitgeben möchte.."
onEnterFrame kann man keine parameter mitgeben!
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 05-05-2005, 15:15   #6 (permalink)
°
 
Benutzerbild von echo5-7
 
Registriert seit: Aug 2002
Ort: Baden-Baden
Beiträge: 3.962
also heute ist nicht mein tag, hätte ich selber drauf kommen müssen *tilt*

tausend dank dafür
__________________

LRRM | BLOG | FACEBOOK | TWITTER | G+
echo5-7 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 13:31 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele