home *** CD-ROM | disk | FTP | other *** search
/ Practice Anatomy Lab / PAL.ISO / pc / PAL.swf / scripts / __Packages / com / argosy / ui / VolumeControl.as < prev   
Encoding:
Text File  |  2007-03-19  |  4.2 KB  |  117 lines

  1. class com.argosy.ui.VolumeControl extends com.argosy.ui.baseUI
  2. {
  3.    var slider_bg;
  4.    var bg;
  5.    var volume_level;
  6.    var volume_button;
  7.    var drop_shadow;
  8.    var inner_shadow;
  9.    var slider_bar;
  10.    var slider_drag_button;
  11.    var onMouseMove;
  12.    var panel_width = 20;
  13.    var panel_height = 200;
  14.    var isOpen = false;
  15.    function VolumeControl()
  16.    {
  17.       super();
  18.    }
  19.    function closeMenu()
  20.    {
  21.       if(this.isOpen)
  22.       {
  23.          this.toggleMenu();
  24.       }
  25.    }
  26.    function toggleMenu()
  27.    {
  28.       this.isOpen = !this.isOpen;
  29.       this.slider_bg._visible = this.isOpen;
  30.       this.bg._visible = this.isOpen;
  31.    }
  32.    function set volume(n)
  33.    {
  34.       this.volume_level = int(Math.max(0,Math.min(100,n)));
  35.       if(this.volume_level == 0)
  36.       {
  37.          this.volume_button.gotoAndStop(101);
  38.       }
  39.       else
  40.       {
  41.          this.volume_button.gotoAndStop(this.volume_level);
  42.       }
  43.       _global.user_volume = this.volume_level;
  44.    }
  45.    function get volume()
  46.    {
  47.       return this.volume_level;
  48.    }
  49.    function init()
  50.    {
  51.       this.drop_shadow = new flash.filters.DropShadowFilter(5,45,0,0.8,5,5,1,3,false,false,false);
  52.       this.inner_shadow = new flash.filters.DropShadowFilter(1,45,0,0.8,2,2,1,3,true,false,false);
  53.       super.init();
  54.       this.volume = 100;
  55.    }
  56.    function createChildren()
  57.    {
  58.       this.bg = this.createEmptyMovieClip("slider_bg",1);
  59.       this.bg.beginFill(13421772,0);
  60.       com.drawing.drawUtil.drawRect(this.slider_bg,- this.panel_width,0,this.panel_width * 3,this.panel_height,0);
  61.       this.bg.endFill();
  62.       this.bg.onPress = function()
  63.       {
  64.       };
  65.       this.bg.useHandCursor = false;
  66.       this.slider_bg = this.createEmptyMovieClip("slider_bg",2);
  67.       this.slider_bg.filters = [this.drop_shadow];
  68.       this.slider_bg.beginFill(13421772,100);
  69.       com.drawing.drawUtil.drawRect(this.slider_bg,0,0,this.panel_width,this.panel_height,0);
  70.       this.slider_bg.endFill();
  71.       this.slider_bar = this.slider_bg.createEmptyMovieClip("slider_bar",2);
  72.       this.slider_bar.filters = [this.inner_shadow];
  73.       this.slider_bar.beginFill(6710886,100);
  74.       com.drawing.drawUtil.drawRect(this.slider_bar,0,0,5,this.panel_height - 20,0);
  75.       this.slider_bar.endFill();
  76.       this.slider_bar.onPress = function()
  77.       {
  78.       };
  79.       this.slider_bar.useHandCursor = false;
  80.       this.slider_drag_button = this.slider_bg.createEmptyMovieClip("slider_drag_button",3);
  81.       this.slider_drag_button.filters = [this.inner_shadow,this.drop_shadow];
  82.       var _loc2_ = new flash.geom.Matrix();
  83.       _loc2_.createGradientBox(20,20,1.0471975511965976,-10,-10);
  84.       this.slider_drag_button.beginGradientFill("radial",[6710886,13421772],[100,100],[0,255],_loc2_,"repeat","RGB",1);
  85.       com.drawing.drawUtil.drawOval(this.slider_drag_button,0,0,5,5);
  86.       this.slider_drag_button.endFill();
  87.       this.slider_drag_button.onPress = ascb.util.Proxy.create(this,this.pressButton);
  88.       this.slider_drag_button.onRelease = this.slider_drag_button.onReleaseOutside = ascb.util.Proxy.create(this,this.releaseButton);
  89.       this.volume_button.onPress = ascb.util.Proxy.create(this,this.toggleMenu);
  90.       this.layout();
  91.    }
  92.    function pressButton()
  93.    {
  94.       this.onMouseMove = function()
  95.       {
  96.          this.slider_drag_button._y = Math.max(this.slider_bar._y,Math.min(this.slider_bar._y + this.slider_bar._height,this.slider_bg._ymouse));
  97.          this.volume = 100 - (this.slider_drag_button._y - this.slider_bar._y) / this.slider_bar._height * 100;
  98.       };
  99.    }
  100.    function releaseButton()
  101.    {
  102.       this.onMouseMove = null;
  103.       this.toggleMenu();
  104.    }
  105.    function layout()
  106.    {
  107.       this.slider_bg._visible = this.isOpen;
  108.       this.bg._visible = this.isOpen;
  109.       this.bg._x = this.slider_bg._x = this.volume_button._x + this.volume_button._width / 2 - this.slider_bg._width / 2;
  110.       this.bg._y = this.slider_bg._y = this.volume_button._x + this.volume_button._height;
  111.       this.slider_bar._x = this.panel_width / 2 - this.slider_bar._width / 2;
  112.       this.slider_bar._y = 10;
  113.       this.slider_drag_button._x = this.slider_bar._x + this.slider_bar._width / 2;
  114.       this.slider_drag_button._y = this.slider_bar._y;
  115.    }
  116. }
  117.