今回は、Flexのバーコントロールとしてよく使われるHSliderクラスの実装ノウハウについて 記述したいと思います。mxml版は至るところで紹介されていますので、 PhactoryではActionScript中心の実装例を使って説明していきたいと思います。 まず、HSliderについですが、以下のようなコントロールを生成するクラスです。
Flex/Flashでは、UIコンポーネントによってデフォルトのマウスカーソルが決まっています。
例えばLinkButtonやButtonでは指さしカーソルで、LabelやTextArea系のテキストを表示する
コンポーネント上では通常の矢印カーソルにマウスカーソルが自動的に変更されてしまいます。
しかし、LabelやTextAreaコントロールにclickイベントを定義してページ遷移させたいといった
使い方も多々出てきますよね。そんなときは、以下のようにプロパティを設定することで
指さしカーソルにすることができます。
Buttonや自作したUIコンポーネントに影を付けたいと思ったことはありませんか?
UIとして俄然高級感が出ますよね。Flex / FlashでUIコンポーネントに影を付けるには、
DropShadowFilterクラスを用います。
実装は非常に簡単で以下のようにすることで実現可能です。
また、子コンポーネントの現在の表示順序を知りたいときには、
「getChildIndex(childobj)」
を用いましょう。返り値は、表示順序を表す整数値になります。
再背面に表示したいときは、
parentobj.setChildIndex(childobj, 0)
最前面に表示したいときは、
parentobj.setChildIndex(childobj, parentobj.numChildren-1)
とすることで実現可能です。
前回の記事にて、
Flexのエフェクトの使い方を説明したのですが、その続編として今回は複数エフェクトを連続再生
する方法(Sequenceクラスの使い方)について解説したいと思います。
例えば、Fadeエフェクトにてフェードインした後に、Moveエフェクトにて(x1, y1)から(x2, y1)に
移動するといった場合です。
この場合、Fadeエフェクトが終了した時点(EffectEvent.EFFECT_ENDイベント発生時)に、自分で定義した
イベントハンドラをコールさせてMoveエフェクトを開始するといったやり方も可能ですが、非常にコードが
冗長になってしまいます。ここで、Sequenceクラスを用いると、連続エフェクト再生がいとも簡単に
実現できてしまします。
Flexのエフェクトには以下のようなものがあります。
Flexには円グラフ表示が可能なPieChartと呼ばれるクラスがあります。 これを利用すると、値とラベルを入力するだけで簡単に円グラフを作成でき、 「showDataTips="true"」と指定するだけで円グラフにマウスオーバーしたときに、 データの情報を分かりやすく表示してくれたりします。
Adobeは昨年からFlexに関してもバグを対外的に公開するようになりました。
Flexは現在Version3がリリースされていますが、それでもいろんなバグに遭遇します。
そんなときには、ブラウザのバグなのか、FlashPlayer/ActionScript/Flexのバグなのかを
切り分けなければなりません。そんなときにこのバグデータベースを使うとよいでしょう。