2009-07-28 3 views
0

В моем приложении flex есть несколько пользовательских компонентов. Я хочу создать экземпляр этих компонентов во время выполнения и назначить их свойства, прочитав в файле конфигурации. Я знаю, как читать xml и создавать компоненты, однако мой вопрос заключается в возможности получить тип компонента из атрибута xml, а затем создать экземпляр этого типа. Мой XML выглядит следующим образом: Создайте экземпляры гибкого пользовательского компонента, передав тип

+0

вы имели в виду, чтобы вернуться и опубликовать XML? – ryanday

+0

с помощью xml для конфигурации ваших компонентов, вероятно, является плохим идеей и удержанием от другого языка, к которому вы привыкли. Попытайтесь сделать то же самое другим способом. –

+0

У меня был xml. Как-то он исчез из моего сообщения. – CodeQrius

ответ

2

Вы можете создать экземпляр произвольного имени типа через "Reflection API" ActionScript в:

var clazz:Class = Class(getDefinitionByName("class.from.your.xml.file.Name")); 
var component:Object = new clazz(); 

http://livedocs.adobe.com/flex/3/langref/flash/utils/package.html#getDefinitionByName()

Если вы получаете ошибку о типе не существует, это связано с тем, что он не связан нигде в вашем приложении, и компилятор только добавляет классы, на которые ссылаются. Вы можете обойти эту проблему с помощью следующего компилятора ARG:

includes class [...] 

Links один или несколько классов в результате приложения SWF-файл, являются ли эти классы требуются во время компиляции.

http://livedocs.adobe.com/flex/3/html/compilers_14.html#157203

+0

В итоге я использовал приведенный выше код в сочетании с передачей класса в экземпляр класса ClassFactory. – CodeQrius

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