2008/01/27

Flash DataSetでのTips

ここ数日でFlashのコンポーネントの使い方がわかってきました。
今のところ、XMLConnector + DataSet + DataGrid連携の部分を中心にやってます。
オブジェクト指向でいうとMCV(Model <=> Controller <=> View)というやつです。

上記連携の流れを忘れないよう説明しておきます。
 ①XMLConnectorでXMLファイルをロード、パース
 ②XMLConnectorの対象DataArrayをDataSetにバインド
 ③DataSetの対象DataArrayをDataGridにバインド
 ④DataSetに対し、FilterFuncやuseSortを使用。
  DataGrid上の表示を変える。


★ソート
AS2.0でDataSetのデータをソートする手順はこんなんかな。
 ①addSortでソート内容を登録
 ②hasSortでソート内容が登録されていたらuseSortを実行

いろいろテストをした結果、addSortの降順でやられました!
マニュアルにはotpionとして、DataSetIterator.Descendingを記述しろ!と書いてますがこれウソ。
ビット指定しないといけないそうです。

DataSetIterator.CaseInsensitive = 1;
DataSetIterator.Descending = 2;
DataSetIterator.Unique = 4;

降順させる場合のサンプルとしては、こんな感じ。
--------------------------------------------------------
on(click)
{
 if(hoge_ds.hasSort("ソート名")
 {
  hoge_ds.useSort("ソート名");
 }else{
  hoge_ds.addSort("ソート名", ["カラム名"], 2);
 }
}
--------------------------------------------------------
やはり準備→実行が基本のようです。(自分の悪い癖で、すぐ実行!!!という考えはいかんですね)

★Filter
DataGridに表示されているデータにfilterをかける手順はこちら。
 ①Dataset.filteredをtrueにする
 ②Dataset.filterFuncを実行、条件が一致する内容をfilter

fiterをかけたリストのデータを取得するには2通りあります。
 ①hoge_ds._iterator._index[i]を参照
 ②hoge_ds.getIterator();を使用

★コンポーネントについて
 Flash8Proにあるコンポーネントを使うとファイルサイズが一気に増えるので気をつけた方がいいです。
 とはいえ、開発工数が少なくなる+今の時代ADSL or FTTHが普及しているから百キロバイト近く増えたところで大した影響はない!と思っています。
 でも、ファイルサイズは少ないほうがいいですよね~
スポンサーリンク

スポンサーリンク