0

我只想从默认类中设置一个属性。但我还不能成功地做到这一点。

为什么我问这个问题?我想设置 Spark List 视图,但是当我创建一个新的 Item Renderer 时,一些默认属性会发生变化,例如,分隔线被删除或 height 属性为每个项目区域调整大小。

或者,如何将默认皮肤类引用到自定义皮肤类?

4

1 回答 1

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 更乏味,但可以让您有选择地将皮肤应用到您想要的地方。

于 2013-07-12T17:09:08.033 回答