我有一个包含某些州的特定按钮。我必须在这些州内禁用或启用它。
但这不是问题。实际上问题是:我有 2 个不同的样式类,我想在活动状态内将它们中的每一个分配给按钮的启用或禁用。
所以我必须在活动状态下检查按钮是否启用,将 [例如] .red样式类分配给它,如果它被禁用,则分配.blue样式类。
我该怎么做?提前致谢...
我有一个包含某些州的特定按钮。我必须在这些州内禁用或启用它。
但这不是问题。实际上问题是:我有 2 个不同的样式类,我想在活动状态内将它们中的每一个分配给按钮的启用或禁用。
所以我必须在活动状态下检查按钮是否启用,将 [例如] .red样式类分配给它,如果它被禁用,则分配.blue样式类。
我该怎么做?提前致谢...
您应该能够使用 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 Framework 类中的几乎每个属性都会在属性更改时调度 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';
}
}
}