Adobe AIR(1.0)についての、いくつかの疑問と回答 lang=ja属性のないHTMLでもIE6でメイリオ表示させたい!
3月 28

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% [?]

written by ANN

add to hatena hatena.comment (0) add to del.icio.us (0) add to livedoor.clip (0) add to Yahoo!Bookmark (0) Total: 0

Leave a Reply