2010-04-15 5 views
0

Возможно ли отразить объект в actionscript и вернуть имена свойств в том порядке, в котором они расположены в классе? Я попытался следующиеОтражение объектов ActionScript

var reflectionObject : Object = ObjectUtil.getClassInfo(obj); 
var propsArray : Array = reflectionObject.properties; 
(orders alphabetically) 

var typeInfo:XML = describeType(obj) 
(Not sure what order this is) 
+0

Я положил ответ Кристофера так же правильно, как и помогал. Фактический ответ заключается в том, что вы не можете в настоящее время делать это в as3. Возможно, как4?!? – Chin

ответ

1

Существует мало способов, отражающий объект в AS3, но все они упоминаются на этом site.

Оба ваши пути верны.

Другие способы этого включают в себя, но не ограничиваются ими следующие, в соответствии с insideria:


  • Accessors (Getters/сеттеры)

    var accessors:XMLList = classAsXML.accessor; 
    trace("accessors", accessors.length(), accessors); 
    
  • Свойства

    var variables:XMLList = classAsXML.variable; 
    trace("variables", variables.length(), variables); 
    

EDIT: Я пересмотрел свой ответ, и я нашел следующее site, добавляющий некоторые подробности об отражении.

EDIT 2: Я знал, что кое-что забыл. То, что jonathanasdf в его комментарии верно: нет способа получить свойства в порядке, определенном в указанном классе.

+2

Однако вы не получите их обратно точно в том порядке, в котором они были определены в классе. Нет никакого способа сделать это, афайк. И свойство .method тоже. – jonathanasdf

+0

Это правда. Спасибо, что указали это. –

+0

Спасибо. Мне просто нужно добавить некоторые метаданные к моим классам, чтобы достичь этого? Мне очень нравится использовать отражение :) спасибо – Chin

Смежные вопросы