0 Replies Latest reply on Apr 16, 2009 8:18 AM by Meb Moon

    Help with Mp3 Player Scrolling Marquee Text

    Meb Moon Level 1
      Hi everyone,

       

      I'm attempting to build an mp3 player to add to my website using the "Flash MP3 Player" tutorial on the "Go To and Learn" website. The problem I am having is that the scrolling text displaying the song information is acting all strange. It only scrolls 2 letters over to the left and then 2 letters over to the right and also doesn't fill the entire text box (it leaves a section of empty space on the right side). What I want is for the song info to continuously scroll left to right like a marquee sign while each song is playing. Can anyone help me achieve this? I've pasted the actionscript I'm using at the bottom. The part regarding scrolling text is at the bottom.

       

      Thanks so much!

       

      Meb

       

      // Setup sound object
      var s:Sound = new Sound();
      s.onSoundComplete = playSong;
      s.setVolume(75);

       

      // Array of songs
      var sa:Array = new Array();

       

      // Currently playing song
      var cps:Number = -1;

       

      // Position of music
      var pos:Number;

       

      // Load the songs XML
      var xml:XML = new XML();
      xml.ignoreWhite = true;
      xml.onLoad = function()
      {
      var nodes:Array = this.firstChild.childNodes;
      for(var i=0;i<nodes.length;i++)
      {
      sa.push(new Song(nodes[i].attributes.url, nodes[i].attributes.artist, nodes[i].attributes.track));
      }
      playSong();
      }

       

      xml.load("songs.xml");

       

      // Play the MP3 File
      function playSong():Void
      {
      s = new Sound();
      s.onSoundComplete = playSong;
      s.setVolume(75);
      mute.gotoAndStop("on");
      if(cps == sa.length - 1)
      {
      cps = 0;
      s.loadSound(sa[cps].earl, true);
      }
      else
      {
      s.loadSound(sa[++cps].earl, true);
      }
      trackInfo.text = sa[cps].artist + " - " + sa[cps].track;
      playPause.gotoAndStop("pause");
      textPos = 0;
      }

       

      // Pauses the music
      function pauseIt():Void
      {
      pos = s.position;
      s.stop();
      }

       

      // Pauses the music
      function unPauseIt():Void
      {
      s.start(pos/1000);
      }

       

      // Music Controls

       

      // Play/Pause Toggle
      playPause.onRollOver = function()
      {
      if(this._currentframe == 1) this.gotoAndStop("pauseOver");
      else this.gotoAndStop("playOver");
      }

       

      playPause.onRollOut = playPause.onReleaseOutside = function()
      {
      if(this._currentframe == 10) this.gotoAndStop("pause");
      else this.gotoAndStop("play");
      }

       

      playPause.onRelease = function()
      {
      if(this._currentframe == 10)
      {
      this.gotoAndStop("playOver");
      this._parent.pauseIt();
      }
      else
      {
      this.gotoAndStop("pauseOver");
      this._parent.unPauseIt();
      }
      }

       

      // Next Button
      next.onRollOver = function()
      {
      this.gotoAndStop("nextOver");
      }

       

      next.onRollOut = next.onReleaseOutside = function()
      {
      this.gotoAndStop("next");
      }

       

      next.onRelease = function()
      {
      this._parent.playSong();
      }

       

      // Mute Button
      mute.onRollOver = function()
      {
      if(this._currentframe == 1) this.gotoAndStop("onOver");
      else this.gotoAndStop("offOver");
      }

       

      mute.onRollOut = mute.onReleaseOutside = function()
      {
      if(this._currentframe == 10) this.gotoAndStop("on");
      else this.gotoAndStop("off");
      }

       

      mute.onRelease = function()
      {
      if(this._currentframe == 10)
      {
      this.gotoAndStop("offOver");
      s.setVolume(0);
      }
      else
      {
      this.gotoAndStop("onOver");
      s.setVolume(75);
      }
      }

       


      ////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////
      // Text scroller bonus code

       

      var size:Number = 21;
      var textPos:Number = 0;
      var intervalID:Number = setInterval(scroller, 1000);

       

      function scroller():Void
      {
      var t:String = (sa[cps].artist + " - " + sa[cps].track);
      if(textPos+size < t.length)
      {
      textPos++;
      trackInfo.text = (sa[cps].artist + " - " + sa[cps].track).substring(textPos, textPos+size);
      }
      else
      {
      clearInterval(intervalID);
      intervalID = setInterval(scroller2, 1000);
      }
      }

       

      function scroller2():Void
      {
      var t:String = (sa[cps].artist + " - " + sa[cps].track);
      if(textPos > 0)
      {
      textPos--;
      trackInfo.text = (sa[cps].artist + " - " + sa[cps].track).substring(textPos, size);
      }
      else
      {
      clearInterval(intervalID);
      intervalID = setInterval(scroller, 1000);
      }
      }