<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
   <title>やまねこのWebメモ</title>
   <link rel="alternate" type="text/html" href="http://blog.yamaneko-web.com/" />
   <link rel="self" type="application/atom+xml" href="http://blog.yamaneko-web.com/atom.xml" />
   <id>tag:blog.yamaneko-web.com,2007://1</id>
   <updated>2007-07-17T19:15:11Z</updated>
   <subtitle>ASP.NETとリッチクライアントを中心としたWeb開発メモ</subtitle>
   <generator uri="http://www.sixapart.com/movabletype/">Movable Type 3.33-ja</generator>

<entry>
   <title>[Flex2] DataGridの編集にComboBoxを使用する</title>
   <link rel="alternate" type="text/html" href="http://blog.yamaneko-web.com/2007/07/flex2_datagridcombobox.aspx" />
   <id>tag:blog.yamaneko-web.com,2007://1.4</id>
   
   <published>2007-07-17T18:28:54Z</published>
   <updated>2007-07-17T19:15:11Z</updated>
   
   <summary>DataGrid上でのデータ編集時にComboBoxを使用する方法についてのメモ...</summary>
   <author>
      <name>やまねこ</name>
      
   </author>
         <category term="Flex2 コントロール" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://blog.yamaneko-web.com/">
      <![CDATA[DataGrid上でのデータ編集時にComboBoxを使用する方法についてのメモです。<br />
<br />]]>
      <![CDATA[DataGridのeditableプロパティをtrueに設定するとセルの値を編集することが可能となりますが、編集の際にTextInput以外のコントロールを使用したいケースも多いと思います。<br />
DataGridの編集時に使用するコントロールは、DataGridColumnのitemEditorプロパティで設定でき、ComboBoxを使用する場合は、<br />
<pre class="code">
&lt;mx:DataGrid editable="true"&gt;
    &lt;mx:columns&gt;
        &lt;mx:DataGridColumn&gt;
            &lt;mx:itemEditor&gt;
                &lt;mx:Component&gt;
                    &lt;mx:ComboBox&gt;
                        &lt;mx:String&gt;Group 1&lt;/mx:String&gt;
                        &lt;mx:String&gt;Group 2&lt;/mx:String&gt;
                        &lt;mx:String&gt;Group 3&lt;/mx:String&gt;
                    &lt;/mx:ComboBox&gt;
                &lt;/mx:Component&gt;
            &lt;/mx:itemEditor&gt;
        &lt;/mx:DataGridColumn&gt;
    &lt;/mx:columns&gt;
&lt;/mx:DataGrid&gt;
</pre>

のように記述するとOKです。<br />
<p><a href="/examples/flex2/datagrid1/DataGridSample1.html">サンプルページ</a></p>
<br />

]]>
   </content>
</entry>
<entry>
   <title>[Flex2] Flex2の多言語対応</title>
   <link rel="alternate" type="text/html" href="http://blog.yamaneko-web.com/2007/07/flex2.aspx" />
   <id>tag:blog.yamaneko-web.com,2007://1.3</id>
   
   <published>2007-07-12T16:30:27Z</published>
   <updated>2007-07-17T19:15:38Z</updated>
   
   <summary>Flex2で多言語に対応するための手順をメモしときます。 ...</summary>
   <author>
      <name>やまねこ</name>
      
   </author>
         <category term="Flex2 全般" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://blog.yamaneko-web.com/">
      Flex2で多言語に対応するための手順をメモしときます。

      <![CDATA[Flex2で多言語対応を行うには、propertiesファイルを使用します。
propertiesファイルは各言語用の単語辞書のようなもので、このファイルに
Message=メッセージ
といった具合にキーと値のペアで記述します。

まずは、このpropertiesファイルを保存するフォルダを用意します。
場所は任意の場所で構いませんが、今回の例ではプロジェクト内に「locale」という名前のフォルダを作成しました。
さらにその下に、各言語用のフォルダを作成します。
例では、日本語用の「ja_JP」と英語用の「en_US」を作成しています。
このフォルダ内に、それぞれの言語用のpropertiesファイルを同じ名前で保存します。
ファイル名はxxxx.properties（xxxxの部分は任意）とします。

次に、このファイルを参照するための設定として、Flex Builderでプロジェクトのプロパティを開き、Flexビルドパスのソースパスタブでpropertiesファイルを置いたフォルダを追加します。
<img src="/images/entry_images/2007_07_13/fig1.png" alt="Flexビルドパス画面" />

その際、ja_JPやen_USのフォルダは{locale}と記述します。
例えば、
C:\FlexBuilder\locale
の下にja_JPとen_USがある場合、
C:\FlexBuilder\locale\{locale}
という具合に記述します。

最後に、プロジェクトのプロパティウィンドウのFlexコンパイラの画面にある「追加コンパイラ引数」で言語を指定します。（デフォルトの状態では-locale ja_JPが指定されてると思います。）
<img src="/images/entry_images/2007_07_13/fig2.png" alt="Flexコンパイラ画面" />

各言語用のSWFを作成しなければなりませんので、別の言語用にコンパイルする際は出力先を変えるなどしてください。


続いて、MXMLやAction Scriptから読み出す方法ですが、MXMLでは、
<code class="code">&lt;mx:Label text="@Resource(key='キー名', bundle='propertiesファイル名')" /&gt;
</code>
と記述します。

Action Scriptでは、mx.resources.ResourceBundleクラスを使用します。
<code class="code">[ResourceBundle("propertiesファイル名")]
private var rb:mx.resources.ResourceBundle;
Alert.show(rb.getString("キー名"));
</code>
として読み出すことができます。

サンプルを作成しましたので、詳しくはそちらを見てください。
（コンテキストメニューからソースを見ることができます。）
<a href="http://blog.yamaneko-web.com/examples/flex2/localize/">サンプルページ</a>




]]>
   </content>
</entry>

</feed>
