以编程方式检测Flex中的有效样式属性

时间:2010-06-08 22:17:16

标签: flex flash actionscript-3 actionscript air

如果我想知道对象是否具有特定属性,我可以对此进行编码:

if (SomeObject.hasOwnProperty('xyz')) {
  // some code
}

但是有些样式在设计时伪装成属性,比如Button.color ......我怎么知道哪些样式属性在运行时有效? ie:getStyle / setStyle的hasOwnProperty相当于什么?

换句话说,我怎么知道一个对象是否具有特定的样式变量......当我写:

MyButton.setStyle('qsfgaeWT','-33');

它不会完成任何事情,但也不会出错。我怎么能以编程方式知道'qsfgaeWT'不是'Button'的有效风格?

2 个答案:

答案 0 :(得分:2)

setStyle无效地失败,无法使用无效的样式属性。您可以在设置后尝试检查样式属性:

MyButton.setStyle('qsfgaeWT','-33');
if (MyButton.getStyle('qsfqaeWT') == "-33") {
    // Not valid
} else {
    // valid
}

答案 1 :(得分:0)

displayObject是添加到舞台的Button。

var value:* = displayObject.getStyle("borderColor");
trace( StyleManager.isValidStyleValue(value).toString() );  // outputs true
value = displayObject.getStyle("qwerty");
trace( StyleManager.isValidStyleValue(value).toString() );  // outputs false
value = displayObject.getStyle("color");
trace( StyleManager.isValidStyleValue(value).toString() );  // outputs true