Flex の Bindable 入門

GUI アプリを書くときの今までの流れはこう:

  • 監視したいデータに対して「値が変わったら教えてね」とハンドラを登録しておく。addEventListener みたいなイメージ。
  • ハンドラ内部では、状態変更に応じて表示内容を変更するコーディングを行う。

これが基本的な Model-View もしくは MVC の作り方。でも、これってめんどくさい。

それを解決するために Flex SDK が提供しているのがデータバインディングという仕組み。

  • 監視したいデータに [Bindable] をつける。
    • 値が変わったときに自動的にイベントが発行されるようになる。
  • データが変わったら変更を反映させたい場所に {mySlider.value} のように中括弧で値を設定する。
    • コンポーネントがイベントをハンドリングして、自動的に表示内容が書き換わる

これで煩雑なコーディングから開放されて幸せ。もちろん、凝ったことをするには限界があるんだけど、ほとんどのケースはこれで解決!

まとめ。

  • 変更を他のコンポーネントに通知したいときに [Bindable] をつける
  • 変更を受け取る場所には {mySlider.value} のように書く。

技術的な視点からは id:secondlife さんの mxmlc コンパイラのメタデータタグを利用する - [Bindable] 篇 という記事が詳しいので、そちらを参照あれ。

(2007.4.17 00:30 追記) この説明だけだとイメージがわきにくそうだったので、具体例を書いてみました