- class Trackbar extends MovieClip { static var t_array:Array = []; private var valrange:Number; private var range:Object; private var increment:Number; private var roundto:Number; private var desc:String; private var v:String; private var defaultVar:Number; private var slider:MovieClip; private var track:MovieClip; private var label:String; private var amount:String; - function Trackbar(){ trace(">> Trackbar Loaded"); t_array.push(this); onMouseDown = changeControl; } - private function init(v:String, desc:String, miv:Number, mav:Number,x:Number,y:Number,r:Number):Void{ desc = desc; v = v; _x = x; _y = y; label = desc; if (_parent[v] == null) _parent[v] = miv; if (_parent[v] < miv) _parent[v]=miv; if (_parent[v] > mav) _parent[v]=mav; range = {minVal:miv, maxVal:mav}; valrange = range.maxVal - range.minVal; increment = track._width/valrange; roundto = Math.pow(10, r); defaultVar = _parent[v]; slider._x = increment*_parent[v]-(range.minVal*increment); amount = _parent[v]; } - private function changeControl():Void{ - if(slider.hitTest(_parent._xmouse, _parent._ymouse, true)){ - slider.onMouseMove = function() { var p = _parent; var pp = _parent._parent; _x = Math.min(Math.max(Math.ceil(p.track._x), p._xmouse), Math.ceil(p.track._x+p.track._width)); pp[p.v] = (_x/p.increment)+p.range.minVal; _parent.amount = Math.round(pp[p.v]*p.roundto)/p.roundto; updateAfterEvent(); }; - slider.onMouseUp = function(){ delete onMouseMove; } } } - private function setValue(val:Number):Void{ _parent[v] = val; } - static function defaultAll(){ - for(var i in t_array){ t_array[i]._parent[t_array[i].v] = t_array[i].defaultVar; } } - static function defaultVars():Void{ - for(var i in t_array){ var t = t_array[i]; t.slider._x = t.increment*t._parent[t.v]-(t.range.minVal*t.increment); t.amount = t._parent[t.v]; } } }