Packagejp.naggg.controls
Classpublic class ParameterController
InheritanceParameterController Inheritance flash.display.Sprite

パラメータ確認用のスライダー. 主に、モック作成に利用します. 連続値を取る数値パラメータ制御だけでなく、 不連続な値(たとえば整数)のパラメータを設定することもできます. 後者の場合、コンストラクタで interval を設定します. そこは fl.controls.Slider を参考にしてみました. フルスクラッチでユーザビリティの改善やキーボードーでの操作をサポートしていますが、 デザインや原案は、さくーしゃ先生でございます.ありがとうございましたー. また、変更点として、タブでのフォーカス遷移や、←→キーボードでのサム操作などがあり、 多少は使いやすくなっている、はずです. 完全に俺俺ユーティリティとして開発していて、 コンストラクタでイベントハンドラを渡すことができたり、 一括で座標指定と addChild() ができる ParameterController.alignInstances() などもあります. なお、弱点として、パラメータの値の表示が少しおかしいときがあったりします.モック用なので、気にしない.

View the examples

See also

http://saqoosha.net/2008/02/03/637/


Public Properties
 PropertyDefined By
  value : Number
スライダーの値です. 0 ~ 1 までの値で読み書きします.範囲外の数値を代入した場合、自動で丸め込みます. あくまでも割合を返すのでそこから先はコントローラー側で制御します.
ParameterController
Public Methods
 MethodDefined By
  
ParameterController(name:String, value:Number = 0, minimum:Number = 0, maximum:Number = 1, interval:Number = 0, changeHandler:Function = null)
コンストラクタ.
ParameterController
  
alignInstances(container:DisplayObjectContainer, data:Array):void
[static] ParameterController インスタンスを一括で配置・整列させるユーティリティメソッドです.
ParameterController
  
reset():void
パラメータの値をデフォルト値に戻します. デフォルト値は、コンストラクタで設定した値となります.もちろん、値に変更があれば、Event.CHANGE が配信されます.
ParameterController
  
toString():String
[override] 文字列表現を返します.
ParameterController
Events
 Event Summary Defined By
  スライダーの値が変更された場合に送出されるイベントです.ただし、このコンポーネントをステージに配置していないと発信されません.ParameterController
Property Detail
valueproperty
value:Number

スライダーの値です. 0 ~ 1 までの値で読み書きします.範囲外の数値を代入した場合、自動で丸め込みます. あくまでも割合を返すのでそこから先はコントローラー側で制御します.


Implementation
    public function get value():Number
    public function set value(value:Number):void
Constructor Detail
ParameterController()Constructor
public function ParameterController(name:String, value:Number = 0, minimum:Number = 0, maximum:Number = 1, interval:Number = 0, changeHandler:Function = null)

コンストラクタ.

Parameters
name:String — パラメータ名
 
value:Number (default = 0) — パラメータの初期値
 
minimum:Number (default = 0) — パラメータの最大値
 
maximum:Number (default = 1) — パラメータの最小値
 
interval:Number (default = 0) — パラメータの増減量、デフォルトの0なら連続してパラメータが変化
 
changeHandler:Function (default = null) — Event.CHANGE のリスナー関数
Method Detail
alignInstances()method
public static function alignInstances(container:DisplayObjectContainer, data:Array):void

ParameterController インスタンスを一括で配置・整列させるユーティリティメソッドです.

Parameters

container:DisplayObjectContainer — ParameterController インスタンスを addChild させたいコンテナ要素
 
data:Array — [pc1, pc1.x, pc1.y, pc2, pc2.x, pc2.y, ...] という、インスタンスと座標を順にまとめた配列

reset()method 
public function reset():void

パラメータの値をデフォルト値に戻します. デフォルト値は、コンストラクタで設定した値となります.もちろん、値に変更があれば、Event.CHANGE が配信されます.

toString()method 
override public function toString():String

文字列表現を返します.

Returns
String
Event Detail
change Event
Event Object Type: flash.events.Event
Event.type property = flash.events.Event.CHANGE

スライダーの値が変更された場合に送出されるイベントです.ただし、このコンポーネントをステージに配置していないと発信されません.

Examples
     import jp.naggg.controls.ParameterController;
     
     // 幅の拡大縮小を 0.5 ~ 3 で連続した値で設定
     var controller1_mc = new ParameterController("scaleX", 0.1, 0.5, 3, 0, controller1ChangeHandler);
     function controller1ChangeHandler(evt:Event):void{
         content_mc.scaleX = controller1_mc.value;
     }
     // 高さの拡大縮小を 0.5 ~ 3 で、0.5 単位の値で設定
     var controller2_mc = new ParameterController("scaleY", 2, 0.5, 3, 0.5);
     controller2_mc.addEventListener(Event.CHANGE, controller2ChangeHandler);
     function controller2ChangeHandler(evt:Event):void{
         content_mc.scaleY = controller2_mc.value;
     }
     // 角度を30度単位で設定、匿名関数をイベントハンドラに
     var controller3_mc = new ParameterController("rotation", 0, -180, 180, 30, function(evt:Event){
         content_mc.rotation = controller3_mc.value;
     });
     
     // 一括配置
     ParameterController.alignInstances(this, [
         controller1_mc, 100, 500,
         controller2_mc, 100, 525,
         controller3_mc, 100, 550
     ]);
     
     // -50 を指定しても、丸め込まれる
     controller3_mc.value = -50;
     trace(controller3_mc); // -60
     
     // 連続なプロパティであらばトゥイーン可能
     addEventListener(Event.ENTER_FRAME, function(evt:Event):void{
         controller1_mc.value += (3 - controller1_mc.value) 0.1;
     });