Comunidad de diseño web y desarrollo en internet online

Ayuda con player

Citar            
MensajeEscrito el 18 Jun 2009 10:51 pm
Buenas.

Hola voy a tratar de ir al grano y ser lo mas claro posible.

Es mi primer post aqui.

Tengo un reproductor flash para mp3 con playlist xml.

Es justo lo que necesito para incrustarlo en una web flash que estoy trabajando, todo esta perfecto, pero ahora explico el unico "detalle" que ya me tiene loco.

Tengo mi web flash, con sus diferentes secciones y en una de ellas cargo el playermp3 atravez de un clip de pelicula vacio, asta ahi todo bien, pues el player funciona y todo, pero este player a de tener alguna linea en su codigo que hace que se adapte al tamaño de la pelicula que lo contiene.

Osea la pelicula del player mide como 350 pixeles y es mas o menos el tamaño del espacio donde quiero cargarlo, pero al cargar se expande al tamaño de toda mi pelicula principal que son 760px partiendo de la cordenada 0 del clip vacio claro, saliendoce del margen totalmente.

Dejo una imagen.


El .fla del player funciona con dos archivos mas jwMp3player.as y jwPlaylist.as
Dejo el codigo del primero pues creo que ahi esta el asunto:

Código ActionScript :

// shared class for loading and parsing of playlist
import jwPlaylist;
// system class for event delegation
import mx.utils.Delegate;
// system class for javascript interaction
import flash.external.ExternalInterface;

class jwMp3player extends MovieClip {
   
   // configuration variables
   private var configURL:String =  "config.xml";
   private var configXML:XML;
   private var configArray:Array = new Array( { 
            autostart:'false',
            shuffle:'false',
            repeat:'none',
            volume:'80',
            showdisplay:'false',
            showplaylist:'true',
            linktarget:'_self',
            backcolor:'0xffffff',
            frontcolor:'0x000000',
            lightcolor:'0xcc0000',
            jpgfile: undefined, 
            callback: undefined, 
            width:250, // these two vars are re-read in the
            height:300 // readConfigXML function to avoid 0's
   } );
   
   // playlist variables
   private var playlistURL:String = "playlist.xml";
   private var playlistObj:jwPlaylist;
   private var playlistArray:Array;
   
   // sound variables
   public var soundState:String = "idle"; // can be idle,load,play,pause
   private var soundObj:Sound;
   private var soundPausePos:Number = 0;
   private var soundPlayPos:Number = 0;
   private var soundCurrent:Number = 0;
   private var soundRandom:Array = new Array();
   private var soundScrubInt:Number;
   private var soundVolumeScrubInt:Number;
   private var soundShowEQ:Boolean = false;
   private var soundEQStripes:Number;
   
   // cover loader and listener
   private var coverLoader:MovieClipLoader;
   private var coverListener:Object;
   
   // all sub-movieclips of the mp3player movieclip
   private var back:MovieClip;
   private var displayGlow:MovieClip;
   private var displayEQ:MovieClip;
   private var displayTitle:MovieClip;
   private var displayCover:MovieClip;
   private var displayMask:MovieClip;
   private var controlsPlay:MovieClip;
   private var controlsPause:MovieClip;
   private var controlsPrev:MovieClip;
   private var controlsNext:MovieClip;
   private var controlsProgress:MovieClip;
   private var controlsVolume:MovieClip;
   private var playlistGlow:MovieClip;
   private var playlistMask:MovieClip;
   private var playlistScroll:MovieClip;
   private var playlist:MovieClip;


   //==============================================================================
   // initialization functions:
   // 1. jwMp3player(): simple constructor
   // 2. readConfig(): loads and applies config xml
   // 3. readFile(): loads and applies file / playlist xml
   // 4. buildPlaylist(): return function of a playlist readFile()
   //==============================================================================
   

   // constructor
   function jwMp3player() {
      // check for config and playlist file
      if(_root.config != undefined) { configURL = _root.config; }
      if(_root.file != undefined) { playlistURL = _root.file; }
      if(_root.autostart != undefined) { configArray[0]['autostart'] = _root.autostart; }
      // set stage variables
      setStageVars();
      // get all config info
      readConfig();
      // set javascript control target
      if (ExternalInterface.available) {
         var scs:Boolean = ExternalInterface.addCallback("jsControl",this,jsPerformer);
      }
   };


   // stage variables and rightclick menu
   private function setStageVars() {         
      var newMenu:ContextMenu = new ContextMenu();
      newMenu.hideBuiltInItems();
      newMenu.customItems.push(new ContextMenuItem("Flash MP3 Player 2.3.1 by Jeroenwijering...",goTo));
      _root.menu = newMenu;
      function goTo() { getURL("http://www.jeroenwijering.com/?item=Flash_MP3_Player"); };
      Stage.scaleMode = "noScale";
      Stage.align = "TL";
      // width and height are also re-read here to avoid 0-0 sizes!
      configArray[0]['width'] = Stage.width;
      configArray[0]['height'] = Stage.height;
   };
   

   // read config xml
    private function readConfig() {
      // setup config xml
        configXML = new XML();
        configXML.ignoreWhite = true;
      configXML['parent'] = this;
        // parse data from xml
        configXML.onLoad = function(success:Boolean) {
           if(success) {
               var itm = this.firstChild.firstChild;
            while (itm != null) {
               this.parent.configArray[0][itm.nodeName] = itm.firstChild.nodeValue; 
               itm = itm.nextSibling;
            }
            trace(this.parent.configArray[0]['height']);
            if(this.parent.configArray[0]['height'] < 30) { this.parent.configArray[0]['showdisplay'] = 'false'; }
           }  else {
            // just use the default values
         }
         // delete XML
            delete this.parent.configXML;
         // start playlist building
         this.parent.setSizesColorsButtons();
         this.parent.readFile();
        };
        // start loading XML from file
      configXML.load(configURL);
    };

   
   // read playlist or set single file (publicly accessible)
   public function readFile(fl:String) {
      if(fl) { playlistURL = fl; }
      // remove old playlist buttons (for extra playlist functionality)
      for(var i=0; i<playlistArray.length; i++) {
         playlist['button'+i].removeMovieClip();
      }
      playlistArray = new Array();
      // reset old sound object
      soundObj = new Sound();
      soundCurrent = 0;
      soundState = "idle";
      // check for single file
      if(playlistURL.substr(-4,4).toLowerCase() == '.mp3') {
         // set single file playlist
         var tit = playlistURL.substring(playlistURL.lastIndexOf('/')+1,playlistURL.length-4);
         playlistArray.push({title:tit,file:playlistURL,link:''});
         if(configArray[0]['autostart'] == 'true') { playSong(); }
      // if not, parse playlist
      } else {
         playlistObj = new jwPlaylist();
         playlistObj.addEventListener("read", Delegate.create(this, buildPlaylist));
         playlistObj.readPlaylist(playlistURL);
      }
   };
   
   
   // small return function that parses playlist object
   private function buildPlaylist(obj:Object) {
      playlistArray = obj.playlist;
      delete playlistObj;
      setPlaylistSizesColorsButtons();
      if(configArray[0]['showdisplay'] == 'true') { checkForCover(); }
      if(configArray[0]['autostart'] == 'true') { playSong(); }
   };


   //==============================================================================
   // javascript controls delegate function
   //==============================================================================

   function jsPerformer(func:String, param:String) {
      if (func == "pause") { playPause(); }
      else if (func == "play") { playSong(Number(param)); }
      else if (func == "scrub") { scrubSong(Number(param)); }
      else if (func == "volume") { setVolume(Number(param)); }
      else if (func == "link") { getLink(Number(param)); }
      else if (func == "load") { readFile(param); }
   };   


   //==============================================================================
   // all sound control functions are set here
   //==============================================================================

   // start playing first file
   public function playSong(i:Number) {
      playlist['button'+soundCurrent].back._alpha = 0;
      soundState = "load";
      soundPausePos = 0;
      if(i != undefined) { soundCurrent = i; }
      else if (configArray[0]['shuffle'] == 'true') { setRandomCurrent(); }
      playlist['button'+soundCurrent].back._alpha = 25;
      controlsPlay._visible = false;
      controlsPause._visible = true;
      // start the sound object
      soundObj = new Sound(this);
      soundObj['parent'] = this;
      // check shuffle config to see what to do when a song is finished
      soundObj.onSoundComplete = function() {
         this.parent.callBack("complete");
         if (this.parent.configArray[0]['repeat'] == 'all') { this.parent.nextSong(); } 
         else if (this.parent.configArray[0]['repeat'] == 'one') { this.parent.playSong(this.parent.soundCurrent); }
         else if (this.parent.configArray[0]['repeat'] == 'list' && 
               ((this.parent.soundCurrent != this.parent.playlistArray.length - 1 && this.parent.configArray[0]['shuffle'] == "false") ||
                this.parent.soundRandom.length != 0)) { this.parent.nextSong(); }
         else { this.parent.soundState = "idle"; }
      };
      // load album cover if any
      if(configArray[0]['showdisplay'] == 'true') { checkForCover(); }
      // load the file and set the volume
      soundObj.loadSound(playlistArray[soundCurrent]['file'],true);
      setVolume(Number(configArray[0]['volume']));
      soundObj.start();
      callBack("start");
   };

   
   // send callback if url is set
   private function callBack(action:String) {
      if(configArray[0]['callback'] != undefined) {
      trace(configArray[0]['callback']);
         var send_lv:LoadVars = new LoadVars();
          send_lv.file = playlistArray[soundCurrent]['file'];
          send_lv.title = playlistArray[soundCurrent]['title'];
          send_lv.identifier = playlistArray[soundCurrent]['identifier'];
          send_lv.playlist = playlistURL;
          send_lv.action = action;
          send_lv.sendAndLoad(configArray[0]['callback'],send_lv, "POST");
      }
      
   };


   // set a random current song to play
   private function setRandomCurrent() {
      // if just started, fill random array
      if(soundRandom.length == 0) {
         for(var k=0; k<playlistArray.length; k++) {
            soundRandom.push(k);
         }
      }
      // else get a random one
      var rd = random(soundRandom.length);
      soundCurrent = soundRandom[rd];
      soundRandom.splice(rd,1);
   };


   // pause/play current song   
   public function playPause() { 
      if (soundState == 'idle') {
         playSong();
         soundState = 'load';
      } else if(soundPausePos > 0) { 
         soundObj.start(soundPausePos);
         soundPausePos = 0;
         soundState = "play";
      } else {
         soundPausePos = soundObj.position/1000;
         soundObj.stop();
         soundState = "pause";
      }
   };
   
   
   // start next song
   private function nextSong() {
      if(configArray[0]['shuffle'] == 'true') {
         playSong();
      } else if (soundCurrent == playlistArray.length - 1) {
         playSong(0);
      } else {
         playSong(soundCurrent + 1);
      }
   };
   
   
   // start previous song
   private function prevSong() {
      if(configArray[0]['shuffle'] == 'true') {
         playSong(soundRandom[soundRandom.length-1]);
      } else if (soundCurrent == 0) {
         playSong(playlistArray.length-1);
      } else {
         playSong(soundCurrent - 1);
      }
   };
   
   
   // start scrubbing of the playbar
   private function startScrubbing() {
      soundScrubInt = setInterval(this,"scrubSong",40);
   };
   

   // stop scrubbing of the playbar
   private function stopScrubbing() {
      clearInterval(soundScrubInt);
   };


   // scrub to a certain position
   public function scrubSong(xm) {
      if( xm == undefined) {
         var xm = Math.round(controlsProgress.loa._xmouse/controlsProgress.loa._width*controlsProgress.loa._xscale);
      } else {
         xm = xm/(soundObj.duration/1000)*100;
      }
      if (xm > 0 && xm < 100) {  
         controlsProgress.tme._xscale = xm;
         soundObj.stop();
         soundObj.start(Math.round(soundObj.duration*xm/100000));
         soundState = "play";
         soundPausePos = 0;
      }
   };


   // start scrubbing of the volume bar
   private function startVolumeScrubbing() {
      soundVolumeScrubInt = setInterval(this,"scrubVolume",40);
   };
   
   
   // stop scrubbing of the volume bar
   private function stopVolumeScrubbing() {
      clearInterval(soundVolumeScrubInt);
   };

   
   // volume scrubbing interval function
   private function scrubVolume() {
      var xm = controlsVolume._xmouse;
       var fx = controlsVolume.front._x;
      var fw = controlsVolume.front._width;
      var vl = Math.round((xm-fx)/fw*100);
      setVolume(vl);
   };
   
   
   // set a certain volume
   public function setVolume(vl:Number) {
      if(vl >=0 && vl <=100) {
         configArray[0]['volume'] = vl;
         soundObj.setVolume(vl);
         controlsVolume.mask._width = vl/5;
      }
   };
   

   // get a link from the playlist
   public function getLink(i:Number) {
      getURL(playlistArray[i]['link'],configArray[0]['linktarget']);
   }


   //==============================================================================
   // all the interface-related stuff is set here
   //==============================================================================

   
   // set the display and controlbar colors, dimensions and button presses
   private function setSizesColorsButtons() {
      // extra reference to config array
      var configArray = this.configArray;
      // back image, size and color
      if(configArray[0]['jpgfile'] != undefined) {
         back.loadMovie(configArray[0]['jpgfile']);
         displayGlow._visible = false;
         playlistGlow._visible = false;
      } else {
         back._width = configArray[0]['width'];
         back.col = new Color(back);
         back.col.setRGB(configArray[0]['backcolor']);
         back._height = configArray[0]['height'];
      }
      // display sizes and colors
      if(configArray[0]['showdisplay'] == 'true') {
         displayGlow._width = configArray[0]['width'];
         displayMask._width = configArray[0]['width'] - 16;
         displayTitle.tf.textColor = configArray[0]['lightcolor'];
         displayTitle.tf.autoSize = true;
         setEqualizer();
         displayTitle.setMask(displayMask);
         displayCover.line.col = new Color(displayCover.line);
         displayCover.line.col.setRGB(configArray[0]['lightcolor']);
         addCoverLoader();
      } else {
         displayGlow._visible = displayEQ._visible = displayTitle._visible = displayMask._visible = false;
         controlsPlay._y = controlsPause._y = controlsNext._y = controlsPrev._y = controlsProgress._y = controlsVolume._y = 0;
         playlistGlow._y = 18;
         playlist._y = 19;
      }
      displayCover._visible = false;
      // play and pause buttons
      controlsPlay.icn.col = new Color(controlsPlay.icn);
      controlsPlay.icn.col.setRGB(configArray[0]['frontcolor']);
      controlsPause.icn.col = new Color(controlsPause.icn);
      controlsPause.icn.col.setRGB(configArray[0]['frontcolor']);
      controlsPause._visible = false;
      controlsPlay.onRollOver = controlsPause.onRollOver = function() { this.icn.col.setRGB(configArray[0]['lightcolor']); };
      controlsPlay.onRollOut = controlsPause.onRollOut =  function() { this.icn.col.setRGB(configArray[0]['frontcolor']); };
      controlsPlay.onPress = controlsPause.onPress = function() { this._parent.playPause(); }
      // hide next prev (will  be shown later if needed)
      controlsNext._visible = controlsPrev._visible = false;
      // progress bar
      controlsProgress._x -= 34;
      controlsProgress._width = configArray[0]['width'] - 56;
      controlsProgress.tme.col = new Color(controlsProgress.tme);
      controlsProgress.tme.col.setRGB(configArray[0]['frontcolor']);
      controlsProgress.loa.col = new Color(controlsProgress.loa);
      controlsProgress.loa.col.setRGB(configArray[0]['frontcolor']);
      controlsProgress.loa._xscale = controlsProgress.tme._xscale = 0;
      controlsProgress.loa.onRollOver = function() { this._parent.tme.col.setRGB(configArray[0]['lightcolor']); };
      controlsProgress.loa.onRollOut = function() { this._parent.tme.col.setRGB(configArray[0]['frontcolor']); };
      controlsProgress.loa.onPress = function() { this._parent._parent.startScrubbing(); }
      controlsProgress.loa.onRelease = controlsProgress.loa.onReleaseOutside = function() { this._parent._parent.stopScrubbing(); }
      // volume bar
      controlsVolume._x = configArray[0]['width'] - 38;
      controlsVolume.icn.col = new Color(controlsVolume.icn);
      controlsVolume.icn.col.setRGB(configArray[0]['frontcolor']);
      controlsVolume.front.col = new Color(controlsVolume.front);
      controlsVolume.front.col.setRGB(configArray[0]['frontcolor']);
      controlsVolume.back.col = new Color(controlsVolume.back);
      controlsVolume.back.col.setRGB(configArray[0]['frontcolor']);
      controlsVolume.back.onRollOver = function() { this._parent.front.col.setRGB(configArray[0]['lightcolor']); };
      controlsVolume.back.onRollOut = function() { this._parent.front.col.setRGB(configArray[0]['frontcolor']); };
      controlsVolume.back.onPress = function() { this._parent._parent.startVolumeScrubbing(); }
      controlsVolume.back.onRelease = controlsVolume.back.onReleaseOutside = function() { this._parent._parent.stopVolumeScrubbing(); }
      // hide playlist (will  be shown later if needed)
      playlistGlow._width = configArray[0]['width']; 
      playlistGlow._height = configArray[0]['height'] - playlistGlow._y;
      playlist._visible = playlist.button._visible = playlistGlow._visible = false;
      setInterval(this,"interfaceUpdater",200);
   };


   // set sizes and colors of playlist
   private function setPlaylistSizesColorsButtons() {
      // extra reference to config array
      var configArray = this.configArray;
      // prev/next buttons
      controlsPrev._visible = controlsNext._visible = true;
      controlsPrev.icn.col = new Color(controlsPrev.icn);
      controlsPrev.icn.col.setRGB(configArray[0]['frontcolor']);
      controlsNext.icn.col = new Color(controlsNext.icn);
      controlsNext.icn.col.setRGB(configArray[0]['frontcolor']);
      controlsPrev.onRollOver = controlsNext.onRollOver = function() { this.icn.col.setRGB(configArray[0]['lightcolor']); };
      controlsPrev.onRollOut = controlsNext.onRollOut =  function() { this.icn.col.setRGB(configArray[0]['frontcolor']); };
      controlsPrev.onPress = function() { this._parent.prevSong(); }
      controlsNext.onPress = function() { this._parent.nextSong(); }
      // progress bar
      controlsProgress._width = configArray[0]['width'] - 90;
      controlsProgress._x = 52;
      // iterate playlist sizes, colors and rollovers
      if((configArray[0]['showplaylist'] == 'true')) {
         playlist._visible = playlistGlow._visible = true;
         for(var i=0; i<playlistArray.length; i++) {
            // duplicate buttons and set size/color
            playlist.button.duplicateMovieClip('button'+i,i);
            var tgt = playlist['button'+i];
            tgt._y = i*20;
            tgt.tf._width = configArray[0]['width'] - 12;
            tgt.tf.text = playlistArray[i]['title'];
            tgt.back._width = configArray[0]['width'] - 2;
            tgt.glow._width = configArray[0]['width'] - 2;
            tgt.tf.textColor = configArray[0]['frontcolor'];
            tgt.back._alpha = 0;
            tgt.back.col = new Color(tgt.back);
            tgt.back.col.setRGB(configArray[0]['lightcolor']);
            tgt.back._alpha = 0;
            // set button functions
            tgt.back.onRollOver = function() { this._parent.tf.textColor = configArray[0]['lightcolor']; };
            tgt.back.onRollOut = function() { this._parent.tf.textColor = configArray[0]['frontcolor']; };
            tgt.back.onPress = function() { this._parent._parent._parent.playSong(this._parent.getDepth()); };   
            // set link functions
            if (playlistArray[i]['link'].length > 4) {
               tgt.link._x = configArray[0]['width'] - 22;
               tgt.link.col = new Color(tgt.link);
               tgt.link.col.setRGB(configArray[0]['frontcolor']);
               tgt.link.onRollOver = function() { this.col.setRGB(configArray[0]['lightcolor']); };
               tgt.link.onRollOut = function() { this.col.setRGB(configArray[0]['frontcolor']); };
               tgt.link.onPress = function() { this._parent._parent._parent.getLink(this._parent.getDepth()); };   
            } else {
               tgt.link._visible = false;
            }
         }
         if(playlist._height > playlistGlow._height) {
            playlistScroll._visible = true; 
            init_scroller();
            playlistGlow.duplicateMovieClip("playlistMask",1);
            playlist.setMask(playlistMask);
         } else {
            playlistScroll._visible = false;
            playlist._y = playlistGlow._y + 1;
         }
      }
   };


   /**
   * This function frees up some space for the scrollbar, builds it, and sets up the button actions for the 
   * scrollbar foreground and background clicks.
   **/
   private function init_scroller() {
   // refer to local variables that are needed
      var configArray = this.configArray;
      var frt:MovieClip = playlistScroll.front;
      var playlist = this.playlist;
      // make all buttons ten pixels shorter
      for(var i=0; i<playlistArray.length; i++) {
         var tgt = playlist['button'+i];            
         tgt.tf._width = configArray[0]['width'] - 21;
         tgt.back._width = configArray[0]['width'] - 11;
         tgt.glow._width = configArray[0]['width'] - 11;
         tgt.link._x = configArray[0]['width'] - 31;
      }
      // set sizes and colors of the scrollbar back and front
      playlistScroll._x = configArray[0]['width'] - 10;
      playlistScroll._y = playlistGlow._y + 3;
      playlistScroll.back._height = playlistGlow._height - 6;
      playlistScroll.back.col = new Color(playlistScroll.back);
      playlistScroll.back.col.setRGB(configArray[0]['frontcolor']);
      playlistScroll.front._height = Math.round(playlistScroll.back._height*playlistGlow._height/playlist._height);
      playlistScroll.front.col = new Color(playlistScroll.front);
      playlistScroll.front.col.setRGB(configArray[0]['frontcolor']);
      // this scaling is the divider between the scrollbar and playlist height.
      var scl = playlist._height/playlistScroll.back._height;
      // rollover functions for the scrollbar to let people know there's something to do here.
      playlistScroll.back.onRollOver = playlistScroll.front.onRollOver = function() { 
         frt.col.setRGB(configArray[0]['lightcolor']);
      };
      // accompanying rollout function
      playlistScroll.back.onRollOut = playlistScroll.front.onRollOut = function() { 
         frt.col.setRGB(configArray[0]['frontcolor']);
      };
      // function for clicking on the back of the scrollbar 
      playlistScroll.back.onPress = function() {
         // if the mouseclick is above the scrollbar front .. 
         if(this._parent._ymouse < frt._y) { 
            // .. go to 0 if we're close to the top .. 
            if(frt._y < frt._height/4) { 
               frt._y = 0;
               playlist._y = this._parent._y; 
            // .. else go a little bit up
            } else {
               frt._y -= frt._height/4;
               playlist._y += Math.round(scl*frt._height/4);
            }
         // if the mouseclick is below the scrollbar front .. 
         } else {
            // .. go to the maximum position if we're close to the bottom .. 
            if(frt._y > this._height - frt._height*1.25) {
               frt._y = this._height - frt._height;
               playlist._y = this._parent._y + this._parent._height - playlist._height + 2;
            // .. else go a little bit down
            } else {
               frt._y += frt._height/4;
               playlist._y -= Math.round(scl*frt._height/4);
            }
         }
      };
      // function for clicking on the front of the scrollbar.
      // this seems to cause the problems in the windowsmobile version.
      // if you comment the line with 'startDrag' and uncomment the other lines 
      // with code in this function, you have a 2nd way to scroll the playlist.
      playlistScroll.front.onPress = function() {
         this.startDrag(false,0,0,0,this._parent.back._height-this._height);
         // this.ym = this._parent._ymouse;
         // this.yp = this._y;
         // every frame this function updates the playlist position based upon the playlist front position.
         this.onEnterFrame = function() {
            // this._y = this.yp + this._parent._ymouse - this.ym;
            if(this._y <= 0) {
               // this._y = 0;
               playlist._y = this._parent._y; 
            } else if ( this._y >= this._parent.back._height-this._height) {
               // this._y = this._parent.back._height-this._height;
               playlist._y = this._parent._y + this._parent._height - playlist._height + 2;
            } else { 
               playlist._y = -scl*(this._y - this._parent.back._y) + this._parent._parent.playlistGlow._y;
            }
         };
      };
      // when releasing the mouse, the dragging and enterframe are stopped.
      // comment the 'stopDrag' line and uncomment the 'this._y' line to try the 2nd way to scroll the playlist.
      playlistScroll.front.onRelease = playlistScroll.front.onReleaseOutside  = function() {
         this.stopDrag();
         // this._y = this._parent.front._y;
         delete this.onEnterFrame;
      };
   };
   

   // set correct display title / scrubbars / equalizer height
   private function interfaceUpdater() {
      // get title info
      var txt = '<font color="#'+configArray[0]['lightcolor'].substring(2,8)+'">';
      txt += '<b>'+playlistArray[soundCurrent]['title']+'</b> ';
      // show loading progress
      var pcl = Math.round(soundObj.getBytesLoaded()/soundObj.getBytesTotal()*100);
      controlsProgress.loa._xscale = pcl;
      // set all items for idle display
      if(soundState == 'idle') {
         soundShowEQ = false;
         soundPausePos = 0;
         controlsProgress.tme._xscale = 0;
         controlsPlay._visible = true;
         controlsPause._visible = false;
      } else if(soundState == 'load' || soundState == 'play') {  
         soundShowEQ = false; 
         controlsPlay._visible = false;
         controlsPause._visible = true;
         // show playing progress
         var pcp = Math.round(soundObj.position/soundObj.duration*pcl);
         controlsProgress.tme._xscale = pcp;
         // show eq if sound plays during loading
         var pp = soundObj.position;
         if(pp > soundPlayPos) { soundShowEQ = true; }
         soundPlayPos = pp;
         // switch display to play is loaded is 100%
         if(pcl > 99) { 
            soundState = "play";
            var posm = int((soundObj.position/1000)/60);
            var poss = int((soundObj.position/1000)%60);
            var durm = int((soundObj.duration/1000)/60);
            var durs = int((soundObj.duration/1000)%60); 
             txt += '- '+checkD(posm)+':'+checkD(poss)+'/'+checkD(durm)+':'+checkD(durs)+'   ';
         } else {
            soundState = "load";
            if(isNaN(pcl)){ pcl = 0; }
            txt += '- '+pcl+'% loaded   ';
         }
      } else if (soundState == 'pause') {
         soundShowEQ = false; 
         controlsPlay._visible = true;
         controlsPause._visible = false;
         txt += '- paused   ';
      }
      // assign title text to display
      displayTitle.tf.htmlText  = txt +'</font>';
      // if the displayTitle is too wide, scroll it
      if(displayTitle._width > displayMask._width) {
         displayTitle.tf.htmlText  = txt+txt;
         displayTitle.onEnterFrame = function() {
            this._x--;
            if(this._x < 8 - this._width/2) {
               this._x = 4;
            }
         };
      } else { 
         displayTitle._x = displayMask._x;
         delete displayTitle.onEnterFrame;
      }
   };
   

   // prefixing a 0 to the time
   private function checkD(toCheck:Number) {
      if(toCheck<10) { return "0"+toCheck } else { return toCheck; }
   };


   // playlist scrolling function
   private function scrollPlaylist() {
      // duplicate the glow to use as a mask
      playlistGlow.duplicateMovieClip("playlistMask",1);
      playlist.setMask(playlistMask);
      // set an enterframe function for the scrolling
      playlistGlow.onEnterFrame = function() {
         // scroll playlist if needed
         if(this.hitTest(_root._xmouse,_root._ymouse) == true) {
            // determine relative mouse position
            var mpos = this._ymouse/this._height*this._yscale*0.02 - 1;
            // determine max, min and current playlist _y
            var ply = this._parent.playlist._y;
            var maxy = this._y + 2;
            var miny = this._y - this._parent.playlist._height + this._height - 1;
            if( ply >  maxy - 5 && mpos < 0) {
               this._parent.playlist._y = maxy;
            } else if (ply < miny + 5 && mpos > 0) {
               this._parent.playlist._y = miny;
            } else {
               this._parent.playlist._y -= Math.floor(mpos*15);
            }
         }
      };
   };


   // equalizer setup function
   private function setEqualizer() {
      // determine width of eq
      soundEQStripes = Math.floor((configArray[0]['width'] - 16)/6);
      // make a duplicate of both mask and stripes
      displayEQ.stripes.duplicateMovieClip("stripes2",1);
      displayEQ.mask.duplicateMovieClip("mask2",3);
      // set colors and sizes
      displayEQ.stripes._width = displayEQ.stripes2._width = configArray[0]['width'] - 16;
      displayEQ.stripes.top.col = new Color(displayEQ.stripes.top);
      displayEQ.stripes.top.col.setRGB(configArray[0]['lightcolor']);
      displayEQ.stripes.bottom.col = new Color(displayEQ.stripes.bottom);
      displayEQ.stripes.bottom.col.setRGB(configArray[0]['frontcolor']);
      displayEQ.stripes2.top.col = new Color(displayEQ.stripes2.top);
      displayEQ.stripes2.top.col.setRGB(configArray[0]['lightcolor']);
      displayEQ.stripes2.bottom.col = new Color(displayEQ.stripes2.bottom);
      displayEQ.stripes2.bottom.col.setRGB(configArray[0]['frontcolor']);
      // apply masking
      displayEQ.stripes.setMask(displayEQ.mask);
      displayEQ.stripes2.setMask(displayEQ.mask2);
      // set alpha for a nice fade
      displayEQ.stripes._alpha = displayEQ.stripes2._alpha = 50;
      // start the drawing functions
      setInterval(this,"drawEqualizerFrame",80,displayEQ.mask);
      setInterval(this,"drawEqualizerFrame",80,displayEQ.mask2);
   };


   // equalizer frame drawer
   private function drawEqualizerFrame(tgt:MovieClip) {
      tgt.clear();
       tgt.beginFill(0x000000, 100);
      tgt.moveTo(0,0);
      if(soundShowEQ == true) { var h = Math.round(configArray[0]['volume']/6); } 
      else { var h = 0; }
      for (var j=0; j< soundEQStripes; j++) {
         var z = random(h)+h/2 + 2;
         if(j == Math.floor(soundEQStripes/2)) { z = 0; }
         tgt.lineTo(j*6,-1);
         tgt.lineTo(j*6,-z);
         tgt.lineTo(j*6+4,-z);
         tgt.lineTo(j*6+4,-1);
         tgt.lineTo(j*6,-1); 
      }
      tgt.lineTo(j*6,0);
      tgt.lineTo(0,0);
      tgt.endFill();
   };
   
   
   // set Cover MovieClipLoader and resizer
   private function addCoverLoader() {
      coverLoader = new MovieClipLoader();
      coverListener = new Object();
      coverListener['tgt'] = displayCover.image.loader;
      coverLoader.addListener(coverListener);
      coverListener.onLoadInit = function() {
         this.tgt._xscale = this.tgt._yscale = 100;
         if(this.tgt._width < this.tgt._height) {
            var scl = Math.ceil(4000/this.tgt._width);
         } else { 
            var scl = Math.ceil(4000/this.tgt._height);
         }
         this.tgt._xscale = this.tgt._yscale = scl;
         this.tgt._x = 20 - this.tgt._width/2;
         this.tgt._y = 20 - this.tgt._height/2;
      };
   };
   
   
   // cover art (un)setter
   private function checkForCover() {
      if(playlistArray[soundCurrent]['image']) {
         displayCover._visible = true;
         displayCover.image.setMask(displayCover.mask);
         displayCover.image.loader.clear();
         coverLoader.loadClip(playlistArray[soundCurrent]['image'],displayCover.image.loader);
         displayMask._x = 60;
         displayEQ._x = 60;
         displayMask._width = configArray[0]['width'] - 70;
         displayEQ.stripes._width = displayEQ.stripes2._width = configArray[0]['width'] - 68;
         soundEQStripes = Math.floor((configArray[0]['width'] - 66)/6);
      } else {
         displayCover._visible = false;
         displayMask._x = 10;
         displayEQ._x = 12;
         displayMask._width = configArray[0]['width'] - 20;
         displayEQ.stripes._width = displayEQ.stripes2._width = configArray[0]['width'] - 18;
         soundEQStripes = Math.floor((configArray[0]['width'] - 16)/6);
      }
   };

}



Larguismo lo se pero creo que estan acostumbrados...

Si me pueden ayudar se los agradesco infinitamente. ^^

Por maximusc7

1 de clabLevel



Genero:Masculino  

Webmaster

msie7
Citar            
MensajeEscrito el 19 Jun 2009 10:52 am
El código completo del player de Jerome Ewing, 800 líneas de código, flipo

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 19 Jun 2009 01:34 pm
Bueno... me imagine que para quienes leen codigo mejor que yo no seria tan dificil.

Pues solo queria que me ayudaran a encontrar la linea de codigo donde hace que el reproductor tome el ancho de la pelicula que lo contiene y a modificarla o borrar la linea de ser necesario. No a modificar todo el codigo.

Se muy bien que aqui hay quienes entienden bien el codigo..(como que fuera español) jejeje.

Y asta los comentarios del codigo que estan en ingles, (yo ni ingles se mucho).

En fin...Gracias por leer el post. :oops:

Por maximusc7

1 de clabLevel



Genero:Masculino  

Webmaster

msie7
Citar            
MensajeEscrito el 19 Jun 2009 01:37 pm
Tu sabes leer. Bien, imagina que pongo 800 líneas de texto y te pido que me corrijas la ortografía.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.