2011-07-19 3 views
0

私はhttp://hillelcoren.com/flex-autocomplete/でオンラインで見つけたカスタム自動提案コンポーネントを使用しています。項目の背景色は、com> hillelcoren> components> autoComplete> FlowBox.mxmlというフォルダ内で設定されます。 BGの色は、ハード白があるようにしてコード化された:Flex 3:メインアプリケーション内からコンポーネント内の値を簡単に変更できますか?

<mx:Canvas 
    xmlns:mx="http://www.adobe.com/2006/mxml" 
    xmlns="com.hillelcoren.components.autoComplete.classes.*" 
    verticalScrollPolicy="off" horizontalScrollPolicy="off" 
    borderStyle="inset" backgroundColor="#FFFFFF" 
    initialize="init()" clipContent="true" 
    xmlns:components="com.hillelcoren.components.*"> 

私は「モジュール」という名前のフォルダにある「position.mxml」と呼ばれる、私が作成したコンポーネント内から、このコンポーネントを使用します。ポジションモジュールから、自動詰め物ボックスの背景色を変更できる方法はありますか?

答えて

1

本当にそれはコンポーネントアーキテクチャに依存しており、Hillelのオートコンプリートコンポーネントのアーキテクチャには掘り下げられていません。

スタイルはしばしば継承されるので、理論上、ポジションコンポーネントまたはオートコンプリートのbackgroundColorスタイルを設定する方法の1つです。ただし、「ハードコードされた」スタイルでは、コンポーネントを初期化した後に設定します。

もう1つの方法は、この値をスタイルとして公開するようにHillelのコンポーネントを変更することです。理論的にはこれはそれほど難しいことではありません。実際には複雑なアーキテクチャーは難しいかもしれません。 More info on creating custom styles

第3の方法は、コンポーネントをドリルダウンしてスタイルを設定することです。このようなもの:

positionInstance.autoCompleteInstance.flowBoxInstance.setStyle('backgroundColor',myNewStyle); 

もちろん、すべての関連するコンポーネントインスタンスは公開する必要があります。

第4のアプローチは、別のコンポーネントを使用することです。 The Flextras AutoCompleteコンポーネントはネイティブのSparkコンポーネントであり、関連するスキンパーツの背景色を変更するカスタムスキンを簡単に作成できます。

+0

flextrasはアプリケーションの使用中に頻繁に変化するブール値に基づいてbgの色を変更できますか? – Brds

+0

@Brdsコンポーネントクラスに設定したスタイルは、スキンクラスに継承されます。カスタムスキンクラスで簡単に何かを模倣することができます。私は、スキンクラスのstyleChanged()メソッドは、スタイルがコンポーネントクラスに設定されているときに起動することを確信しています。それはあなたがトグルをすることができる場所です。これのどれも私たちのコンポーネントに固有のものではありませんが、フレームワークの仕組みだけです。 – JeffryHouser

関連する問題