Можно ли создавать компоненты с изменяемым оформлением в MXML, используя архитектуру компонентов Spark?

Существует множество примеров того, как создавать компоненты с изменяемым оформлением в AS3 с использованием новой компонентной архитектуры Spark, однако я еще не нашел таких примеров с использованием MXML.

В основном я имею в виду определение частей кожи и состояний кожи. Кажется, что метаданные SkinPart должны быть связаны со свойствами и как таковые не могут использоваться в MXML, это правильно?


person Marcus Stade    schedule 14.10.2010    source источник
comment
+1 за хороший вопрос. Я этого тоже не видел, очень хочу узнать, есть ли у кого-нибудь решение для этого.   -  person Wade Mueller    schedule 14.10.2010


Ответы (1)


Насколько я могу судить, это невозможно, потому что, как вы правильно заметили, нет возможности назначать метаданные на уровне свойств в MXML.

Но объявление контрактов скинов в MXML кажется, что это противоречит духу архитектуры скиннинга, которая заключается в отделении представления компонента от логики его реализации.

И, учитывая, что в MXML все объявленное имеет значение, он по сути связывает компонент со скином.

Ie:

<!-- labelDisplay has a value -->
<s:Label id="labelDisplay" />

vs

[SkinPart]
public var labelDisplay:Label; // labelDisplay == null;

Точно так же большая часть самой логики компонента окажется в блоке <fx:Script />, который, вероятно, лучше подходит для отдельного класса.

person Marty Pitt    schedule 14.10.2010
comment
+1 за правильное указание на то, что все, что объявлено в MXML, имеет значение. MXML является весьма образцовым в определении структуры, и много раз я обнаруживал, что пишу компоненты, которые делают немного больше, чем определяют части скина и последующий шаблон (partAdded, я смотрю на вас). В любом случае, спасибо, что подтвердили мои подозрения! - person Marcus Stade; 16.10.2010