0

デフォルト クラスから 1 つのプロパティを設定したいだけですが、これはまだ成功していません。

なぜ私はこの質問をしたのですか?Spark リスト ビューを設定したかったのですが、新しいアイテム レンダラーを作成すると、区切り線が削除されたり、各アイテム領域の高さプロパティのサイズが変更されたりするなど、デフォルト プロパティの一部が変更されます。

または、デフォルトのスキン クラスをカスタム スキン クラスに参照する方法を教えてください。

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"); 
}

もう 1 つのアプローチは、上記のようにスキン クラスを拡張することです。ただし、CSS を使用してデフォルトのスキンにする代わりに、各コンポーネントでスキン クラスを指定します。

<s:Button id="myButton" skinClass="com.myCompany.skins.MyButtonSkin" />

これは明らかに CSS を使用するより面倒ですが、スキンを必要な場所に選択的に適用できます。

于 2013-07-12T17:09:08.033 に答える