0

要素(正確にはスキンコンポーネント)に定義されているすべてのスタイルプロパティの定義を取得する方法を理解しようとしていますが、そうするための確実な手段が見つからないようです。

セレクターではなく、インスタンスのマージされたスタイル宣言を返すネイティブメソッドはありますか?String

UPD:例

サンプルCSSは次のようになります。

.a { someProperty: "someValue"; }

その後、クラス「a」はs|Button、スキンを持つ要素、たとえば、に適用されます。スキンにはsomeProperty、CSSスタイル宣言から「自動入力」される必要がある、という名前のプロパティがありますが、これを行うには、クラスが定義されているすべてのプロパティを調べて、対応する値に値を適用する必要があります。インスタンスプロパティ。

今、私が理解しようとしている問題は、特定のインスタンスに対して定義されたプロパティのリストを取得することです。

4

1 に答える 1

1

私が正しく理解していれば、プロパティ値をスキンに設定する2つの方法が必要です。また、スキンのプロパティと同じ名前のスタイルプロパティが存在する場合は、スタイルプロパティの値を割り当てる必要があります。

これを行う1つの方法は、特定の名前のスタイルプロパティが存在するかどうかをチェックするスキンメソッドを作成することです(つまり、そのプロパティが適用されているスタイルにはそのプロパティが含まれています)。次のようになります。

private function checkProperties(properties:Array)
{
    for each (var property:String in properties)
        if(this.hasOwnProperty(property) && getStyle(property))
            this[property] = getStyle(property);
}

後で、スキンが「初期化」イベントをディスパッチするときに、このメソッドを呼び出すことができます。

<s:Skin initialize="checkProperties(["someProperty", "someProperty2", "someProperty3"])" />

すてきな一日を!詳細が必要な場合はお知らせください。

于 2013-03-04T10:25:02.697 に答える