2016-12-01 9 views
1

ActionScript에서 클래스의 DefaultProperty 메타 데이터를 가져 오려고하는데 메타 데이터 XML에서 DefaultProperty에 대한 언급을 찾을 수 없습니다. 여기런타임시 DefaultProperty 메타 데이터를 가져 오는 방법이 있습니까?

var describedTypeRecord:DescribeTypeCacheRecord = mx.utils.DescribeTypeCache.describeType(BorderContainer); 
var typeDescription:* = describedTypeRecord.typeDescription; 

는 XML이 긴하지만 반환하는 첫 번째 노드 :

<type name="spark.components::BorderContainer" base="spark.components::SkinnableContainer" isDynamic="false" isFinal="false" isStatic="false"> 

BorderContainer 또는 SkinnableContainer의 기본 속성은 mxmlContentFactory입니다 :

나는 다음과 같은 코드를 사용하고 있습니다

[DefaultProperty("mxmlContentFactory")] 

또한 RichText를 사용해 보았습니다. 이에 대한 기본 속성은 "content"입니다.

[DefaultProperty("content")] 

메타 데이터에는 아무 것도 표시되지 않습니다. 내가 컴파일러 인수를 포함 한 컴파일러 옵션에서

:

-keep-as3-metadata+=DefaultProperty 
+0

richtext에 대해 defaultProperty 메타 데이터가 표시됩니다. mxmlContentFactory는 SkinnableContainer의 DefaultProperty이며 SkinnableContainer의 경우 생성 된 xml에 표시하지만 BorderContainer의 경우 표시하지 않습니다 – Sumit

+0

예. 때로는 수퍼 클래스로 선언됩니다. 나는 부모 클래스를 걸어보고 각각을 확인해야만했다. –

답변

0

그것은 몇 가지 클래스를 설정하지 않고,이 정의되어있는 경우가 슈퍼 클래스에 정의됩니다.

내가 BorderContainer을 확인했지만 그것이 SkinnableContainer에 정의 :

<metadata name="DefaultProperty"> 
    <arg key="" value="mxmlContentFactory"/> 
</metadata> 

가 메인 클래스에 정의 된 때 내가 작품을 게시 한 코드입니다. 클래스에 기본 속성이 없으면 객체 또는 UIComponent에 도달 할 때까지 모든 수퍼 클래스 목록을 얻고 각 수퍼 클래스 목록을 확인합니다.