Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 在Spark项渲染器中使用自定义状态_Apache Flex_Flex4_Flex4.5_Flex4.6_Flex4.7 - Fatal编程技术网

Apache flex 在Spark项渲染器中使用自定义状态

Apache flex 在Spark项渲染器中使用自定义状态,apache-flex,flex4,flex4.5,flex4.6,flex4.7,Apache Flex,Flex4,Flex4.5,Flex4.6,Flex4.7,在Flex4中,是否允许在Spark MXML项目呈现器中使用状态 我问这个问题,因为已经有像这样的“内置”状态 <s:states> <s:State name="normal"/> <s:State name="hovered"/> </s:states> 我是否可以添加自己的自定义状态,如“ingame”和“inlobby” 即使MXML项目呈现器中的AS3代码不使用/不需要它们,我是否仍应写出“正常”和“悬停”

在Flex4中,是否允许在Spark MXML项目呈现器中使用状态

我问这个问题,因为已经有像这样的“内置”状态

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

我是否可以添加自己的自定义状态,如“ingame”和“inlobby”

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

在Flex4中,是否允许在Spark MXML项目呈现器中使用状态

对!!渲染器与其他任何组件一样只是一个组件;如果愿意,您可以添加状态

我不确定Flex列表如何处理渲染器状态的设置。因此,渲染器中的状态可能会从“自定义”状态更改为Flex状态之一。您可能必须重写currentState变量以防止此类更改

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

不,如果你不需要它们,就不要添加它们。当鼠标交互(如悬停)发生时,
ItemRenderer
将调用其
GetCurrentRenderState()
方法来决定要在渲染器上设置的状态。在该方法中有许多类似的语句:

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

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

是的,这正是我担心的:将鼠标悬停在项目上会将状态从我的自定义“ingame”更改为“horinging”…您必须尝试并查看。如果您自己的组件没有实现“悬停”或“正常”状态,那么应该没有问题。[我想]@AlexanderFarber我编辑了@Reboog711的答案(希望你不介意!)来回答你的另一个问题。这也会让你了解它将如何干扰你自己的州。重写
GetCurrentRenderState()
如果需要解决它。@AlexanderFarber当项目呈现器变得如此复杂时,我倾向于将其封装在单独的组件中,然后将其组合到项目呈现器中。这将自定义状态留给自定义组件,渲染器状态留给渲染器(如果需要的话),这对我来说似乎更干净。尽管在技术上完全可以像Reboog711和Sunil D.指出的那样,在ItemRenderer中单独处理这一切。