FlashのDataGridという、いわゆる「表組み」のインターフェースをもつコンポーネントがあるのだが、そのままでは、文字以外を入れ込むことができない。
そこで、PhilFlash – HtmlCellRendererを利用させてもらい、サンプルを作ってみた。
使用している画像は、最近のお気に入りのどっちの水着でshowⅡから。説明はWikipediaから借りました。
ソースは、htmldatagrid.zipに置いてありますので、参考にどうぞ。質問があれば、コメント・トラバで。
ちなみに、ソースは、AS2.0です。
このHtmlCellRendererのポイントとしては、
- セル中にHTMLが使える(一部)
- 当然、a hrefなど利用可
- 外部スタイルシートファイルの読み込みが可能
です。
ちなみに、imgタグの前後にPタグを入れてるのは、Flash Player内蔵のHTMLレンダラの不具合なのか、このHtmlCellRendererの不具合なのかよくわからないけれど、PhilFlash – HtmlCellRendererにTipsとして載ってた。これをやらないとなぜか画像そのものが表示されないので。
大本のPhilFlash – HtmlCellRendererのサンプルは、実はけっこう面白くて、データをXMLConnectorで読み込み、DataSetコンポーネントを使いDataGridコンポーネントにデータをバインドしている。こうすることにより、データをセットするスクリプトが不要だし、DataGrid中のデータと、挿入もとのデータと、2つデータを保たなくていいので、たとえば、セルを削除した場合に、手動で元データを変更したりしなくてよいのである(あー、説明が難しい)
しかし、初めてDataSetコンポーネントの使い方がわかった。マニュアルだと意味不明だしね。
DataSetコンポーネントはジミだけど、面白いなっ、と思った。
早くAS3.0に移行せねばと思いつつ、AS2.0くらいの適当さが結構好きだったりする。
PHPのプログラミングスタイルとはまったく違っていて、面白い。
[2008/03/30 追記]
DataGrid中のイメージの上・左になぜか隙間ができていて、バグ対策のPの影響かと思ったらそうじゃなく、DataGridのCellRendarerがHTMLを表示するために使用しているTextAreaコンポーネントのHTMLレンダラー(ああああややこしいい)の、imgタグのデフォルトの設定が、hspace=8 vspace=8になっているからであった。
デフォルトで、その値を入れるのは、明らかに要らぬ世話じゃないだろうか。
また、キャンバス中の、Windowsコンポーネントに配置したDataGridが動かなくてかなりはまった。
結局、DataGridをcreateClassObjectで動的に生成した。
コンポーネントを使うと、いざ動かない!という時に、原因がわからなくて大変。便利だけど。
Popularity: 16% [?]




