在Flex 4中,是否允许在Spark MXML项目渲染器中使用状态?
我问这个,因为已经有“内置”状态,比如
<s:states>
<s:State name="normal"/>
<s:State name="hovered"/>
</s:states>
我可以添加自己的自定义状态,例如“ingame”和“inlobby”吗?
即使我的MXML项目渲染器中的AS3代码不使用/不需要它们,我是否还应该写出“正常”和“悬停”?
答案 0 :(得分:3)
在Flex 4中,是否允许在Spark MXML项目渲染器中使用状态?
是的!渲染器就像任何其他组件一样;如果你愿意,你可以添加状态。
我不确定Flex List如何处理设置渲染器的状态。因此,渲染器中的状态似乎可能会从“自定义”状态更改为其中一个Flex状态。您可能必须覆盖currentState变量以防止此类更改。
即使我的MXML项目渲染器中的AS3代码不使用/不需要它们,我是否还应该写出“正常”和“悬停”?
不,如果您不需要,请不要添加它们。当发生鼠标交互(如悬停)时,ItemRenderer
将最终调用其getCurrentRendererState()
方法来决定在渲染器上设置的状态。在那种方法中有许多这样的陈述:
if (hovered && hasState("hovered"))
return "hovered";
如果没有匹配,它将使渲染器的状态保持不变。