2017-05-02 7 views
2

J'essaye de configurer une application de débogage flash pour qu'un autre développeur travaille avec l'API que je construis. C'est juste un swf de base avec un txtfield pour une url d'API, un nom de fonction, une section pour ajouter des paramètres post, et une décomposition des données qu'il récupère. Cela fonctionne très bien lorsque je code le paramètre "msg" dans la classe loadVars.Affectation dynamique des propriétés au moment de l'exécution

myloadVars.msg=variable1.text 

Le problème est que je veux être en mesure de lui permettre d'ajouter ses propres paramètres lors de l'exécution via une zone de texte pour le nom du paramètre et une zone de texte pour les données qu'il envoie. J'ai essayé de comprendre cela pendant des heures. Ceci est, dans mon esprit, comment il devrait ressembler à:

var myloadVars:LoadVars = new LoadVars(); 
for (var i=0; i<params.length(); i++) { 
    myloadVars.this["param_txt.text"] = param_text.text; 
    i++; 
} 
myloadVars.sendAndLoad(target, myloadVars, "POST"); 

L'objectif principal ici est qu'il ya un champ de texte pour contenir un nom var et un champ de texte pour contenir la valeur du var être affiché. Un bouton pour l'ajouter à un tableau et quand vient le temps d'ajouter les valeurs de post à la classe loadVars, il ne fait qu'y itérer, en ajoutant le nom et la valeur intacts puis envoyé pour être traité par mes scripts dorsaux.

J'ai été accroché pendant des heures en essayant de comprendre comment prendre une chaîne littérale (valeur du champ de texte qui a le nom de variable POST) et en l'ajoutant à la classe loadVars.

Je veux juste:

var params:Object = new Object(); 
GUI: 
Param: ["course_ID"] Data: ['222'] [Add param] *click* 
param[0]-> array("course_ID", "222"); 

Param: ["course_name"] Data: ['Math3'] [Add param] *click* 
param[1]-> array("course_name", "Math3"); 

traduit à quelque chose comme:. une sorte de boucle pseudo foreach

foreach() { 
myloadVars.Param = Data; 
} 

(Désolé le code lourd pseudo J'écris dans environ 5 langues en ce moment et pas la peine d'obtenir la syntaxe exacte pour l'exemple) Mais peu importe ce que j'essaie, je ne peux pas prendre la chaîne d'entrée du champ de texte et l'utiliser pour la propriété y Nom de la classe loadVars.

longue histoire courte. J'ai un champ de texte qui prend une chaîne. Je veux utiliser cette chaîne pour nommer la propriété de la propriété loadVar qui sera publiée dans mon script backend. Au lieu de coder dur:

myloadVars.class_id = param_data.text; 

Je voudrais quelque chose comme `

myloadVars.this["param_name_text"].text = param_data.text; 

mais je ne peux pas sembler obtenir que pour travailler ...

toute aide ici les gars?

Répondre

0

Je pense que vous cherchez ceci:

myloadVars[param_name_text.text] = param_data.text; 

Si l'on suppose que le param_name_text est la référence de votre champ de saisie de nom de variable et que vous avez entré myVariableName il ce stockera l'param_data.text comme

myLoadVars.myVariableName

Cela peut être une bonne idée de vérifier les valeurs vides avant d'envoyer des données au serveur si