Я пишу как: ItemRenderer для визуализации некоторых простых графических компонентов в моем приложении.Каждый элемент может иметь несколько форм, которые могут быть выбраны пользователем, т.е. определенный элемент может быть квадратом, или кругом, или звездой, или чем-либо еще.
Самым простым способом, который я мог придумать для этого, было включить все возможные фигуры в виде: Группировать и затем управлять их видимым тегом в зависимости от того, какую фигуру выбрал пользователь.Есть ли лучший способ сделать это?
Кроме того, если я инкапсулирую группу в отдельный компонент MXML, как я могу передать состояние itemRenderer (скажем, "hovered") в компонент MXML, который управляетформы?
спасибо!
f
Отредактировано: вот фрагмент кода, чтобы лучше объяснить ситуацию.Допустим, вы хотите отобразить три типа объектов в качестве альтернативы - приведенный ниже ИК с фрагментом AS, который становится видимым в false для 2 из 3 объектов, определенно делает свое дело, но мне кажется таким уродливым.В то же время я нашел setCurrentState (stateName: String, playTransition: Boolean = true) для распространения состояния вниз, так что это решено.
<s:ItemRenderer>
<s:states>
<s:State name="normal" />
<s:State name="hovered" />
</s:states>
<s:Group width="100%">
<s:Rect width="20" height="10" radiusX="3" radiusY="3">
<s:stroke>
<s:SolidColorStroke color="Black" weight="1" pixelHinting="true"/>
</s:stroke>
<s:fill>
<s:SolidColor color="red" />
</s:fill>
</s:Rect>
<s:Rect id="square" width="10" height="10" radiusX="3" radiusY="3">
<s:stroke>
<s:SolidColorStroke color="Black" weight="1" pixelHinting="true"/>
</s:stroke>
<s:fill>
<s:SolidColor color="green"/>
</s:fill>
</s:Rect>
<s:Ellipse id="circle" visible="true" width="10" height="10">
<s:stroke>
<s:SolidColorStroke color="Black" pixelHinting="true" weight="1"/>
</s:stroke>
<s:fill>
<s:SolidColor color.normal="yellow" color.hovered="0xCEDBEF"/>
</s:fill>
</s:Ellipse>
</s:Group>