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