2016-11-21 1 views
0

Ich habe eine Situation, in der der Name eines Attributs XML-Namespace :: Element (z. B. http://giggle.com/some/Path::Element) ist. Es ist komische Situation, weil ich es lesen kann, aber ich kann nicht darauf zugreifen. Hier ist ein Beispiel:So erhalten Sie Objektattribut mit seltsamen Namen

var name: String = "http://giggle.com/some/Path::Element"; 
var obj: Object = createAttributes(name); 

// Now we have obj:{ "http://giggle.com/some/Path::Element" : [an array] } 

for (var attr : Object in obj[name]){ 
    // do something 
} 

Dies ist nur eine Vereinfachung der realen Sache. Es scheint, als ob ich es weder mit obj.name, noch obj[name], noch obj['"' + name + '"'] lesen kann.

Ich habe sogar so etwas wie dies versucht (mit verschiedenen Typen für Elem):

for (var elem: Object in obj) { // I tried Object, Array and * here 
    for (var c: Object in elem) 
    { 
     // do something with c 
    } 
} 

, warum dies geschieht und wie dieses Problem zu überwinden? Da es sich um ein interessantes Problem handelt, sollten Sie die Art, wie ich Obj erstelle, nicht ändern. AS3 ermöglicht die Erstellung eines solchen Attributs und ich wandere, wie wir es verwenden sollen.

Antwort

2

Ich denke, Objekt Schlüssel ist, was Sie "seltsamen Namen" genannt.

Schlüssel könnten Name oder Index-ID (Zahlen im String-Format "1", "2", ..)

for (var key:String in obj) { 
    var value:* = obj[key]; 
} 
+0

Hmm sein, es funktioniert. Entschuldigung, ich bin neu in AS3 und habe erwartet, dass ich für jeden echte Objekte bekomme, aber ich habe stattdessen nur eine Zeichenfolge bekommen. – Sasa

Verwandte Themen