我只想从默认类中设置一个属性。但我还不能成功地做到这一点。
为什么我问这个问题?我想设置 Spark List 视图,但是当我创建一个新的 Item Renderer 时,一些默认属性会发生变化,例如,分隔线被删除或 height 属性为每个项目区域调整大小。
或者,如何将默认皮肤类引用到自定义皮肤类?
我只想从默认类中设置一个属性。但我还不能成功地做到这一点。
为什么我问这个问题?我想设置 Spark List 视图,但是当我创建一个新的 Item Renderer 时,一些默认属性会发生变化,例如,分隔线被删除或 height 属性为每个项目区域调整大小。
或者,如何将默认皮肤类引用到自定义皮肤类?
默认皮肤类是 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 更乏味,但可以让您有选择地将皮肤应用到您想要的地方。