2013-02-06 41 views
1

我有一個特定的按鈕,其中包含一些狀態。我必須在這些州內禁用或啓用它。Flex:更改每種狀態下啓用/禁用按鈕的樣式

但這不是問題。 其實問題是:我有2個不同的樣式類,我想將它們中的每一個都分配爲啓用或禁用按鈕,處於活動狀態。

所以我必須在主動狀態檢查中,如果現在的按鈕啓用[例如] .red風格類分配給它,如果它的禁用,分配的.blue樣式類。

我該怎麼辦? 在此先感謝...

回答

1

您應該能夠使用點notationin MXML來實現:

<s:Button styleNanem.state1 ="red" styleName.state2="blue" /> 

我敢肯定這句法是Flex 4中


介紹

如果您需要在啓用的屬性發生更改時更改按鈕的狀態,則可以在功能中循環:

protected function changeButtonState(enabledValue:Boolean, styleName:String):void{ 
this.button.enabled = enabledvalue; 
this.button.styleName = styleName; 
} 

不是直接設置enabled屬性,而是使用上面的方法;您可以根據狀態確定styleName。響應評論對這個職位


第三次更新幾乎在Flex框架類每個屬性調度PropertyChanged事件的屬性發生變化時。因此,您可以在按鈕上監聽enabledChanged事件。元數據未設置,因此您必須在ActionScript中添加事件偵聽器:

button.addEventListener('enabledChanged',onEnabledChanged); 

protected function onEnabledChanged(event:Event):void{ 
    if(currentState = 'state1'){ 
    if(button.enabled){ 
     button.styleName = 'blue'; 
    } else { 
     button.styleName = 'red'; 
    } 
    } else if (currentState = 'state2'){ 
    if(button.enabled){ 
     button.styleName = 'green'; 
    } else { 
     button.styleName = 'orange'; 
    } 

    } 
} 
+0

謝謝,但問題不在於此。我想要2個不同的類,用於啓用或禁用狀態中的按鈕;對於不同的州來說不是這兩個類。 – borna

+0

您可以在更改按鈕的啓用屬性的同一點更改狀態嗎? – JeffryHouser

+0

Yeap。我可以更改狀態,也可以在每個狀態中啓用或禁用狀態。我只需要一種監聽器來監聽一個狀態(沒有區別哪一個),如果Button啓用了,現在就給它賦予我的_.red_類。否則,請不要更改styleName。 – borna