Variablennamen dynamisch ändern in Fliesstext mit beliebig vielen Variablen.
Hallo,
ich möchte einen Text darstellen, der (beliebig viele) Variablen (=Wörter) enthält, die ich live ändern kann.
Vorerst: ich bin absolut neu in JS. Objektbasiertes programmieren ist mir ein Begriff, aber ich lese mich erst langsam in JS ein. Eigentlich will ich meine Idee in einer anderen Software realisieren: MaxMsp von Cycling. In dieser Software lassen sich eigene Javascript einbauen und ausgeben.
Meine akute Problemstellung ist die:
Ich habe einen beliebig langen Text. (Sagen wir mal es ist Fließtext). Innerhalb meiner Software (Max) kann ich 'Messages' an mein Script schicken (diese bestehen aus Listen, wobei das erste Argument der Liste dann von dem Script als ein Funktionsname erkannt wird und die darauffolgenden Argumente als arguments[0], arguments[1] und so weiter.)
Das Script soll nun erkennen, welche Variable im Text ich aufgrund der reinkommenden Message ändern möchte.
Beispiel:
Text: „Mein Name ist X, mein Alter ist Y, ich komme aus Z“
reinkommende Message "X Jens"
Ausgabe: "Mein Name ist Jens, mein Alter ist Y, ich komme aus Z"
Soweit mein sehr begrenztes Java-Wissen reicht, könnte ich ja jetzt 3 Variablen vordefinieren:
var X = name;
var Y = alter;
var Z = Ort;
Da ich aber sehr viele solcher variablen Wörter haben werde und ich den Text weiterentwickel, wäre das nicht sinnvoll.
In meiner Vorstellung müsste also es eine globale Variable geben. Sagen wir mal „MeineAustauschbareVariable“
Mit der reinkommenden Message (Funktion?) müsste jetzt der Name jetzt der Name dieser Variablen auf den Namen der Message geändert werden, damit diese dann im Text auf den entsprechenden Wert gesetzt werden kann.
Also:
„MeineAustauschbareVariable“ wird zu X"
X=Jens
Ausgabe: „Mein Name ist Jens, mein Alter ist Y, ich komme aus Z“
neue Message: "Y 25"
„MeineAustauschbareVariable“ wird zu Y"
Y=25
Ausgabe: „Mein Name ist Jens, mein Alter ist 25, ich komme aus Z“
usw.
Mit so einem verfahren könnte ich jetzt beliebig viele neue Variablen in meinen Text einbauen, da ich dann später nur die reinkommenden Messages ändern muss, ohne das Script um die Variablen zu erweitern. Oder?
Was mich zur nächsten Frage bringt. Kann ich einen solchen Text extern in einem Texteditor schreiben und Formatieren und dann in das Script laden? Wie definiert man dann in dem Text die Variablen?
Ihr seht: mein JS Wissen ist noch nicht weit genug, um die Fragen selbst zu beantworten. Wenn mich also jemand in die richtige Richtung weisen könnte, wo ich nachlese, oder - falls der Code super simple ist, mir diesen verraten, wäre ich sehr dankbar!
(Nebenbei noch ein Wort zur Arbeitsweise von Javascript in Max:
dort gibt es eine Funktion
function anything() {}
anything erkennt akzeptiert jede besagten Messages, da anything = "message name")
Freu mich auf konstruktive Antworten!
|