Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 08-04-2006, 02:15   #1 (permalink)
FlashForRum
 
Benutzerbild von störie
 
Registriert seit: Oct 2004
Ort: börlinn
Beiträge: 583
functions aus array aufrufen

ahoi partymuffel!

ich habe einen array, in dem ich die namen verschiedener funktionen gespeichert habe:

this.funktionen = [funktion1(), funktion2(), funktion3()];

gibt es die möglichkeit diese jetzt irgendwie über:

this.funktionen[i]

aufzurufen?


strie
__________________
>>Achim Fehltdawas<<
°-°
mySite
myFlash-toons
mySpace
störie ist offline   Mit Zitat antworten
Alt 08-04-2006, 08:59   #2 (permalink)
nobody is perfect
 
Benutzerbild von Decrone
 
Registriert seit: Apr 2002
Ort: Bremen
Beiträge: 3.049
moin

probiere das mal

PHP-Code:
funktionen = [gehen(), laufen(), rennen()];
function 
gehen(){
    
trace("gehen");
}
function 
laufen(){
    
trace("laufen");
}
function 
rennen(){
    
trace("rennen");
}
funktionen[0];
funktionen[1];
funktionen[2]; 
Gruss Dec
__________________
FF Unterstützen! Erste Hilfe! häufig gestellten Fragen
...................... ............... ................................
Decrone ist offline   Mit Zitat antworten
Alt 08-04-2006, 10:42   #3 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hi Decrone

Da hast du einen Denkfehler drin. Weiß ich, weil ich genau den auch mal gemacht habe. Bei deiner Version würden die Funktionen direkt aufgerufen werden. So hingegen ginge das:
PHP-Code:
funktionen = [gehenlaufenrennen];
function 
gehen() {
    
trace("gehen");
}
function 
laufen() {
    
trace("laufen");
}
function 
rennen() {
    
trace("rennen");
}
funktionen[0](); 
funktionen[1](); 
funktionen[2](); 
edit: Deswegen halt blöde, weil man's beim Testen gar nicht merkt...
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 08-04-2006, 13:22   #4 (permalink)
FlashForRum
 
Benutzerbild von störie
 
Registriert seit: Oct 2004
Ort: börlinn
Beiträge: 583
hammmermässich, dass das funktioniert.

jungs DAS hat mir derbe weitergeholfen.
1000 dank.

strie
__________________
>>Achim Fehltdawas<<
°-°
mySite
myFlash-toons
mySpace
störie ist offline   Mit Zitat antworten
Alt 09-04-2006, 15:22   #5 (permalink)
nobody is perfect
 
Benutzerbild von Decrone
 
Registriert seit: Apr 2002
Ort: Bremen
Beiträge: 3.049
Zitat:
Zitat von Der Frager
Hi Decrone

Da hast du einen Denkfehler drin. Weiß ich, weil ich genau den auch mal gemacht habe. Bei deiner Version würden die Funktionen direkt aufgerufen werden. So hingegen ginge das:
edit: Deswegen halt blöde, weil man's beim Testen gar nicht merkt...
many thank's für den Hinweis...@Der Frager

Gruss Dec
__________________
FF Unterstützen! Erste Hilfe! häufig gestellten Fragen
...................... ............... ................................
Decrone ist offline   Mit Zitat antworten
Alt 09-11-2006, 18:57   #6 (permalink)
________________
 
Benutzerbild von Katze
 
Registriert seit: May 2002
Ort: Braunschweig
Beiträge: 441
Wie funktionierten sowas in OOP? Steh gerade aufn schlauch...

er führt mir zwar dann in der function ein trace aus, aber mehr auch net?!?
__________________
Etwas nicht zu können, ist kein Grund es nicht zu tun!

STUDIO B12 Blog

Geändert von Katze (09-11-2006 um 19:00 Uhr)
Katze ist offline   Mit Zitat antworten
Alt 09-11-2006, 19:58   #7 (permalink)
°
 
Benutzerbild von echo5-7
 
Registriert seit: Aug 2002
Ort: Baden-Baden
Beiträge: 3.962
wie geil, genau das was ich grade gesucht habe...
__________________

LRRM | BLOG | FACEBOOK | TWITTER | G+
echo5-7 ist offline   Mit Zitat antworten
Alt 24-08-2007, 11:48   #8 (permalink)
flasher
 
Registriert seit: May 2002
Ort: in alsternähe
Beiträge: 133
genau das suche ich auch gerade jedoch würde ich den funktionen noch parameter mitgeben. geht das auch? bei mir werden die funktionen leider auch sofort ausgeführt, wenn ich parameter mitübergebe.
kann man die funktionen ansonsten vielleicht als string übergeben und die werden dann beim aufruf in funktionen umgewandelt? geht sowas?

gruß, jimmy
Jimmy@wOrk ist offline   Mit Zitat antworten
Alt 24-08-2007, 11:53   #9 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.137
Sucht ihr sowas?

call_method(name:String, params:Array) anstatt eval()
Omega Psi ist offline   Mit Zitat antworten
Alt 24-08-2007, 11:58   #10 (permalink)
flasher
 
Registriert seit: May 2002
Ort: in alsternähe
Beiträge: 133
hi omega psi,
danke für die schnelle antwort.
also ich suche etwa soetwas:

PHP-Code:
motionAr.push(setLine(020));
motionAr.push(moveLine(021));
motionAr[0](); 
aber das funktioniert halt nicht.

möglich wäre auch:
PHP-Code:
motionAr.push("setLine(0, 2, 0)");
motionAr.push("moveLine(0, 2, 1)");
start(motionAr[0]); 
wobei die funktion start() den string in die entsprechende funktion umwandelt? aber geht das überhaupt???

ciao, jimmy

ps: vielleicht sollte ich noch sagen, dass ich mit flash 8 und as 2 arbeite....

Geändert von Jimmy@wOrk (24-08-2007 um 12:00 Uhr)
Jimmy@wOrk ist offline   Mit Zitat antworten
Alt 24-08-2007, 12:18   #11 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.137
ActionScript:
  1. var functions:Array = new Array(helloWorld, addition);
  2. function helloWorld():String {
  3.     return "Hello World";
  4. }
  5. function addition(param1:Number, param2:Number):Number {
  6.     return param1+param2;
  7. }
  8. for (var i:Number = 0; i<functions.length; i++) {
  9.     if (functions[i] == helloWorld) {
  10.         trace(this.functions[i].apply(this, []));
  11.     } else if (functions[i] == addition) {
  12.         trace(this.functions[i].apply(this, [2, 4]));
  13.     }
  14. }
Ausgabe:
Zitat:
Hello World
6
Omega Psi ist offline   Mit Zitat antworten
Alt 24-08-2007, 12:20   #12 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.137
Willst du Bewegungen hintereinander ausführen?
Omega Psi ist offline   Mit Zitat antworten
Alt 24-08-2007, 12:22   #13 (permalink)
flasher
 
Registriert seit: May 2002
Ort: in alsternähe
Beiträge: 133
prinzipiell eigentlich schon, ja.

deinen vorherigen post schaue ich mir jetzt mal genauer an, danke
Jimmy@wOrk ist offline   Mit Zitat antworten
Alt 24-08-2007, 12:31   #14 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.137
Das ganze läuft so ab: Zur Kompilierung werden die Funktionen erzeugt. funktionen sind in ActionScript Referenztypen, das heisst, ich kann auf sie zur Laufzeit zeigen. Dafür reicht der Bezeichner. Die Bezeichner speichere ich in einem Array. Die kann ich dann in einer Schleife abrufen und mit apply aufrufen.

Kannst dir ja auch mal die Tween-Klassen anschauen.
Omega Psi ist offline   Mit Zitat antworten
Alt 24-08-2007, 15:19   #15 (permalink)
flasher
 
Registriert seit: May 2002
Ort: in alsternähe
Beiträge: 133
ich benutze schon Tweener, aber ich wollte das alles noch vereinfachen, deswegen brauchte ich halt diesen umweg.

habe es jetzt ganz anders, aber auch recht elegant gelöst. ich habe nun eine funktion mit vier parametern, die wiederum zwei array erstellt. in dem einen liegt nur die function und in dem anderen array liegen alle parameter.
PHP-Code:
motionFuncAr[motionArPos] = func;
motionParamAr[motionArPos] = [[lineId],[pid],[distid]]; 
eine weitere funktion startet die animation. dieser kann ich noch einen parameter übergeben, ob die animation aufeinmal oder hintereinander abgespielt werden sollen.

ich bin ganz zufrieden. danke für deine hilfe und anregungen.
ciao, jimmy
Jimmy@wOrk 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:34 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele