| | Class | Description |
|---|
| | ParameterController |
パラメータ確認用のスライダー.
主に、モック作成に利用します.
連続値を取る数値パラメータ制御だけでなく、
不連続な値(たとえば整数)のパラメータを設定することもできます.
後者の場合、コンストラクタで interval を設定します.
そこは fl.controls.Slider を参考にしてみました.
フルスクラッチでユーザビリティの改善やキーボードーでの操作をサポートしていますが、
デザインや原案は、さくーしゃ先生でございます.ありがとうございましたー.
また、変更点として、タブでのフォーカス遷移や、←→キーボードでのサム操作などがあり、
多少は使いやすくなっている、はずです.
完全に俺俺ユーティリティとして開発していて、
コンストラクタでイベントハンドラを渡すことができたり、
一括で座標指定と addChild() ができる ParameterController.alignInstances() などもあります.
なお、弱点として、パラメータの値の表示が少しおかしいときがあったりします.モック用なので、気にしない.
|
| | ScrollBar |
スクロールバーコンポーネントクラスです.
fl.controls.ScrollBar クラスは今ひとつ使い勝手が気に食わないので自作しました.
このクラスのインスタンス自身はビュー兼コントローラーで、
スクロール対象を指定することで扱うことができるようになります.
なお、デフォルトでは縦方向のみ対応しています.
横方向に対応するには、インスタンスを回転することで対応します.
基本的な使い方は、Flash CS3 のライブラリに配置してから使います.
MovieClip シンボルに jp.naggg.controls.ScrollBar を割り当ててます.
ただし、そのシンボルは、track_mc, thumb_mc, up_mc, down_mc の4つの
Spriteを持つことが必要ですので注意してください.
※2010/07/11のアップデートで、up_mc と down_mc は必須ではなくなりました.
イベントとしては、value の値が更新されたときに fl.events.Event.SCROLL イベントを
配信します.これは、ユーザーが UI を操作して更新したときも、および、
コンポーネントの value を操作したとき、いづれのケースでも配信されるイベントです.
注意が必要なのは、スクロール対象の cacheAsBitmap は強制的に true となります.
これは、scrollRect によるスクロール速度の最適化を行ったためです.
開発当初は cacheAsBitmap の切替でグラデマスクに対応する予定でしたが、
最終的にスクロール速度の向上から、つねに true とするようにしました.
さらに、scrollRect のバグ(仕様?)の都合で、
DisplayObject に scrollRect を設定した直後にその DisplayObject のサイズを
取得できず、scrollRect のサイズが反映されるまで時間が必要なので、
init() および setScrollee() を呼び出す際にデフォルトの大きさを必要とすることに
注意してください(特に、二度呼び出す場合).
2010/09/09 のアップデートでは、
スクロールバーではなくスライダーとして扱いたい場合に init() の null を渡すことで
適用できるように修正しました.
最後に以下の内容を TODO として考えています.
TODO value 操作とマウスホイール・Shiftクリックなどの挙動がつながらない不具合(某案件ではパッチコードを使用した)
TODO イージングに都合で value が 0 や 1 にならないなぁ・・・
TODO 全体がごちゃごちゃしている、なんとかならないかww ソース直してメソッドコストを減らして 2.0 にしたい!
|
| | Slider |
スライダーコンポーネントクラスです.
fl.controls.Slider クラスは今ひとつ使い勝手が気に食わないので自作しました.
インスタンスの value プロパティは 0 ~ 1 と割合としての値を取ります.
これは、fl.controls.Slider の value とは性質が異なるので注意してください.
基本的な使い方は、Flash CS3 のライブラリに配置してから使います.
その際、シンボルに必要な要素は、
サム :thumb_mc:Sprite、中心点は中央が望ましい
トラック:track_mc:Sprite、中心点の制限はなし
の2つの要素になります.
fl.controls.Slider の仕様を受け継ぐ都合、
valueを手動で更新した場合は SliderEvent.CHANGE は配信されません.
その際は dispatchChangeEvent を併用するようにします.
init() メソッドでは自動的に呼ばれるように設計しています.
また、このスライダーは基本横向きのみに対応しています.
縦に配置したい場合は、自身の回転を制御するなど行います.
最後に注意事項を2つ.
まず、このクラスを使うには、flパッケージが必要になります.
コンパイルするときにそれを含ませるには、
ComponentShim というコンポーネントアセットを書き出す必要があります.
その設置方法は、
ステージに、fl.controls.Slider コンポーネントを配置
→ ライブラリ /Component Assets/_private/ComponentShim を選択
→ 右クリックよりリンケージ、最初のフレームに書き出しにチェック
とします.
|