2010-05-11 64 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