googleで
カスタム検索
プロフィール

けろ&ひな

Author:けろ&ひな
大阪在住。
親ばか。
最近、転職したよ。でも、やってることは一緒なんだけどね。;-P

最近の記事
カテゴリー
月別アーカイブ
最近のコメント
最近のトラックバック
スポンサード リンク

スポンサーサイト--------(--)

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[Flex][as3]Listで各行のボタン押した時のイベント2010-01-12(Tue)

相変わらず、Flexやってます。

という訳で、表題の件。

itemRendererについて。

「Rendererはリサイクルされる!
なので、表示する時には初期化する必要がある!」

簡単に言えば、前に勉強させてもらった記事の内容を見るとよくわかる。
(Flex itemRendererの理解:http://www.adobe.com/jp/devnet/flex/articles/itemrenderers_pt1.html

レンダラーを使って各行ごとに高さを変えたいとか、なんらかの変化をつけたいという場合
レンダラーの中でデザインを変えようとすると大抵の場合にはスクロールした時におかしくなります。

これって、結局、前述のレンダラーがリサイクルされているということに起因してるんじゃないかと。

それじゃ、各行毎のデータをイベントで変更して何らかの変化をつけたいといった場合はどうするか。
(例えば、各行のボタンで行に何かを表示させようという時とか。)

とりあえず思いつくのは、勉強させてもらって覚えた方法。

順番)
1.各行からイベントを発行する。(バブリング=trueで)
2.イベントを親元で受け取る。
3.受け取ったら、親元でデータプロバイダーに使用しているデータを変更する。
4.データの変更を伝える。(invalidateList()の実行)

かなと。

イベントはEventを継承して自作でいいと思う。
1.でイベントを発行する際に、どこが変更対象になるのかを自作イベントのプロパティにでも
乗っければ、親元で変更するところが分かるんじゃないかなと。

もっと簡単な方法はないのかなぁ。。。
関連記事

テーマ : プログラミング
ジャンル : コンピュータ

コメントの投稿

管理者にだけ表示を許可する

コメント

工事中
RSSフィード
リンク

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。