在flex 4中切换状态

时间:2011-04-26 12:27:32

标签: flex flex4 flex4.5

我在我的应用程序中使用了状态。事情是我已经在列表中的第一个项目被选中。所以我这样给了,

if(itemIndex == 0)
  this.currentState="selected";

这很好用。问题是当选择其他项目时,第一项不会改变其状态,它会一直处于选中状态,直到被点击为止。 我的代码看起来像这样,

<s:BorderContainer id="outerCont" width="275" height="100" borderVisible="false"
                       backgroundColor.normal="#3D3C3C" backgroundAlpha.selected="0.1"
                       backgroundColor.selected="{data.color}">

我的州是这样的,

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

提前致谢!!

1 个答案:

答案 0 :(得分:1)

在用于更改状态的代码中,您永远不会更改回默认状态。所以,当itemIndex为0时;你设置为选定状态;但没有显示代码来移离选定的状态。尝试这样的事情:

if(itemIndex == 0)
  this.currentState="selected";
else 
  this.currentState="someOtherState";

要在Flex列表中选择某些内容时更改状态,您可以使用更改事件:

<s:List change="onChange()" />

<fx:Script><[[
  public function onChange():void{
   if(itemIndex == 0)
     this.currentState="selected";
   else 
     this.currentState="someOtherState";
   }
]]></fx:Script>

这有帮助吗?如果不;你需要详细说明一点。