home *** CD-ROM | disk | FTP | other *** search
/ Neil's C++ Stuff / 2016-02-neilstuff-weebly.iso / apps / audioPlayer2.swf / scripts / __Packages / Application.as next >
Encoding:
Text File  |  2016-02-05  |  20.6 KB  |  537 lines

  1. class Application
  2. {
  3.    static var _player;
  4.    static var _state;
  5.    static var masked_mc;
  6.    static var background_mc;
  7.    static var progress_mc;
  8.    static var loading_mc;
  9.    static var next_mc;
  10.    static var previous_mc;
  11.    static var display_mc;
  12.    static var mask_mc;
  13.    static var volume_mc;
  14.    static var control_mc;
  15.    static var _clearID;
  16.    static var CLOSED = 0;
  17.    static var CLOSING = 1;
  18.    static var OPENING = 2;
  19.    static var OPEN = 3;
  20.    static var _colorKeys = ["bg","leftbg","lefticon","voltrack","volslider","rightbg","rightbghover","righticon","righticonhover","text","track","border","loader","tracker","skip"];
  21.    static var _colorScheme = {bg:15066597,leftbg:13421772,lefticon:3355443,voltrack:15921906,volslider:6710886,rightbg:11842740,rightbghover:10066329,righticon:3355443,righticonhover:16777215,skip:6710886,text:3355443,track:16777215,border:13421772,loader:39168,tracker:14540253};
  22.    static var _options = {playerID:"",encode:false,autostart:false,loop:false,animation:true,remaining:false,noinfo:false,killdownload:true,checkpolicy:false,demomode:false,bufferTime:5,volume:60,rtl:false};
  23.    function Application()
  24.    {
  25.    }
  26.    static function start(sourceFile, options)
  27.    {
  28.       if(options != undefined)
  29.       {
  30.          Application._setOptions(options);
  31.       }
  32.       if(!Application._options.demomode && Application._options.encode)
  33.       {
  34.          sourceFile = Application._sixBitDecode(sourceFile);
  35.       }
  36.       if(!Application._options.demomode)
  37.       {
  38.          var _loc1_ = new Object();
  39.          _loc1_.initialVolume = Application._options.volume;
  40.          _loc1_.bufferTime = Application._options.bufferTime;
  41.          _loc1_.enableCycling = Application._options.loop;
  42.          _loc1_.playerID = Application._options.playerID;
  43.          _loc1_.killDownload = Application._options.killdownload;
  44.          _loc1_.checkPolicy = Application._options.checkpolicy;
  45.          Application._player = new net.onepixelout.audio.Player(_loc1_);
  46.          var _loc5_ = Application._options.titles == undefined ? "" : Application._options.titles;
  47.          var _loc3_ = Application._options.artists == undefined ? "" : Application._options.artists;
  48.          Application._player.loadPlaylist(sourceFile,_loc5_,_loc3_);
  49.          if(!Application._options.demomode)
  50.          {
  51.             Application._player.addListener(Application);
  52.          }
  53.       }
  54.       Application._state = Application.CLOSED;
  55.       if(Application._options.demomode || !Application._options.animation || Application._options.autostart)
  56.       {
  57.          Application._state = Application.OPEN;
  58.       }
  59.       Application._setStage();
  60.       Application._setColors(true);
  61.       if(flash.external.ExternalInterface.available)
  62.       {
  63.          flash.external.ExternalInterface.addCallback("load",Application,Application.ei_loadFile);
  64.          flash.external.ExternalInterface.addCallback("close",Application,Application.ei_closePlayer);
  65.          flash.external.ExternalInterface.addCallback("open",Application,Application.ei_openPlayer);
  66.          flash.external.ExternalInterface.addCallback("setVolume",Application,Application.ei_setVolume);
  67.          var _loc2_ = Number(flash.external.ExternalInterface.call("AudioPlayer.getVolume",Application._options.playerID));
  68.          if(_loc2_ > -1)
  69.          {
  70.             Application._player.setVolume(_loc2_,true);
  71.          }
  72.       }
  73.       if(!Application._options.demomode && Application._options.autostart)
  74.       {
  75.          Application.onPlay();
  76.       }
  77.       setInterval(Application._update,100);
  78.    }
  79.    static function _setOptions(options)
  80.    {
  81.       for(var _loc2_ in options)
  82.       {
  83.          Application._options[_loc2_] = options[_loc2_];
  84.       }
  85.    }
  86.    static function _setStage()
  87.    {
  88.       Stage.align = "L";
  89.       Stage.scaleMode = "noScale";
  90.       var _loc2_ = _root.getNextHighestDepth();
  91.       Application.masked_mc = _root.createEmptyMovieClip("masked_mc",_loc2_++);
  92.       Application.background_mc = Application.masked_mc.attachMovie("Background","background_mc",0);
  93.       Application.progress_mc = Application.masked_mc.attachMovie("Progress","progress_mc",1);
  94.       Application.progress_mc.addListener(Application);
  95.       Application.loading_mc = Application.masked_mc.attachMovie("Loading","loading_mc",2);
  96.       if(Application._options.demomode || Application._player.getTrackCount() > 1)
  97.       {
  98.          Application.next_mc = Application.masked_mc.attachMovie("Toggle","next_mc",3);
  99.          Application.previous_mc = Application.masked_mc.attachMovie("Toggle","previous_mc",4);
  100.          Application.previous_mc._rotation = -180;
  101.          if(!Application._options.demomode)
  102.          {
  103.             Application.next_mc.onRelease = function()
  104.             {
  105.                Application._player.next();
  106.                Application.display_mc.setTime(0);
  107.             };
  108.             Application.previous_mc.onRelease = function()
  109.             {
  110.                Application._player.previous();
  111.                Application.display_mc.setTime(0);
  112.             };
  113.          }
  114.       }
  115.       Application.mask_mc = _root.attachMovie("Mask","mask_mc",_loc2_++);
  116.       Application.masked_mc.setMask(Application.mask_mc);
  117.       Application.mask_mc._width = 8;
  118.       Application.display_mc = _root.attachMovie("Display","display_mc",_loc2_++);
  119.       if(Application._state == Application.CLOSED)
  120.       {
  121.          Application.display_mc._visible = false;
  122.       }
  123.       Application.volume_mc = _root.attachMovie("Volume","volume_mc",_loc2_++);
  124.       Application.volume_mc.addListener(Application);
  125.       Application.control_mc = _root.attachMovie("Control","control_mc",_loc2_++,{state:(!Application._options.autostart ? "play" : "pause")});
  126.       Application.control_mc.addListener(Application);
  127.       Application._alignAndResize();
  128.       if(Application._options.demomode)
  129.       {
  130.          Application.control_mc.toggle();
  131.          Application.volume_mc.toggleControl(true);
  132.          Application.volume_mc.update(Application._options.volume);
  133.          Application.progress_mc.updateProgress(0.3);
  134.          Application.loading_mc.update(0.6);
  135.          Application.display_mc.setText("1 Pixel Out: Demo Mode",0,true);
  136.          Application.display_mc.setTime(356560,Application._options.remaining);
  137.          Application.previous_mc._alpha = 50;
  138.       }
  139.       Stage.addListener(Application);
  140.    }
  141.    static function _alignAndResize()
  142.    {
  143.       Application.background_mc._x = Application.volume_mc.realWidth - 7;
  144.       var _loc2_ = Application._player.getTrackCount();
  145.       Application.progress_mc._x = Application.volume_mc.realWidth + 4;
  146.       if(Application._options.demomode || _loc2_ > 1)
  147.       {
  148.          Application.progress_mc._x += 8;
  149.       }
  150.       Application.progress_mc._y = 2;
  151.       Application.loading_mc._x = Application.volume_mc.realWidth + 4;
  152.       if(Application._options.demomode || _loc2_ > 1)
  153.       {
  154.          Application.loading_mc._x += 8;
  155.       }
  156.       Application.loading_mc._y = 20;
  157.       if(Application._options.demomode || _loc2_ > 1)
  158.       {
  159.          Application.next_mc._x = Stage.width - 43;
  160.          Application.next_mc._y = 12;
  161.          Application.previous_mc._x = Application.volume_mc.realWidth + 6;
  162.          Application.previous_mc._y = 12;
  163.       }
  164.       Application.mask_mc._x = Application.volume_mc.realWidth - 7;
  165.       Application.display_mc._x = Application.volume_mc.realWidth + 6;
  166.       if(Application._options.demomode || _loc2_ > 1)
  167.       {
  168.          Application.display_mc._x += 8;
  169.       }
  170.       Application.display_mc._y = 2;
  171.       if(Application._state == Application.CLOSED)
  172.       {
  173.          Application.control_mc._x = Application.volume_mc.realWidth - 6;
  174.       }
  175.       else
  176.       {
  177.          Application.control_mc._x = Stage.width - Application.control_mc.realWidth;
  178.       }
  179.       if(Application._options.rtl)
  180.       {
  181.          Application.control_mc.flip();
  182.          Application.volume_mc.flip();
  183.          Application.volume_mc._x = Stage.width - Application.volume_mc.realWidth;
  184.          Application.background_mc._x = Application.control_mc.realWidth - 7;
  185.          _loc2_ = Application._player.getTrackCount();
  186.          Application.progress_mc._x = Application.control_mc.realWidth + 4;
  187.          if(Application._options.demomode || _loc2_ > 1)
  188.          {
  189.             Application.progress_mc._x += 4;
  190.          }
  191.          Application.progress_mc._y = 2;
  192.          Application.loading_mc._x = Application.control_mc.realWidth + 4;
  193.          if(Application._options.demomode || _loc2_ > 1)
  194.          {
  195.             Application.loading_mc._x += 4;
  196.          }
  197.          Application.loading_mc._y = 20;
  198.          if(Application._options.demomode || _loc2_ > 1)
  199.          {
  200.             Application.next_mc._x = Stage.width - 52;
  201.             Application.next_mc._y = 12;
  202.             Application.previous_mc._x = Application.control_mc.realWidth + 2;
  203.             Application.previous_mc._y = 12;
  204.          }
  205.          Application.mask_mc._rotation = 180;
  206.          Application.mask_mc._y += Application.mask_mc._height;
  207.          Application.mask_mc._x = Application.volume_mc._x + 7;
  208.          Application.display_mc._x = Application.control_mc.realWidth + 6;
  209.          if(Application._options.demomode || _loc2_ > 1)
  210.          {
  211.             Application.display_mc._x += 4;
  212.          }
  213.          Application.display_mc._y = 2;
  214.          if(Application._state == Application.CLOSED)
  215.          {
  216.             Application.control_mc._x = Application.volume_mc._x - Application.control_mc.realWidth + 6;
  217.          }
  218.          else
  219.          {
  220.             Application.control_mc._x = 0;
  221.          }
  222.       }
  223.       var _loc1_ = Stage.width - (Application.control_mc.realWidth + Application.volume_mc.realWidth);
  224.       Application.background_mc._width = _loc1_ + 14;
  225.       if(Application._state == Application.OPEN)
  226.       {
  227.          Application.mask_mc._width = _loc1_ + 14;
  228.       }
  229.       if(Application._options.demomode || _loc2_ > 1)
  230.       {
  231.          _loc1_ -= 12;
  232.       }
  233.       Application.progress_mc.resize(_loc1_ - 8);
  234.       Application.loading_mc.resize(_loc1_ - 8);
  235.       Application.display_mc.resize(_loc1_ - 12);
  236.    }
  237.    static function _setColors(force)
  238.    {
  239.       var _loc2_ = undefined;
  240.       var _loc4_ = undefined;
  241.       if(!force && !_root.setcolors)
  242.       {
  243.          return undefined;
  244.       }
  245.       _loc2_ = 0;
  246.       while(_loc2_ < Application._colorKeys.length)
  247.       {
  248.          if(_root[Application._colorKeys[_loc2_]] != undefined)
  249.          {
  250.             _loc4_ = _root[Application._colorKeys[_loc2_]];
  251.             if(_loc4_.indexOf("0x") == -1)
  252.             {
  253.                _loc4_ = "0x" + _loc4_;
  254.             }
  255.             Application._colorScheme[Application._colorKeys[_loc2_]] = _loc4_;
  256.          }
  257.          _loc2_ = _loc2_ + 1;
  258.       }
  259.       _root.setcolors = 0;
  260.       var _loc3_ = [{target:Application.background_mc,color:Application._colorScheme.bg},{target:Application.volume_mc.background_mc,color:Application._colorScheme.leftbg},{target:Application.volume_mc.icon_mc,color:Application._colorScheme.lefticon},{target:Application.volume_mc.control_mc.track_mc,color:Application._colorScheme.voltrack},{target:Application.volume_mc.control_mc.bar_mc,color:Application._colorScheme.volslider},{target:Application.control_mc.background_mc.normal_mc,color:Application._colorScheme.rightbg},{target:Application.control_mc.background_mc.hover_mc,color:Application._colorScheme.rightbghover},{target:Application.control_mc.play_mc.normal_mc,color:Application._colorScheme.righticon},{target:Application.control_mc.play_mc.hover_mc,color:Application._colorScheme.righticonhover},{target:Application.control_mc.pause_mc.normal_mc,color:Application._colorScheme.righticon},{target:Application.control_mc.pause_mc.hover_mc,color:Application._colorScheme.righticonhover},{target:Application
  261.       .loading_mc.bar_mc,color:Application._colorScheme.loader},{target:Application.loading_mc.track_mc,color:Application._colorScheme.track},{target:Application.progress_mc.track_mc,color:Application._colorScheme.track},{target:Application.progress_mc.bar_mc,color:Application._colorScheme.tracker},{target:Application.progress_mc.border_mc,color:Application._colorScheme.border},{target:Application.next_mc,color:Application._colorScheme.skip},{target:Application.previous_mc,color:Application._colorScheme.skip},{target:Application.display_mc.message_txt,color:Application._colorScheme.text},{target:Application.display_mc.time_txt,color:Application._colorScheme.text}];
  262.       var _loc5_ = undefined;
  263.       _loc2_ = 0;
  264.       while(_loc2_ < _loc3_.length)
  265.       {
  266.          if(typeof _loc3_[_loc2_].target == "movieclip")
  267.          {
  268.             _loc5_ = new Color(_loc3_[_loc2_].target);
  269.             _loc5_.setRGB(_loc3_[_loc2_].color);
  270.          }
  271.          else
  272.          {
  273.             _loc3_[_loc2_].target.textColor = _loc3_[_loc2_].color;
  274.          }
  275.          _loc2_ = _loc2_ + 1;
  276.       }
  277.    }
  278.    static function onResize()
  279.    {
  280.       Application._alignAndResize();
  281.    }
  282.    static function onPlay()
  283.    {
  284.       if(flash.external.ExternalInterface.available)
  285.       {
  286.          flash.external.ExternalInterface.call("AudioPlayer.activate",Application._options.playerID);
  287.       }
  288.       Application._player.play();
  289.       Application.volume_mc.toggleControl(true);
  290.       if(Application._state < Application.OPENING && Application._options.animation)
  291.       {
  292.          Application.openPlayer();
  293.       }
  294.    }
  295.    static function onStop()
  296.    {
  297.       if(Application._options.animation && Application._state > Application.CLOSING)
  298.       {
  299.          Application.closePlayer();
  300.       }
  301.       Application.volume_mc.toggleControl(false);
  302.       if(Application.control_mc.state == "pause")
  303.       {
  304.          Application.control_mc.toggle();
  305.       }
  306.    }
  307.    static function onPause()
  308.    {
  309.       Application._player.pause();
  310.       Application.volume_mc.toggleControl(false);
  311.       if(Application._state > Application.CLOSING && Application._options.animation)
  312.       {
  313.          Application.closePlayer();
  314.       }
  315.    }
  316.    static function onMoveHead(newPosition)
  317.    {
  318.       Application._player.moveHead(newPosition);
  319.    }
  320.    static function onSetVolume(volume, final)
  321.    {
  322.       if(final == undefined)
  323.       {
  324.          final = true;
  325.       }
  326.       Application._player.setVolume(volume,final);
  327.       if(flash.external.ExternalInterface.available && final)
  328.       {
  329.          flash.external.ExternalInterface.call("AudioPlayer.syncVolumes",Application._options.playerID,volume);
  330.       }
  331.    }
  332.    static function openPlayer()
  333.    {
  334.       Application._state = Application.OPENING;
  335.       var _loc1_ = !Application._options.rtl ? Stage.width - Application.control_mc.realWidth : 0;
  336.       if(Application._clearID != null)
  337.       {
  338.          clearInterval(Application._clearID);
  339.       }
  340.       Application._clearID = setInterval(Application._animate,40,_loc1_);
  341.    }
  342.    static function closePlayer()
  343.    {
  344.       Application._state = Application.CLOSING;
  345.       Application.display_mc._visible = false;
  346.       var _loc1_ = !Application._options.rtl ? Application.volume_mc.realWidth - 6 : Application.volume_mc._x - Application.control_mc.realWidth + 6;
  347.       if(Application._clearID != null)
  348.       {
  349.          clearInterval(Application._clearID);
  350.       }
  351.       Application._clearID = setInterval(Application._animate,40,_loc1_);
  352.    }
  353.    static function _animate(targetX)
  354.    {
  355.       var _loc1_ = targetX - Application.control_mc._x;
  356.       var _loc2_ = 0.5;
  357.       _loc1_ *= _loc2_;
  358.       if(Math.abs(_loc1_) < 1)
  359.       {
  360.          Application.control_mc._x = targetX;
  361.          if(Application._options.rtl)
  362.          {
  363.             Application.mask_mc._width -= _loc1_ * 2;
  364.          }
  365.          else
  366.          {
  367.             Application.mask_mc._width += _loc1_ * 2;
  368.          }
  369.          clearInterval(Application._clearID);
  370.          if(Application._state == Application.OPENING)
  371.          {
  372.             Application.display_mc._visible = true;
  373.             Application._state = Application.OPEN;
  374.          }
  375.          else
  376.          {
  377.             Application._state = Application.CLOSED;
  378.          }
  379.          return undefined;
  380.       }
  381.       Application.control_mc._x += _loc1_;
  382.       if(Application._options.rtl)
  383.       {
  384.          Application.mask_mc._width -= _loc1_;
  385.       }
  386.       else
  387.       {
  388.          Application.mask_mc._width += _loc1_;
  389.       }
  390.    }
  391.    static function _update()
  392.    {
  393.       Application._setColors(false);
  394.       if(Application._options.demomode)
  395.       {
  396.          return undefined;
  397.       }
  398.       var _loc1_ = Application._player.getState();
  399.       Application.volume_mc.update(_loc1_.volume);
  400.       Application.control_mc.enabled = true;
  401.       if(_loc1_.state != net.onepixelout.audio.Player.PAUSED)
  402.       {
  403.          Application.progress_mc.updateProgress(_loc1_.played);
  404.       }
  405.       Application.progress_mc.setMaxValue(_loc1_.loaded);
  406.       Application.loading_mc.update(_loc1_.loaded);
  407.       if(_loc1_.trackCount > 1)
  408.       {
  409.          Application.next_mc.enabled = _loc1_.hasNext;
  410.          Application.previous_mc.enabled = _loc1_.hasPrevious;
  411.          if(_loc1_.hasNext)
  412.          {
  413.             Application.next_mc._alpha = 100;
  414.          }
  415.          else
  416.          {
  417.             Application.next_mc._alpha = 50;
  418.          }
  419.          if(_loc1_.hasPrevious)
  420.          {
  421.             Application.previous_mc._alpha = 100;
  422.          }
  423.          else
  424.          {
  425.             Application.previous_mc._alpha = 50;
  426.          }
  427.       }
  428.       var _loc3_ = "";
  429.       var _loc0_ = null;
  430.       if((_loc0_ = _loc1_.state) !== net.onepixelout.audio.Player.NOTFOUND)
  431.       {
  432.          var _loc2_ = "";
  433.          if(_loc1_.connecting)
  434.          {
  435.             _loc2_ = "Connecting...";
  436.          }
  437.          else
  438.          {
  439.             if(!Application._options.noinfo && _loc1_.trackCount > 1)
  440.             {
  441.                _loc2_ = _loc1_.trackIndex + 1 + ": ";
  442.             }
  443.             if(_loc1_.buffering)
  444.             {
  445.                _loc2_ += "Buffering...";
  446.             }
  447.             else if(!Application._options.noinfo)
  448.             {
  449.                if(_loc1_.trackInfo.artist.length > 0 || _loc1_.trackInfo.songname.length > 0)
  450.                {
  451.                   _loc2_ += _loc1_.trackInfo.artist;
  452.                   if(_loc1_.trackInfo.artist.length > 0)
  453.                   {
  454.                      _loc2_ += " - ";
  455.                   }
  456.                   _loc2_ += _loc1_.trackInfo.songname;
  457.                }
  458.                else
  459.                {
  460.                   _loc2_ = "Track #" + (_loc1_.trackIndex + 1);
  461.                }
  462.             }
  463.          }
  464.          Application.display_mc.setText(_loc2_,0,true);
  465.          Application.display_mc.setTime(!Application._options.remaining ? _loc1_.position : _loc1_.duration - _loc1_.position,Application._options.remaining);
  466.       }
  467.       else
  468.       {
  469.          if(_loc1_.trackCount > 1)
  470.          {
  471.             _loc3_ = _loc1_.trackIndex + 1 + " - ";
  472.          }
  473.          Application.display_mc.setText(_loc3_ + "File not found",0);
  474.          Application.display_mc.setTime(0);
  475.       }
  476.    }
  477.    static function _sixBitDecode(sourceStr)
  478.    {
  479.       var _loc4_ = "";
  480.       var _loc7_ = "";
  481.       var _loc8_ = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-";
  482.       var _loc2_ = undefined;
  483.       var _loc5_ = undefined;
  484.       var _loc3_ = undefined;
  485.       var _loc1_ = undefined;
  486.       _loc1_ = 0;
  487.       while(_loc1_ < sourceStr.length)
  488.       {
  489.          _loc2_ = _loc8_.indexOf(sourceStr.substr(_loc1_,1));
  490.          _loc3_ = ("000000" + _loc2_.toString(2)).substr(-6,6);
  491.          _loc4_ += _loc3_;
  492.          _loc1_ = _loc1_ + 1;
  493.       }
  494.       _loc1_ = 0;
  495.       while(_loc1_ < _loc4_.length)
  496.       {
  497.          _loc3_ = _loc4_.substr(_loc1_,8);
  498.          _loc2_ = parseInt(_loc3_,2);
  499.          _loc5_ = String.fromCharCode(_loc2_);
  500.          _loc7_ += _loc5_;
  501.          _loc1_ += 8;
  502.       }
  503.       return _loc7_;
  504.    }
  505.    static function ei_closePlayer()
  506.    {
  507.       var _loc1_ = Application._player.getState();
  508.       if(_loc1_.state == net.onepixelout.audio.Player.PLAYING || _loc1_.state == net.onepixelout.audio.Player.NOTFOUND)
  509.       {
  510.          if(_loc1_.loaded < 1)
  511.          {
  512.             Application._player.stop(false);
  513.          }
  514.          else
  515.          {
  516.             Application._player.pause();
  517.          }
  518.          Application.onStop();
  519.       }
  520.    }
  521.    static function ei_openPlayer()
  522.    {
  523.       Application.onPlay();
  524.       Application.control_mc.toggle();
  525.    }
  526.    static function ei_setVolume(newVolume)
  527.    {
  528.       Application._player.setVolume(newVolume);
  529.    }
  530.    static function ei_loadFile(sourceFile, titles, artists)
  531.    {
  532.       Application._player.stop(false);
  533.       Application.onStop();
  534.       Application._player.loadPlaylist(sourceFile,titles,artists);
  535.    }
  536. }
  537.