如何查找为元素定义的样式

时间:2013-02-27 10:16:08

标签: actionscript-3 flex styles flex4.5

我正在试图弄清楚如何定义为元素定义的所有样式属性(确切地说是皮肤组件),但我似乎无法找到任何可行的方法。< / p>

是否有一些本机方法为 实例 而不是String选择器返回合并样式声明?

UPD:示例

示例CSS类似于:

.a { someProperty: "someValue"; }

然后,类“a”应用于具有皮肤的某个元素,例如s|Button。皮肤有一个名为someProperty的属性,它应该从CSS样式声明中“自动填充”,但为了做到这一点,该类必须遍历为其定义的所有属性并尝试应用相应实例属性的值。

现在,我想弄清楚的问题是获取特定实例的已定义属性列表。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您需要两种方法将属性值设置为皮肤。并且,如果存在与皮肤中的属性同名的样式属性,则应分配样式属性的值。

执行此操作的一种方法是创建一个skin方法,该方法检查是否存在具有特定名称的样式属性(即,应用了该属性的样式包含该属性)。它可能看起来像这样:

private function checkProperties(properties:Array)
{
    for each (var property:String in properties)
        if(this.hasOwnProperty(property) && getStyle(property))
            this[property] = getStyle(property);
}

稍后,当皮肤调度其“initialize”事件时,您可以调用此方法:

<s:Skin initialize="checkProperties(["someProperty", "someProperty2", "someProperty3"])" />

祝你有美好的一天!如果您需要其他详细信息,请告诉我们。