Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 24-05-2005, 22:28   #1 (permalink)
User
 
Registriert seit: Apr 2003
Beiträge: 97
string in funktion als befehl ausfuehren

hallo,

kleines problem. bin mir nicht sicher ob es dafuer eine loesung gibt:
ich will einer funktion einen auszufuehrenden befehl als string uebergeben.
etwa so:

auf zeitleiste:
ActionScript:
  1. function dosomething(what){
  2.     return what;
  3. }

auf button:
ActionScript:
  1. on(release){
  2.     _root.dosomething("_root.ball._x=350")
  3. }

kennt jemand die loesung?
habe datei zum basteln angehaengt..

danke
emil
Angehängte Dateien
Dateityp: zip string to command test.fla.zip (5,3 KB, 1x aufgerufen)
Emil ist offline   Mit Zitat antworten
Alt 24-05-2005, 22:43   #2 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
hi
wird wohl so nicht gehen. du willst zur laufzeit einen code schreiben!!!!
geht wohl nur so
function dosomething(what){
_root.ball._x=what
}
_root.dosomething(350)
__________________
gruß Harry
HAY ist offline   Mit Zitat antworten
Alt 24-05-2005, 22:49   #3 (permalink)
nah dran
 
Benutzerbild von -Panda-
 
Registriert seit: Sep 2002
Ort: Karlsruhe
Beiträge: 147
Du könntest den mc, das Property ("_x" als String) und den Wert als drei getrennte Parameter übergeben und so ausführen:

mc[property]=wert;

Aber was genau willst du erreichen? Reicht es nicht den Wert zu übergeben und den Rest in deiner Funktion zu definieren?

Gruß,
Panda
-Panda- ist offline   Mit Zitat antworten
Alt 24-05-2005, 23:05   #4 (permalink)
User
 
Registriert seit: Apr 2003
Beiträge: 97
mein beispiel soll ja nur die problematik veranschaulichen.
anwenden will ich das ganz anders.

in der realitaet soll die funktion, je nachdem wo sie im film aufgerufen wird,
neben immer wiederkehrenden aktionen auch einen bestimmten mc zum laufen bringen.

hab das bisher immer so geloest, wollte mir aber mal die ganzen if/case abfragen sparen:
ActionScript:
  1. function dosomething(what){
  2. // hier standart aktionen
  3.  
  4. //dann die abfrage:
  5. if(what=="A"){
  6. mc1.play();
  7. }
  8. if(what=="B"){
  9. mc2.play();
  10. }
  11. }
Emil ist offline   Mit Zitat antworten
Alt 24-05-2005, 23:06   #5 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
hi
sowas
PHP-Code:
function dosomething(x){
        
trace (x);
        
x
}

on(release){
        
_root.dosomething(_root.ball._x=350)

__________________
gruß Harry
HAY ist offline   Mit Zitat antworten
Alt 24-05-2005, 23:32   #6 (permalink)
User
 
Registriert seit: Apr 2003
Beiträge: 97
genau hay! nur eben so funktionierts nicht..
(ist ja auch wie mein beispiel nur mit x anstatt what)
Emil ist offline   Mit Zitat antworten
Alt 24-05-2005, 23:55   #7 (permalink)
nah dran
 
Benutzerbild von -Panda-
 
Registriert seit: Sep 2002
Ort: Karlsruhe
Beiträge: 147
Übergib doch den MC als Parameter...
-Panda- ist offline   Mit Zitat antworten
Alt 25-05-2005, 07:25   #8 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
hi
geht doch
ist halt nur kein string
__________________
gruß Harry

Geändert von HAY (25-05-2005 um 08:14 Uhr)
HAY ist offline   Mit Zitat antworten
Alt 25-05-2005, 10:06   #9 (permalink)
isNaN
 
Registriert seit: Jul 2002
Beiträge: 57
Eventuell meintest Du das hier:

ActionScript:
  1. _root.f_doSomething = function()
  2. {
  3.     trace("do something")
  4. }
  5. function callMyFunctions(functionName)
  6. {
  7.     _root[functionName]();
  8. }
  9.  
  10. callMyFunctions("f_doSomething");

Viele Grüße,

Stefan
Preldi ist offline   Mit Zitat antworten
Alt 25-05-2005, 14:33   #10 (permalink)
User
 
Registriert seit: Apr 2003
Beiträge: 97
HAY: das scheint nur zu funktionieren. der befehl wid allerdings auch ohne die funktion dosomething() ausgefuehrt

Preldi: fuer jeden befehl eine neue funktion ausfuehren? da gefaellt mir die if-abfrage innerhalb der einen funktion dann doch besser.

noch andere ideen?
Emil ist offline   Mit Zitat antworten
Alt 25-05-2005, 15:01   #11 (permalink)
isNaN
 
Registriert seit: Jul 2002
Beiträge: 57
Emil: so war das nicht gemeint. Wollte nur ein syntaktisches Beispiel geben, wie man, wenn man den Funktionsname als String hat, die entsprechende Funktion auch ausführen kann. Weiter nix. Du kannst natürlich auch innerhalb dieser Funktion mehrere Befehle ausführen ;-)

Viele Grüße,

Stefan
Preldi ist offline   Mit Zitat antworten
Alt 25-05-2005, 15:45   #12 (permalink)
User
 
Registriert seit: Apr 2003
Beiträge: 97
mmh - ja stimmt, man kann einen string in einen funktionsaufruf umwandeln.
nur wie geht es mit einem befehl?
in javascript soll das ja mit eval() funktionieren, aber flash-javascript kann es nicht..
Emil ist offline   Mit Zitat antworten
Alt 25-05-2005, 15:52   #13 (permalink)
isNaN
 
Registriert seit: Jul 2002
Beiträge: 57
Hmm, was meinst du genau mit "Befehl"? Pack vielleicht gleich mal ein Beispiel dazu. Mit dem Syntax kannst du natürlich auch die 'nativen' Flashfunktionen aufrufen:
ActionScript:
  1. var myString = "stop";
  2. myMovie[myString]();

Viele Grüße,

Stefan
Preldi ist offline   Mit Zitat antworten
Alt 25-05-2005, 16:04   #14 (permalink)
User
 
Registriert seit: Apr 2003
Beiträge: 97
na wie ganz oben im beispiel, will der funktion halt direkt einen befehl uebergeben:

ActionScript:
  1. _root.dosomething("_root.ball._x=350")
  2. //oder z.B.
  3. _root.dosomething("_root.mc1.gotoAndPlay(10)")
  4. //oder auch
  5. _root.dosomething("attachMovieClip(etc. pp)")
Emil 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:40 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele