Как создавать и работать с настраиваемыми метаданными в ActionScript3/Flex?
Пользовательские метаданные в AS3/Flex?
Ответ 1
Существует два общих направления для обработки метаданных в ActionScript в Flex:
- Работа в режиме исполнения с использованием отражения (или самоанализа в терминах Adobe). Здесь вы можете найти документацию . Существует несколько сторонних библиотек, которые обеспечивают более удобный интерфейс отражения, например as3-commons-reflect или API отражения в Петрушке.
- Использование Flex Compiler Extensions, которое было введено с версии 416 SDK версии 4 (см. подробности). См. Также соответствующее обсуждение и официальная документация.
Ответ 2
Чтобы создать метаданные, просто используйте синтаксис квадратной скобки в определении вашего класса:
[ClassAttr]
public class ClassWithMetadata {
[AttributeNoArgs]
public var data:Object;
[AttributeWithArgs(arg="value)]
public var prop:Object;
}
Вызовите describeType(ClassWithMetadata)
, чтобы получить описание вашего класса xml. Метаданные будут там, вы можете проанализировать и обработать, как вам нравится.
Чтобы компилятор не удалял метаданные, добавьте аргумент компилятора -keep-as3-metadata Attribute
для каждого используемого имени атрибута. Это можно сделать в настройках библиотеки или в каждом проекте, который использует метаданные.