Flex

カスタムコンポーネントで注意すること(invalidateProperties / commitProperties)

カスタムコンポーネントを作っていて、ちょっとはまりそうになったことのメモです。Flex の作法ではプロパティ値の変更時にいきなり UI を更新してはいけません。プロパティ値が変更されたときは、変更を記録しておいて invalidateProperties を呼び出すに留…

テンプレートメソッドパターン

今日の役に立たない一言 − Today’s Trifle! −でテンプレートメソッドパターンについてのエントリを読んでいて、そういえば最近つかっているなーと。 Flex というか AS3 でですが。 ところで、AS3 では abstract メソッドというものが無いです*1。なので、abs…

リサイズ可能なポップアップウィンドウ

リサイズ可能なポップアップウィンドウのサンプルを作ってみました。 普通にマウスのイベントを拾って、マウスのドラッグを処理するだけです。 画面真ん中に表示される、ポップアップウィンドウの右下 10 pixel をドラッグすることで、サイズ変更できます。 <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="creationComplete()" ></mx:windowedapplication>…

Vector で型パラメータ付のコレクション

Flex にも型指定付のコレクションがあることに気付きました。 AS3、FlashPlayer 10 以降でサポートされているらしいので、ちょっと前からあったみたいですね。 以下のように、".<type>" として、型を指定するようです。 var vector:Vector.<String> = Vector.<String>(["1st", "2nd</string></string></type>…

ラベル関数

ここ最近は Scala もさわらずに Flex ばかりさわっています。 テーブル系のコンポーネントでセルに任意の文字列を表示させたい場合、Java ではセルレンダラを実装する必要がありました。 一方 Flex の DataGrid や ComboBox で表示される文字列を変えるだけ…

XML 要素の削除方法

先月社会復帰したのですが、ついに仕事で Flex を使うことになりました。Java と比べると ActionScript での XML 操作は格段に楽になっています。 Java の場合、DOM の実装を選択可能なこともあってか、かならず DocumentBuilder とか Document を経由してい…