2011-12-19 6 views

答えて

4

いずれも、たItemRendererと リピーターの違いを知っています。両方ともほぼ同じように行動しています。違いはありますか?

私はそれらが同じように動作するかもしれないが、あなたのコードを見ずに判断するのは難しいです。私はその違いを説明しようとします。というより;それぞれが何であるか。

フードアンダーitemRendererはClassFactoryです。ファクトリは、他のクラスを作成するクラスのデザインパターンです。 Flexのコンテキストでは、itemRenderersは、DataGridやListなどのリストベースのクラスで使用されます。リストベースのクラスはdataProviderを受け入れ、画面に表示される要素のみをレンダリングします。リストをスクロールすると、itemRendererによって生成された各コンポーネントが再利用されます。私はこのレンダラーをリサイクルと呼んでいます。ですから、dataChangeイベントに応答するようにitemRendererを実装することが重要です。そうすれば、表現するデータを常に適切にレンダリングすることができます。 itemRenderer componentsの詳細情報

リピータは、MXMLのループのようなものです。リピータを使用しても、リストベースのクラスでは「レンダラ」のメリットはありません。ループ内で作成されたものはすべて一度にレンダリングされます。

したがって、100個の画像を持つdataProviderがあるとします。画面に10個のスペースを表示するスペースがあります。リストベースのクラスでは、flexは10個の画像をレンダリングしてロードします。リストをスクロールするときに読み込まれる内容を変更します。 Repeaterを使用すると、すべてがスクリーン上にあるわけではないにもかかわらず、Flexは一度に100個すべてをレンダリングしてロードします。

+0

非常に明確に説明されたリサイクリング(省略)+1 – RIAstar

2

最も大きな違い:リピータは 廃止されました が廃止されました。フレックス3にはmxコンポーネントとして存在し、のみ存在し、Flex 4には同等のSparkはありません。代わりにDataGroup + ItemRendererを使用することをお勧めします。この主な理由は、@ www.Flextras.comの答えで非常に明確に説明されています。

これ以外にも、最も基本的な使い方以外のIMOは深刻な痛みになることがあります。そのパラダイムは、他のすべてのFlexコンポーネントとは全く異なりますが、DataGroup + ItemRendererアプローチはFlexコンポーネントセットと非常によく似ています。

ボトムライン:リピータを使用しないでください。あなたがDataGroup + ItemRendererで行うことができないリピータでは何もできません。 (おそらくない限り、あなたはいくつかの理由のためのFlex 3で立ち往生している。これについての詳細のためにエイミーのコメントを参照してください。)あなたの

+0

私は(少なくとも、Flex 3 Listsについて話すときは)同意しません。リピーターによって追加されたFlexコンポーネントは、親コンポーネントに直接追加されるため、期待通りに動作します。 Flex 3では、Listがうまく実装されていなかったため、レンダラーのライフサイクルメソッドを不必要にオーバーライドしたり、リストコードを掘り起こして補正しなければならないことがよくありました。私はリピーターのフードの下で何が起こっているのか分かりませんが、私はそれをリストの1/3くらい使っています。これとは対照的に、私はFlex 3 Listのアーキテクチャーの優れたアイデアを持っています(私はそれらを修正するのに多くの時間を費やさなければならなかったので)。 –

+0

@AmyBlankenship私はあなたを知っていました;)(このトピックでは初めてではありません)。私はFlex 4が出て以来ずっとFlex 3を振り返っていないことを認めなければなりませんが、私が望んだことをするためにかなりのハッキングをはっきりと覚えています。私は、Flex 3では別の話かもしれないと言いましたが、おそらく私は少し露出していないかもしれません。 – RIAstar

+0

itemRendererとリピーターの違いについては、「リピーターを使用しないでください」と答えているとは思いません。リピーターが廃止されたことを聞いてうれしく思います。ソースはありますか? 4.6文書(http://help.adobe.com/jp/flex/using/WS2db454920e96a9e51e63e3d11c0bf6443d-7ffc.html)にはまだ書かれていますが、ASDocsでは非推奨となっているものは何もありません(http://help.adobe.com/jp) /FlashPlatform/reference/actionscript/3/mx/core/Repeater.html)。 – JeffryHouser

関連する問題