2010-01-18 5 views
0

Dans une application Flex, j'essaie de transformer un objet en un QueryString tel que name1 = value1 & name2 = value2 ... Mais j'ai du mal à obtenir les noms des objets Objects. Comment puis-je énumérer les noms au lieu des valeurs?ActionScript 3 Objet à nommer chaîne de valeur

Merci

Répondre

3

Je devine que vous faites une boucle for each(in). Il suffit de faire une boucle for(in) normale et vous obtiendrez les noms au lieu des valeurs:

for(var name:String in obj) { 
    var value:* = obj[name]; 
    // do whatever you need 
} 
+0

Si c'est une classe concrète au lieu d'un simple objet, voir ObjectUtil.getClassInfo() – Sophistifunk

+0

Je crois que for (in) 'fonctionne toujours sur des classes concrètes, mais il est généralement plus limité sur ce qu'il retourne. Il ne prendra que ce que ces classes ont configuré comme visible en utilisant la méthode 'setPropertyIsEnumerable'. – Herms

1

Ok, d'abord, si vous avez besoin de cette chaîne de requête pour interroger en fait un serveur, vous ne avez pas vraiment besoin d'obtenir vous-même que ce code va interroger le serveur pour vous

protected function callSerivce():void 
{ 
    var o:Object = new Object(); 
    o.action = "loadBogusData"; 
    o.val1 = "dsadasd"; 
    service.send(o); 
} 

<mx:HTTPService id="service" url="http://www.somewhere.com/file.php" method="GET" showBusyCursor="true"/> 

fera un appel au serveur comme ceci: http://www.somewhere.com/file.php?action=loadBogusData&val1=dsadasd

Mais si vous voulez vraiment analyser l'objet à la main, essayez d'utiliser ObjectUtil. getClassInfo, il renvoie beaucoup d'informations inc luding tous les champs (lire plus sur LiveDocs).