2011-05-24 11 views

答えて

2

「到達する」とはどういう意味ですか?

コンポーネントクラスとスキンクラスの両方で、そのコンポーネントの名前を使用してスキンパーツへの参照があります。実行時に通常どのようにスキン部品を非表示にするかは、このプロセスを使用しています。

1)新しいスキン状態を作成します。 "skinPartHidden"のようなもの

2)Componentクラスでは、 skinPartVisibleプロパティを作成します。プロパティ値が変更されたとき。 invalidateSkinState()メソッドを呼び出します。これにより、次のレンダーイベント中にgetCurrentSkinState()が実行されます。

3)get getCurrentSkinState()メソッドでは、そのプロパティの値を使用して、スキン状態を新しいskinPartHiddenスキン状態に設定します。彼のようなもの:

if(skinPartVisible == false){ 
return "skinPartHidden"; 
} 

4)スキンクラスでは、 MXMLステートの構文を使用して、スキンの状態に基づいてスキンの可視性を切り替えます。このようなもの:

visible.skinPartHidden="true"

+1

Jeffry Houserさん、ありがとうございました。あなたのソリューションは、私が探していた答えに本当に私を指摘します。物事は今私にははるかに明確に見える:)再びありがとう。 –

2

どの部分を非表示にするかによって異なります。あなたの皮は/ロジックは、ビューのほんの一部であり、明らかにしたが無

  • :あなたは(ホストコンポーネントに[SkinPart]宣言として表現されていない)いくつかの皮膚の特定のグラフィックスの話をしているなら、あなたは2つの戦略を実装することができますコンポーネントの機能性。この場合は、あなたの肌を伸ばして、そこに隠れ/露見のロジックを置く必要があります。プロパティのデータバインディングはhostComponentです。
  • あなたの非表示/公開ロジックにいくつかの新しい機能が追加されました。コンポーネントを拡張して新しいビューステートを導入するか、ターゲットスキンパーツをそこに宣言し、プロパティの変更によってコンポーネントの可視性を変更します。この場合、あなたもスキンを変更する必要があります。

既知の宣言されたスキンパーツの可視性を変更するには、上記の戦略の変更を使用できます。 2番目の戦略では、皮膚部分を宣言する必要はありません:)

+0

MXMLスキンを構築するとき。スキンを拡張することをお勧めします。ツールはそれをサポートしていません。 Flash CatalystとFlash Builderを含む – JeffryHouser

+0

これを表現するのは申し訳ありませんが、それほど明確な方法ではありません。皮膚を伸ばすと、元の肌をコピーして貼り付けてから方法論を修正することを意味します:) – Constantiner

+0

あなたの優しい答えについてConstantinerに感謝します。私はいくつかのことを完了するために読まなければならなかったことを指摘します。ありがとうございました。 –

関連する問題