Как может оболочка разработчика только ОДНОЙ части компонента Flex без необходимости переписывать всю визуализацию этого компонента?
В ArcGIS Flex Viewer (3.0) от ESRI есть контейнер WidgetTemplate, из которого я хотел бы скинуть только одну часть без необходимости нести ответственность за рендеринг всего контейнера. Например, я просто хочу обшить эту часть скина этого контейнера:
[SkinPart(required="false")]
public var header:Group;
так что я могу установить любой цвет встроенной метки заголовка, какой я хочу.
Таким образом, я создал следующий скин под названием PrintWidgetSkin.mxml:
<?xml version="1.0" encoding="utf-8"?>
<s:Skin xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<!-- host component -->
<fx:Metadata>
[HostComponent("com.esri.viewer.WidgetTemplate")]
</fx:Metadata>
<!-- states -->
<s:states>
<s:State name="open" />
<s:State name="minimized" />
<s:State name="closed" />
<s:State name="disabled" />
<s:State name="normal" />
</s:states>
<s:Group id="header">
<s:Label color="0x000000" />
</s:Group>
</s:Skin>
и присвоил этому скину свойство skinClass экземпляра WidgetTemplate:
<viewer:WidgetTemplate id="wTemplate"
width="345" height="285"
minWidth="345"
minHeight="285"
styleName="fontstyle"
accentColor="0x33FF66"
color="0x33FF66"
skinClass="widgets.Print.PrintWidgetSkin">
</viewer:WidgetTemplate>
Однако контейнер вообще не отображается, когда ему назначен этот skinClass.
Для пояснения: можно ли снять кожу только с одной части кожи, а другие части кожи и остальную часть контейнера визуализировать как обычно?
Мой основной источник - это страница Adobe по созданию скинов: О оболочках Spark