Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 17-02-2004, 14:21   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2004
Beiträge: 69
dynamische befehle mit eval?

sorry, komme mit dem eval() einfach nicht klar!

ich möchte einen befehl als string in eine variable reinschreiben und diesen später ausführen lassen:

var cmd = "this._x += 3;";

wie kann ich dann den inhalt von cmd ausführen lassen? mit

eval(cmd);

funktioniert es leider nicht. weiss da jemand die lösung? danke für eure hilfe!

malte
malte_b ist offline   Mit Zitat antworten
Alt 17-02-2004, 14:38   #2 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
ich glaube nicht, dass das möglich ist. Dafür müsstest du dir wohl einen Parser bauen.

Dieser müsste dann eben den String nach Operatoren durchsuchen, daran den String aufsplitten (PUnkt vor String, Klammern beachten...) und dann alles ausführen.
Ziemlich kompliziert, wenn du es geschafft hast, meldest du dich, ich wäre daran interessiert
Janoscharlipp ist offline   Mit Zitat antworten
Alt 17-02-2004, 14:44   #3 (permalink)
Neuer User
 
Registriert seit: Jan 2004
Beiträge: 69
hmmm, ich glaube, ich sollte mich nach einer anderen idee umsehen! einen parser zu programmieren erscheint mir für meine sache nicht wirklich sinnvoll.

trotzdem danke!

malte
malte_b ist offline   Mit Zitat antworten
Alt 18-02-2004, 02:10   #4 (permalink)
Neuer User
 
Registriert seit: Nov 2001
Ort: Köln
Beiträge: 106
Nach so einer Möglichkeit habe ich auch schonmal gesucht, aber nicht gefunden. Hab's dann mit dynamischen Funktionen annähernd so hinbekommen wie ich wollte.
So in der Art:

ActionScript:
  1. ichHeinz = function () {
  2.     trace ("ich bin der heinz.");
  3. }
  4. ichAuchHeinz = function () {
  5.     trace ("ich bin auch der heinz.");
  6. }
  7. alleHeinze = function () {
  8.     trace ("wir sind nämlich alle heinze.");
  9. }
  10.  
  11. // dynamische Funktionenzuweisung
  12. myFunction = ichHeinz;
  13. myFunction (); // erster Output
  14.  
  15. myFunction = ichAuchHeinz;
  16. myFunction (); // zweiter Output
  17.  
  18. // zusammensetzen von Funktionsnamen
  19. string0 = "alle";
  20. string1 = "Heinze";
  21. jetztAber = eval(string0 add string1);
  22. jetztAber(); // dritter Output
  23.  

...ergibt dann im trace-Fenster:

PHP-Code:
ich bin der heinz.
ich bin auch der heinz.
wir sind nämlich alle heinze
Vielleicht hilft Dir das ja weiter...?
__________________
http://www.rumbke.de
leif ist offline   Mit Zitat antworten
Alt 18-02-2004, 09:47   #5 (permalink)
Neuer User
 
Registriert seit: Jan 2004
Beiträge: 69
hi leif!

erstmal danke für deine antwort!

deine lösungsmöglichkeit hatte ich gestern auch schon probiert. funktioniert soweit auch sehr gut. bis auf eine wichtige sache:

ich schreibe meine app objektorientiert, und wenn ich meine funktion in der Klasse nach deinem beispiel aufrufe, wird die funktion zwar ausgeführt, dafür sind aber sämtliche Attribute der Klasse nicht mehr bekannt. keine ahnung wieso! aber ich kann nicht mehr auf die attribute zugreifen.

hat vielleicht jemand eine ahnung, woran das liegen könnte? ich bin da leider echt ratlos. danke für eure hilfe!

malte
malte_b ist offline   Mit Zitat antworten
Alt 18-02-2004, 12:06   #6 (permalink)
Neuer User
 
Registriert seit: Nov 2001
Ort: Köln
Beiträge: 106
...hmmm komisch. Keine Ahnung.
__________________
http://www.rumbke.de
leif 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 08:21 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele