Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 12-05-2006, 11:36   #1 (permalink)
ActionStripper
 
Benutzerbild von Mr.Twister
 
Registriert seit: Nov 2001
Ort: Oldenburg
Beiträge: 3.275
welche schreibweise ist "richtiger" ?

hi,

Beispiel1:
PHP-Code:
function sayHello(){
   
trace("hello")
}
sayHello() 
Beispiel2:
PHP-Code:
sayHello()
sayHello = function(){
   
trace("hello")

Im zweiten Beispiel kann ich den Funktionsaufruf bereits über der eigentlichen Funktion schreiben, flash versteht dann trotzdem, was getan werden soll.
Dennoch lese ich meistens die Schreibweise des ersten Beispiels.
Kann mir jemand sagen, wieso das so ist?

Danke für die Aufklärung :-)
__________________
Design ist AUCH Geschmackssache.
Mr.Twister ist offline   Mit Zitat antworten
Alt 12-05-2006, 11:40   #2 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Zitat:
Zitat von Mr.Twister
Im zweiten Beispiel kann ich den Funktionsaufruf bereits über der eigentlichen Funktion schreiben, flash versteht dann trotzdem, was getan werden soll.
Das is aber genau andersrum...

Siehe hier
PHP-Code:
trace(a); // --> undefined

var 5
Funktionen werden wohl zuerst vom Parser abgearbeitet, deshalb kannst du ne benannte Funktion 500 Zeilen vor ihrer Deklaration aufrufen.

In Bsp. 2 speicherst du ne anonyme Funktion in ner Variable, womit wir wieder bei meinem Code-Beispiel wären... vor Deklaration und Zuweisung kein Zugriff...
sonar ist gerade online   Mit Zitat antworten
Alt 12-05-2006, 12:07   #3 (permalink)
ActionStripper
 
Benutzerbild von Mr.Twister
 
Registriert seit: Nov 2001
Ort: Oldenburg
Beiträge: 3.275
dein beispiel mit dem trace(a) ist klar.
man kennt es ja im grunde auch immer so, daß flash den code von oben nach unten abarbeitet.
in dem von mir erwähnten fall halt nicht. Und das ist doch eigentlich auch gut.

was wäre schlimm daran, funktionen parsen zu lassen, bevor sie aufgerufen werden?

haben anonyme funktionen irgendwelche vorteile gegenüber "öffentlichen" also geparsten?
__________________
Design ist AUCH Geschmackssache.
Mr.Twister ist offline   Mit Zitat antworten
Alt 12-05-2006, 12:56   #4 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Unbenannte Funktionen sind dem Player erst bekannt, wenn er sie "eingelesen" hat. Benannte Funktionen sind dagegen immer bekannt.
  Mit Zitat antworten
Alt 12-05-2006, 13:54   #5 (permalink)
ActionStripper
 
Benutzerbild von Mr.Twister
 
Registriert seit: Nov 2001
Ort: Oldenburg
Beiträge: 3.275
Ja, und die Vor- und Nachteile?

Ich meine, wieso sollte ich denn anonyme Funktionen schreiben?
Es ist doch viel eleganter, wenn ich die Reihenfolge meiner Funktionen und deren Aufrufe beliebig setzen kann.
__________________
Design ist AUCH Geschmackssache.
Mr.Twister ist offline   Mit Zitat antworten
Alt 12-05-2006, 14:12   #6 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Zitat:
Zitat von Mr.Twister
Ich meine, wieso sollte ich denn anonyme Funktionen schreiben?
Sollst ja gar nicht...

Ich für meinen Teil verwende diese Form bspw. nur für callback-Methoden, also sowas wie
_xml.onLoad = function() {...};

Ansonsten nehm ich benannte Funktionen, weil ich mir nicht den globalen Namensraum mit Funktionsreferenzen vollballern mag...
sonar ist gerade online   Mit Zitat antworten
Alt 12-05-2006, 14:16   #7 (permalink)
ActionStripper
 
Benutzerbild von Mr.Twister
 
Registriert seit: Nov 2001
Ort: Oldenburg
Beiträge: 3.275
aaaah, na dann ist ja gut.
dann mache ich also nichts falsch, wenn ich bei meiner zweiten methode (s.o.) bleibe.

Danke!
__________________
Design ist AUCH Geschmackssache.
Mr.Twister ist offline   Mit Zitat antworten
Alt 12-05-2006, 14:26   #8 (permalink)
a.k.a maddin79
 
Benutzerbild von madflanderz
 
Registriert seit: Jul 2003
Ort: berlin f-hain
Beiträge: 1.693
doch. es ist immer besser es so zu machen:

Code:
eins();
zwei();


function eins(){
   trace(1);
}
function zwei(){
   trace(2);
}

eins();
zwei();
funktionen können von überall aufgerufen werden. außerdem macht man das in anderen programmiersprachen auch so.

gruß maddin
__________________
www.madflanderz.de

ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°` _ addicted to bass _ `°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø
madflanderz ist offline   Mit Zitat antworten
Alt 12-05-2006, 14:31   #9 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Naja, wirklich falsch is es nicht... aber unpraktisch, weil du eben zusätzlich Variablen "rumliegen" hast...

Und - da hat mad recht - in AS-Klassen bspw. deklariert man Funktionen sowieso in der ersten Form:
private function bla():Void {}
sonar ist gerade online   Mit Zitat antworten
Alt 12-05-2006, 15:58   #10 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Vor allem hilft es, Ordnung zu halten, wenn man erst einmal alle Variablen deklariert un dann alle Funktionsblöcke setzt, bevor man die Funktionen aufruft. Ich hab mir bei Nicht-OOP-Scripten angewöhnt, die Funktionsblöcke soweit möglich kaskadierend übereinander zu setzen, d.h. ein Funktionsblock ruft den darüberliegenden Funktionsblock auf.

Und natürlich arbeite ich auch wo überall möglich mit benannten Funktionen.
  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:22 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele