0

我试图弄清楚如何获得为元素(确切地说是皮肤组件)定义的所有样式属性的定义,但我似乎找不到任何可靠的方法来做到这一点。

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

UPD:示例

示例 CSS 将类似于:

.a { someProperty: "someValue"; }

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

现在,我要解决的问题是获取特定实例的已定义属性列表。

4

1 回答 1

1

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

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

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

稍后,您可以在皮肤调度其“初始化”事件时调用此方法:

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

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

于 2013-03-04T10:25:02.697 回答