home *** CD-ROM | disk | FTP | other *** search
Wrap
class Application { static var _player; static var _state; static var masked_mc; static var background_mc; static var progress_mc; static var loading_mc; static var next_mc; static var previous_mc; static var display_mc; static var mask_mc; static var volume_mc; static var control_mc; static var _clearID; static var CLOSED = 0; static var CLOSING = 1; static var OPENING = 2; static var OPEN = 3; static var _colorKeys = ["bg","leftbg","lefticon","voltrack","volslider","rightbg","rightbghover","righticon","righticonhover","text","track","border","loader","tracker","skip"]; 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}; 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}; function Application() { } static function start(sourceFile, options) { if(options != undefined) { Application._setOptions(options); } if(!Application._options.demomode && Application._options.encode) { sourceFile = Application._sixBitDecode(sourceFile); } if(!Application._options.demomode) { var _loc1_ = new Object(); _loc1_.initialVolume = Application._options.volume; _loc1_.bufferTime = Application._options.bufferTime; _loc1_.enableCycling = Application._options.loop; _loc1_.playerID = Application._options.playerID; _loc1_.killDownload = Application._options.killdownload; _loc1_.checkPolicy = Application._options.checkpolicy; Application._player = new net.onepixelout.audio.Player(_loc1_); var _loc5_ = Application._options.titles == undefined ? "" : Application._options.titles; var _loc3_ = Application._options.artists == undefined ? "" : Application._options.artists; Application._player.loadPlaylist(sourceFile,_loc5_,_loc3_); if(!Application._options.demomode) { Application._player.addListener(Application); } } Application._state = Application.CLOSED; if(Application._options.demomode || !Application._options.animation || Application._options.autostart) { Application._state = Application.OPEN; } Application._setStage(); Application._setColors(true); if(flash.external.ExternalInterface.available) { flash.external.ExternalInterface.addCallback("load",Application,Application.ei_loadFile); flash.external.ExternalInterface.addCallback("close",Application,Application.ei_closePlayer); flash.external.ExternalInterface.addCallback("open",Application,Application.ei_openPlayer); flash.external.ExternalInterface.addCallback("setVolume",Application,Application.ei_setVolume); var _loc2_ = Number(flash.external.ExternalInterface.call("AudioPlayer.getVolume",Application._options.playerID)); if(_loc2_ > -1) { Application._player.setVolume(_loc2_,true); } } if(!Application._options.demomode && Application._options.autostart) { Application.onPlay(); } setInterval(Application._update,100); } static function _setOptions(options) { for(var _loc2_ in options) { Application._options[_loc2_] = options[_loc2_]; } } static function _setStage() { Stage.align = "L"; Stage.scaleMode = "noScale"; var _loc2_ = _root.getNextHighestDepth(); Application.masked_mc = _root.createEmptyMovieClip("masked_mc",_loc2_++); Application.background_mc = Application.masked_mc.attachMovie("Background","background_mc",0); Application.progress_mc = Application.masked_mc.attachMovie("Progress","progress_mc",1); Application.progress_mc.addListener(Application); Application.loading_mc = Application.masked_mc.attachMovie("Loading","loading_mc",2); if(Application._options.demomode || Application._player.getTrackCount() > 1) { Application.next_mc = Application.masked_mc.attachMovie("Toggle","next_mc",3); Application.previous_mc = Application.masked_mc.attachMovie("Toggle","previous_mc",4); Application.previous_mc._rotation = -180; if(!Application._options.demomode) { Application.next_mc.onRelease = function() { Application._player.next(); Application.display_mc.setTime(0); }; Application.previous_mc.onRelease = function() { Application._player.previous(); Application.display_mc.setTime(0); }; } } Application.mask_mc = _root.attachMovie("Mask","mask_mc",_loc2_++); Application.masked_mc.setMask(Application.mask_mc); Application.mask_mc._width = 8; Application.display_mc = _root.attachMovie("Display","display_mc",_loc2_++); if(Application._state == Application.CLOSED) { Application.display_mc._visible = false; } Application.volume_mc = _root.attachMovie("Volume","volume_mc",_loc2_++); Application.volume_mc.addListener(Application); Application.control_mc = _root.attachMovie("Control","control_mc",_loc2_++,{state:(!Application._options.autostart ? "play" : "pause")}); Application.control_mc.addListener(Application); Application._alignAndResize(); if(Application._options.demomode) { Application.control_mc.toggle(); Application.volume_mc.toggleControl(true); Application.volume_mc.update(Application._options.volume); Application.progress_mc.updateProgress(0.3); Application.loading_mc.update(0.6); Application.display_mc.setText("1 Pixel Out: Demo Mode",0,true); Application.display_mc.setTime(356560,Application._options.remaining); Application.previous_mc._alpha = 50; } Stage.addListener(Application); } static function _alignAndResize() { Application.background_mc._x = Application.volume_mc.realWidth - 7; var _loc2_ = Application._player.getTrackCount(); Application.progress_mc._x = Application.volume_mc.realWidth + 4; if(Application._options.demomode || _loc2_ > 1) { Application.progress_mc._x += 8; } Application.progress_mc._y = 2; Application.loading_mc._x = Application.volume_mc.realWidth + 4; if(Application._options.demomode || _loc2_ > 1) { Application.loading_mc._x += 8; } Application.loading_mc._y = 20; if(Application._options.demomode || _loc2_ > 1) { Application.next_mc._x = Stage.width - 43; Application.next_mc._y = 12; Application.previous_mc._x = Application.volume_mc.realWidth + 6; Application.previous_mc._y = 12; } Application.mask_mc._x = Application.volume_mc.realWidth - 7; Application.display_mc._x = Application.volume_mc.realWidth + 6; if(Application._options.demomode || _loc2_ > 1) { Application.display_mc._x += 8; } Application.display_mc._y = 2; if(Application._state == Application.CLOSED) { Application.control_mc._x = Application.volume_mc.realWidth - 6; } else { Application.control_mc._x = Stage.width - Application.control_mc.realWidth; } if(Application._options.rtl) { Application.control_mc.flip(); Application.volume_mc.flip(); Application.volume_mc._x = Stage.width - Application.volume_mc.realWidth; Application.background_mc._x = Application.control_mc.realWidth - 7; _loc2_ = Application._player.getTrackCount(); Application.progress_mc._x = Application.control_mc.realWidth + 4; if(Application._options.demomode || _loc2_ > 1) { Application.progress_mc._x += 4; } Application.progress_mc._y = 2; Application.loading_mc._x = Application.control_mc.realWidth + 4; if(Application._options.demomode || _loc2_ > 1) { Application.loading_mc._x += 4; } Application.loading_mc._y = 20; if(Application._options.demomode || _loc2_ > 1) { Application.next_mc._x = Stage.width - 52; Application.next_mc._y = 12; Application.previous_mc._x = Application.control_mc.realWidth + 2; Application.previous_mc._y = 12; } Application.mask_mc._rotation = 180; Application.mask_mc._y += Application.mask_mc._height; Application.mask_mc._x = Application.volume_mc._x + 7; Application.display_mc._x = Application.control_mc.realWidth + 6; if(Application._options.demomode || _loc2_ > 1) { Application.display_mc._x += 4; } Application.display_mc._y = 2; if(Application._state == Application.CLOSED) { Application.control_mc._x = Application.volume_mc._x - Application.control_mc.realWidth + 6; } else { Application.control_mc._x = 0; } } var _loc1_ = Stage.width - (Application.control_mc.realWidth + Application.volume_mc.realWidth); Application.background_mc._width = _loc1_ + 14; if(Application._state == Application.OPEN) { Application.mask_mc._width = _loc1_ + 14; } if(Application._options.demomode || _loc2_ > 1) { _loc1_ -= 12; } Application.progress_mc.resize(_loc1_ - 8); Application.loading_mc.resize(_loc1_ - 8); Application.display_mc.resize(_loc1_ - 12); } static function _setColors(force) { var _loc2_ = undefined; var _loc4_ = undefined; if(!force && !_root.setcolors) { return undefined; } _loc2_ = 0; while(_loc2_ < Application._colorKeys.length) { if(_root[Application._colorKeys[_loc2_]] != undefined) { _loc4_ = _root[Application._colorKeys[_loc2_]]; if(_loc4_.indexOf("0x") == -1) { _loc4_ = "0x" + _loc4_; } Application._colorScheme[Application._colorKeys[_loc2_]] = _loc4_; } _loc2_ = _loc2_ + 1; } _root.setcolors = 0; 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 .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}]; var _loc5_ = undefined; _loc2_ = 0; while(_loc2_ < _loc3_.length) { if(typeof _loc3_[_loc2_].target == "movieclip") { _loc5_ = new Color(_loc3_[_loc2_].target); _loc5_.setRGB(_loc3_[_loc2_].color); } else { _loc3_[_loc2_].target.textColor = _loc3_[_loc2_].color; } _loc2_ = _loc2_ + 1; } } static function onResize() { Application._alignAndResize(); } static function onPlay() { if(flash.external.ExternalInterface.available) { flash.external.ExternalInterface.call("AudioPlayer.activate",Application._options.playerID); } Application._player.play(); Application.volume_mc.toggleControl(true); if(Application._state < Application.OPENING && Application._options.animation) { Application.openPlayer(); } } static function onStop() { if(Application._options.animation && Application._state > Application.CLOSING) { Application.closePlayer(); } Application.volume_mc.toggleControl(false); if(Application.control_mc.state == "pause") { Application.control_mc.toggle(); } } static function onPause() { Application._player.pause(); Application.volume_mc.toggleControl(false); if(Application._state > Application.CLOSING && Application._options.animation) { Application.closePlayer(); } } static function onMoveHead(newPosition) { Application._player.moveHead(newPosition); } static function onSetVolume(volume, final) { if(final == undefined) { final = true; } Application._player.setVolume(volume,final); if(flash.external.ExternalInterface.available && final) { flash.external.ExternalInterface.call("AudioPlayer.syncVolumes",Application._options.playerID,volume); } } static function openPlayer() { Application._state = Application.OPENING; var _loc1_ = !Application._options.rtl ? Stage.width - Application.control_mc.realWidth : 0; if(Application._clearID != null) { clearInterval(Application._clearID); } Application._clearID = setInterval(Application._animate,40,_loc1_); } static function closePlayer() { Application._state = Application.CLOSING; Application.display_mc._visible = false; var _loc1_ = !Application._options.rtl ? Application.volume_mc.realWidth - 6 : Application.volume_mc._x - Application.control_mc.realWidth + 6; if(Application._clearID != null) { clearInterval(Application._clearID); } Application._clearID = setInterval(Application._animate,40,_loc1_); } static function _animate(targetX) { var _loc1_ = targetX - Application.control_mc._x; var _loc2_ = 0.5; _loc1_ *= _loc2_; if(Math.abs(_loc1_) < 1) { Application.control_mc._x = targetX; if(Application._options.rtl) { Application.mask_mc._width -= _loc1_ * 2; } else { Application.mask_mc._width += _loc1_ * 2; } clearInterval(Application._clearID); if(Application._state == Application.OPENING) { Application.display_mc._visible = true; Application._state = Application.OPEN; } else { Application._state = Application.CLOSED; } return undefined; } Application.control_mc._x += _loc1_; if(Application._options.rtl) { Application.mask_mc._width -= _loc1_; } else { Application.mask_mc._width += _loc1_; } } static function _update() { Application._setColors(false); if(Application._options.demomode) { return undefined; } var _loc1_ = Application._player.getState(); Application.volume_mc.update(_loc1_.volume); Application.control_mc.enabled = true; if(_loc1_.state != net.onepixelout.audio.Player.PAUSED) { Application.progress_mc.updateProgress(_loc1_.played); } Application.progress_mc.setMaxValue(_loc1_.loaded); Application.loading_mc.update(_loc1_.loaded); if(_loc1_.trackCount > 1) { Application.next_mc.enabled = _loc1_.hasNext; Application.previous_mc.enabled = _loc1_.hasPrevious; if(_loc1_.hasNext) { Application.next_mc._alpha = 100; } else { Application.next_mc._alpha = 50; } if(_loc1_.hasPrevious) { Application.previous_mc._alpha = 100; } else { Application.previous_mc._alpha = 50; } } var _loc3_ = ""; var _loc0_ = null; if((_loc0_ = _loc1_.state) !== net.onepixelout.audio.Player.NOTFOUND) { var _loc2_ = ""; if(_loc1_.connecting) { _loc2_ = "Connecting..."; } else { if(!Application._options.noinfo && _loc1_.trackCount > 1) { _loc2_ = _loc1_.trackIndex + 1 + ": "; } if(_loc1_.buffering) { _loc2_ += "Buffering..."; } else if(!Application._options.noinfo) { if(_loc1_.trackInfo.artist.length > 0 || _loc1_.trackInfo.songname.length > 0) { _loc2_ += _loc1_.trackInfo.artist; if(_loc1_.trackInfo.artist.length > 0) { _loc2_ += " - "; } _loc2_ += _loc1_.trackInfo.songname; } else { _loc2_ = "Track #" + (_loc1_.trackIndex + 1); } } } Application.display_mc.setText(_loc2_,0,true); Application.display_mc.setTime(!Application._options.remaining ? _loc1_.position : _loc1_.duration - _loc1_.position,Application._options.remaining); } else { if(_loc1_.trackCount > 1) { _loc3_ = _loc1_.trackIndex + 1 + " - "; } Application.display_mc.setText(_loc3_ + "File not found",0); Application.display_mc.setTime(0); } } static function _sixBitDecode(sourceStr) { var _loc4_ = ""; var _loc7_ = ""; var _loc8_ = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-"; var _loc2_ = undefined; var _loc5_ = undefined; var _loc3_ = undefined; var _loc1_ = undefined; _loc1_ = 0; while(_loc1_ < sourceStr.length) { _loc2_ = _loc8_.indexOf(sourceStr.substr(_loc1_,1)); _loc3_ = ("000000" + _loc2_.toString(2)).substr(-6,6); _loc4_ += _loc3_; _loc1_ = _loc1_ + 1; } _loc1_ = 0; while(_loc1_ < _loc4_.length) { _loc3_ = _loc4_.substr(_loc1_,8); _loc2_ = parseInt(_loc3_,2); _loc5_ = String.fromCharCode(_loc2_); _loc7_ += _loc5_; _loc1_ += 8; } return _loc7_; } static function ei_closePlayer() { var _loc1_ = Application._player.getState(); if(_loc1_.state == net.onepixelout.audio.Player.PLAYING || _loc1_.state == net.onepixelout.audio.Player.NOTFOUND) { if(_loc1_.loaded < 1) { Application._player.stop(false); } else { Application._player.pause(); } Application.onStop(); } } static function ei_openPlayer() { Application.onPlay(); Application.control_mc.toggle(); } static function ei_setVolume(newVolume) { Application._player.setVolume(newVolume); } static function ei_loadFile(sourceFile, titles, artists) { Application._player.stop(false); Application.onStop(); Application._player.loadPlaylist(sourceFile,titles,artists); } }