我正在试图弄清楚如何定义为元素定义的所有样式属性(确切地说是皮肤组件),但我似乎无法找到任何可行的方法。< / p>
是否有一些本机方法为 实例 而不是String
选择器返回合并样式声明?
UPD:示例
示例CSS类似于:
.a
{
someProperty: "someValue";
}
然后,类“a”应用于具有皮肤的某个元素,例如s|Button
。皮肤有一个名为someProperty
的属性,它应该从CSS样式声明中“自动填充”,但为了做到这一点,该类必须遍历为其定义的所有属性并尝试应用相应实例属性的值。
现在,我想弄清楚的问题是获取特定实例的已定义属性列表。
答案 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"])" />
祝你有美好的一天!如果您需要其他详细信息,请告诉我们。