« 2010年08月 | メイン

2010年09月 アーカイブ

2010年09月01日

Flex4メモ::ItemRenderer

Flex3では、自作のitemrendererといえばCanvasなどを継承したクラスで作るのが定石だと思いますが、Flex4(spark)ではそのものずばりItemrendererクラスってのが用意されているので、自作のitemrendererを作る時はこれを継承してあげればよいっぽいです。

ItemrendererはDataRendererを継承し、IItemRendererを実装しています。

で、DataRendererはIDataRendererを実装していて、これにお決まりのset dataとget dataが定義されています。

ちなみにListのitemrendererに設定できるのは、このIDataRendererを実装しているものだけです。

ざっと使ってみた感じでは、Flex3と同じノリで、crateChildrenだのset dataだのcommitPropertiesだのをがしがしオーバーライドしていく感じで大丈夫だと思われます。

2010年09月03日

Flex4メモ::Scroller

Flex3(mx)でスクロールバーを表示したい場合には、ContainerやContainerを継承したCanvasの中に適当にコンポーネントを配置しておけば、Containerが子供コンポーネントのサイズや位置を計測して勝手にスクロールバーを表示してくれていましたが、Flex4(spark)でスクロールバーを表示したい場合、明示的にScrollerコンポーネントを配置してあげる必要があります。

Scrollerには、IViewPortを実装したコンポーネントを一つだけ配置できます。このIViewPortを実装しているのは、GroupとRichTextEditorだけなので、Groupを一つ配置すると思っておけばよいのではないでしょうか。

mxmlは下記のようになります。

<s:Scroller x="0" y="0"  width="200" height="200">
  <s:Group>
    <s:layout>
      <s:BasicLayout />	
    </s:layout> 
  </s:Group>
</s:Scroller>

この場合子供のコンポーネントが表示領域が200pxを超える場合、スクロールバーが表示されます。

Flex3(mx)でおなじみの、verticalScrollPolicyとhorizontalScrollPolicyもScrollerクラスにあります。autoで自動表示、onが強制表示でoffが常に非表示になります。clipContentが見あたらなかったので、verticalScrollPolicyとhorizontalScrollPolicyを両方offにしろということでしょうか。

この記事を書いている時に、Flexデベロッパセンターに完璧な記事を発見したので、これを読んだほうが手っ取り早いですね。

About 2010年09月

2010年09月にブログ「godagoda.net」に投稿されたすべてのエントリーです。過去のものから新しいものへ順番に並んでいます。

前のアーカイブは2010年08月です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。