mod019 自作パーツを使用したオリジナルスクロールバー

2007.8.4公開

flashPlayer version6.0r65以降

オリジナルのノブやバーの画像を使用したスクロールバーです。
ノブのドラッグ,バーと左右矢印のクリックで操作します。

//ノブ(つまみ)のインスタンス名:dragN
//バーのインスタンス名:lineB
//左側矢印のインスタンス名:buttonL
//右側矢印のインスタンス名:buttonR
//現在の値を表示するダイナミックテキストの変数名:textA
var leftX:Number = lineB._x;//ノブの最左端
var rightX:Number = lineB._x + lineB._width - dragN._width;//ノブの最右端
var minN:Number = 0;//スクロールバーにて操作する数値の最小値
var maxN:Number= 100;//スクロールバーにて操作する数値の最大値
var cliskS:Boolean = false;//クリック判定変数
var dragS:Boolean = false;//ノブのクリック判定用
var buttonLS:Boolean = false;//左側矢印クリック判定用
var buttonRS:Boolean = false;//右側矢印クリック判定用
var moveX:Number = 1;//両側矢印押下時のx座標移動長
textA = 0;

//ノブ移動及び数値表示
//受け取った数値を元にバーの位置と表示する数値を変更する
function moveN(num:Number):Void{
//ノブ移動
if(num < leftX)dragN._x = leftX;
else if(num > rightX)dragN._x = rightX;
else dragN._x = num;

//数値変更 整数値にするため四捨五入
//得た値を実数のまま使用したければ四捨五入は不要
textA = Math.round((maxN - minN) * (dragN._x - leftX ) / (rightX - leftX) + minN);
}

//ノブクリック時処理
dragN.onPress = function():Void{
dragS = true;
}
dragN.onRelease = function():Void{
dragS = false;
}
dragN.onReleaseOutside = function():Void{
dragS = false;
}

//左側ボタンクリック時処理
buttonL.onPress = function():Void{
buttonLS = true;
}
buttonL.onRelease = function():Void{
buttonLS = false;
}
buttonL.onDragOut = function():Void{
buttonLS = false;
}

//右側ボタンクリック時処理
buttonR.onPress = function():Void{
buttonRS = true;
}
buttonR.onRelease = function():Void{
buttonRS = false;
}
buttonR.onDragOut = function():Void{
buttonRS = false;
}

//バークリック時処理
lineB.onPress = function():Void{
moveN(_root._xmouse);//ノブ移動及び数値表示関数呼び出し
}

_root.onEnterFrame = function():Void {
//ドラッグ中のインスタンスによって処理切り替え
if(dragS == true){//ノブドラッグ時
//マウスのx座標を引数としてノブ移動及び数値表示関数呼び出し
moveN(_root._xmouse);
}
else if(buttonLS == true){//左矢印ドラッグ時
//現在のノブのx座標-移動長を引数としてノブ移動及び数値表示関数呼び出し
moveN(dragN._x - moveX);
}
else if(buttonRS == true){//右矢印ドラッグ時
//現在のノブのx座標+移動長を引数としてノブ移動及び数値表示関数呼び出し
moveN(dragN._x + moveX);
}
}

ダウンロード
サンプル