2010-05-11 65 views
0

我有一个HGroup,其中有一些按钮,其中是我的应用程序的菜单。HGroup中的Flex 4按钮状态

<s:HGroup id="nav"> 
    <s:Button id="homeButton" label="Home" /> 
    <s:Button id="showroomButton" label="Showroom" /> 
    <s:Button label="Catalogue" /> 
    <s:Button label="Offers" /> 
    <s:Button label="My Account" /> 
    <s:Button label="My Orders" /> 
</s:HGroup> 

我想,当我点击例如#homeButton改变其状态为“过度”,成为残疾人和所有其他按钮重新设置为“向上”状态。

我已经写了这个功能

private function resetNavState():void { 
     for(var i:int = 0,ii:int = nav.numChildren-1;i<ii;i++) { 
     Button(nav.getChildAt(i)).mouseEnabled = true; 
     Button(nav.getChildAt(i)).skin.setCurrentState("up",true); 
    } 
} 

,然后例如为homeButton点击处理,我使用

protected function homeButton_clickHandler(event:MouseEvent):void 
{ 
    resetNavState(); 
    currentState = "home"; 
    homeButton.skin.setCurrentState("over",true); 
    homeButton.mouseEnabled = false; 

} 

我重置#nav按钮的状态,但它不会改变按下按钮的状态。

任何想法?

Thanx提前

回答

0

你要放置按钮一个在<s:ButtonBar />控制,而不是HGroup。

+0

你的意思是一个导航? – chchrist 2010-05-11 15:20:49

+0

对不起,忘记代码标签:) – quoo 2010-05-11 15:22:42

+0

我会使用ButtonBar,但我不想使用viewstacks,但状态。此外,我觉得它更难皮肤的ButtonBar ... – chchrist 2010-05-11 15:27:39