2010-04-15 3 views
0

액션 스크립트에 객체를 반영하고 속성 이름을 클래스의 순서대로 되돌릴 수 있습니까? 내가 시도 다음액션 스크립트 객체 반영하기

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에서 수행 할 수 없다는 것입니다. 아마 as4?!? – Chin

답변

1

가 AS3에서 객체를 반영하는 작은 방법이지만, 그들 모두가이 site에 언급되어있다.

두 가지 방법 모두 정확합니다. 그렇게하는

다른 방법 insideria에 따라 포함하지만 다음과 제한되지 않습니다


  • 접근 자 (게터/세터)

    var accessors:XMLList = classAsXML.accessor; 
    trace("accessors", accessors.length(), accessors); 
    
  • 속성을

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

편집 : 나는 내 대답을 수정하고 난 반사에 대한 몇 가지 세부 사항을 추가하는 다음 site을 발견했다.

편집 2 : 여기에 뭔가 깜빡했다. 그의 말에 의하면 jonathanasdf이 말한 것은 사실입니다 : 그 클래스에 정의 된 순서로 속성을 가져올 방법이 없습니다.

+2

그러나 클래스에서 정의 된 순서대로 정확하게 다시 가져올 수는 없습니다. 그렇게 할 방법이 없습니다, afaik. 그리고 .method 속성도 있습니다. – jonathanasdf

+0

사실입니다. 그것을 지적 주셔서 감사합니다. –

+0

감사. 그때 이것을 달성하기 위해 수업에 메타 데이터를 추가해야할까요? 나는 리플렉션을 사용하는 것을 정말 좋아한다. :) thanks – Chin