flex 共通アイテムの使い回し(コンポーネント)
2011/07/14
内容が同じComboBoxをどっかで一つにまとめる。
要はComboBoxをテンプレートのようにしたいってことだ。
それが「コンポーネント」と呼ばれるモノらしい。
「新規:MXMLコンポーネント」ってヤツを使う。
※ベースは使いたいヤツ。ComboBoxをコンポーネントにするならComboBoxを使う。
※ベースは使いたいヤツ。ComboBoxをコンポーネントにするならComboBoxを使う。
呼び出しは「local:○○○」って感じ。
メモ
オリジナル(コンポーネント前)
「sample.mxml」で「ComboBox」を使う。
「sample.mxml」
- <s:ComboBox id="sample">
- <s:dataProvider>
- <s:ArrayCollection>
- <s:source>
- <fx:Object label="1" data="1"/>
- <fx:Object label="2" data="2"/>
- </s:source>
- </s:ArrayCollection>
- </s:dataProvider>
- </s:ComboBox>
コンポーネントを使う
テンプレートにした「ComboBox」を「sample.mxml」で使う。
呼び出しは、ファイル名の拡張子なし。
下記例では、「templateComboBox.mxml」がテンプレートにした「ComboBox」。
「sample.mxml」でファイル名の拡張子なしの「templateComboBox」を使う。
「sample.mxml」
- <local:templateComboBox id="sample">
「templateComboBox.mxml」
- <?xml version="1.0" encoding="utf-8"?>
- <s:ComboBox xmlns:fx="http://ns.adobe.com/mxml/2009"
- xmlns:s="library://ns.adobe.com/flex/spark"
- xmlns:mx="library://ns.adobe.com/flex/mx">
- <fx:Declarations>
- <!−− 非ビジュアルエレメント (サービス、値オブジェクトなど) をここに配置 −−>
- </fx:Declarations>
- <s:dataProvider>
- <s:ArrayCollection>
- <s:source>
- <fx:Object label="1" data="1"/>
- <fx:Object label="2" data="2"/>
- </s:source>
- </s:ArrayCollection>
- </s:dataProvider>
- </s:ComboBox>