在Spark项呈示器中使用自定义状态

时间:2013-07-03 17:16:44

标签: flex flex4 flex4.5 flex4.6 flex4.7

在Flex 4中,是否允许在Spark MXML项目渲染器中使用状态?

我问这个,因为已经有“内置”状态,比如

<s:states> 
    <s:State name="normal"/> 
    <s:State name="hovered"/> 
</s:states> 

我可以添加自己的自定义状态,例如“ingame”和“inlobby”吗?

即使我的MXML项目渲染器中的AS3代码不使用/不需要它们,我是否还应该写出“正常”和“悬停”?

1 个答案:

答案 0 :(得分:3)

  

在Flex 4中,是否允许在Spark MXML项目渲染器中使用状态?

是的!渲染器就像任何其他组件一样;如果你愿意,你可以添加状态。

我不确定Flex List如何处理设置渲染器的状态。因此,渲染器中的状态似乎可能会从“自定义”状态更改为其中一个Flex状态。您可能必须覆盖currentState变量以防止此类更改。

  

即使我的MXML项目渲染器中的AS3代码不使用/不需要它们,我是否还应该写出“正常”和“悬停”?

不,如果您不需要,请不要添加它们。当发生鼠标交互(如悬停)时,ItemRenderer将最终调用其getCurrentRendererState()方法来决定在渲染器上设置的状态。在那种方法中有许多这样的陈述:

if (hovered && hasState("hovered"))
    return "hovered";

如果没有匹配,它将使渲染器的状态保持不变。