Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 19-06-2007, 12:19   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Beiträge: 174
Funktion beendet?

Hey Jungs und Mädels.

PHP-Code:
function one():Void {
     
two();
}
function 
two():Void {

Wird bei dem kontruierten Beispiel die Funktion "two" in der "one" ausgeführt? Oder is die "one" dann beendet?


stens
stens ist offline   Mit Zitat antworten
Alt 19-06-2007, 12:24   #2 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Natürlich wird two() aufgerufen. Wie kommst du drauf, dass die Funktion dadurch beendet würde..?
(sowas kann man übrigens auch ausprobieren...)
sonar ist offline   Mit Zitat antworten
Alt 19-06-2007, 12:26   #3 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
In diesem Fall beides.

Die two() wird aus der one() aufgerufen und danach ist
die one() zuende. Aber Flash springt nach Abarbeiten der
two() nochmal in die one() zurück, falls Du das meinst.

Einfacher Test:

PHP-Code:
function one():Void {
    
trace("1");
    
two();
    
trace("3");
}

function 
two():Void {
    
trace("2");
}

one(); 
Ergibt: 1 2 3

gruß, gaspode
gaspode ist offline   Mit Zitat antworten
Alt 19-06-2007, 13:08   #4 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Beiträge: 174
klar wird two aufgerufen. Wird "one" beendet beim aufruf von "two" oder bleibt die Funktion trotzdem noch weiter im Speicher und aktiv?

stens
stens ist offline   Mit Zitat antworten
Alt 19-06-2007, 13:17   #5 (permalink)
no guts no glory
 
Benutzerbild von readme.txt
 
Registriert seit: May 2004
Ort: Nordhorn
Beiträge: 7.998
Das hat Gaspode dir doch mit seinem Bsp. gezeigt?
__________________
Bitte keine Privaten Nachrichten mit Fragen, dazu ist das Forum selbst da. Danke.

'We live in an amazing, amazing world, and it's wasted on the crappiest generation of spoiled idiots.'
readme.txt ist offline   Mit Zitat antworten
Alt 19-06-2007, 13:18   #6 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
du bist aber hartnäckig erkenntnisresistent...

Hat gaspode doch hinreichend gezeigt.
JA, die Funktion one bleibt sowohl im Speicher als auch aktiv.

Wenn du es dir genau ansehen willst, setze einen Breakpoint in die Funktion und schau dir das im Debugger an (mit Strg-Shift-Enter)

Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 19-06-2007, 14:32   #7 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Beiträge: 174
Entweder hab ich mich falsch ausgedrückt oder ihr habt mich falsch verstanden.

PHP-Code:
function test():Void {
  var 
5;
  
test2();
}
function 
test2() {
    
trace ("a: "+a);    
}
test(); 
Gibt nämlich a: undefined aus. Also bleibt die "äußere" Funktion und damit alle von eben dieser Funktion angelegten Variablen NICHT bestehen. Also wird die test beendet und somit danach auch gelöscht (im Speicher) und gibt den Speicher wieder frei. Was Gaspode schrieb is ja richtig. Dennoch nicht für meine Frage hilfreich. Die Funktionen werden freilich immer bis zum Ende ausgeführt.

Dankt euch...


stens

Geändert von stens (19-06-2007 um 14:34 Uhr) Grund: ereignisresistenz
stens ist offline   Mit Zitat antworten
Alt 19-06-2007, 14:44   #8 (permalink)
FBx
 
Benutzerbild von xlive
 
Registriert seit: May 2003
Beiträge: 968
woher soll die funktion test2 die variable a kennen, wenn du diese in test initialisierst? schaue dir mal das kapitel gültigkeit von variablen an.
PHP-Code:
var a:Number;
function 
test():Void {
  
5;
  
test2();
}
function 
test2() {
    
trace ("a: "+a);    
}
test(); 
gs
xlive ist offline   Mit Zitat antworten
Alt 19-06-2007, 15:14   #9 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Beiträge: 174
Eben. Das war ja der Punkt. Wird die Funktion 2 "innerhalb" der Funktion 1 ausgeführt, wäre die Variable bekannt. Wenn die erste aber mit dem Aufruf der zweiten beendet wird geht die Varible "verloren".
Ich weiß. Es ging um scope und Gültigkeit. Da ich das nicht gleich genau rausbekommen hab, hab ich hier einfach mal gefragt, da ich dachte, dass es wenn es überhauot jmd genau wissen sollte, dann hier. Wozu ja ein Forum da is... ;-)

stens
stens ist offline   Mit Zitat antworten
Alt 19-06-2007, 15:20   #10 (permalink)
FBx
 
Benutzerbild von xlive
 
Registriert seit: May 2003
Beiträge: 968
... oder die hilfe(F1). "Variablen und Gültigkeitsbereiche" ist der suchbegriff

gs
xlive ist offline   Mit Zitat antworten
Alt 19-06-2007, 15:22   #11 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
Wenn du lokale Variablen hast (sind alle, nur unterschiedliches Bezugssystem),
dann haben die eben nur lokal Ihre Gültigkeit.

Das hat nichts damit zu tun, ob Befehl 1 vor 2 abgeschlossen ist.
sebastian ist offline   Mit Zitat antworten
Alt 19-06-2007, 15:34   #12 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Beiträge: 174
alles klar.
stens 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:39 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele