我只想从默认类中设置一个属性。但是我还不能成功。
为什么我问这个问题?我想设置Spark List视图,但是当我创建一个新的Item Renderer时,一些默认属性会改变,例如。删除分隔线或为每个项目区域调整高度属性。
或者,如何将默认皮肤类引用到自定义皮肤类?
答案 0 :(得分:3)
默认外观类是Flex SDK的一部分。因此,除非您编辑SDK中的类并执行所有必要的步骤来重新编译它,否则您无法真正修改它们。显然,这不是一个好方法。
相反,您应该扩展要修改的外观类。执行此操作后,您可以使用CSS将新的外观类作为给定组件的默认外观。
皮肤类示例:
package com.mycompany.skins
{
import spark.skins.spark.ButtonSkin;
public class MyButtonSkin extends ButtonSkin
{
// add new properties or set new values on existing properties
public myCustomProperty:Boolean = true;
}
}
CSS:
s|Button {
skinClass: ClassReference("com.mycompany.skins.MyButtonSkin");
}
另一种方法是扩展皮肤类,如上所述。但是,不是使用CSS使其成为默认外观,而是在每个组件上指定外观类:
<s:Button id="myButton" skinClass="com.myCompany.skins.MyButtonSkin" />
这显然比使用CSS更乏味,但可以让你有选择地将皮肤应用到你想要的地方。