2

我有一个包含某些州的特定按钮。我必须在这些州内禁用或启用它。

但这不是问题。实际上问题是:我有 2 个不同的样式类,我想在活动状态内将它们中的每一个分配给按钮的启用或禁用。

所以我必须在活动状态下检查按钮是否启用,将 [例如] .red样式类分配给它,如果它被禁用,则分配.blue样式类。

我该怎么做?提前致谢...

4

1 回答 1

1

您应该能够使用 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';
    }

  }
}
于 2013-02-06T13:53:00.760 回答