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

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


Example
  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;
   if(Math.abs(3 - controller1_mc.value) < 0.02){
    evt.target.removeEventListener(evt.type, arguments.callee);
    controller1_mc.value = 3;
   }
  });
  

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
文字列表現を返します.
ParameterController
Events
 EventSummaryDefined by
   スライダーの値が変更された場合に送出されるイベントです.ただし、このコンポーネントをステージに配置していないと発信されません. ParameterController
Property detail
valueproperty
value:Number  [read-write]

スライダーの値です. 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 
public override function toString():String

文字列表現を返します.

Returns
String
Event detail
changeevent 
Event object type: flash.events.Event

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