# MP3 Shuffle playlist

**URL:** <https://forum.kirupa.com/t/mp3-shuffle-playlist/328718>\
**Category:** flash\
**Created:** [June 9, 2012, 7:58pm UTC](https://forum.kirupa.com/t/mp3-shuffle-playlist/328718 "2012-06-09T19:58:19Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Orxan\_Zakirov](https://avatars.discourse-cdn.com/v4/letter/o/e79b87/32.png) [@Orxan\_Zakirov](https://forum.kirupa.com/u/Orxan_Zakirov)\
**Post date:** [June 9, 2012, 7:58pm UTC](https://forum.kirupa.com/t/mp3-shuffle-playlist/328718/1 "2012-06-09T19:58:19Z")

</div>

Hello, i have an MP3 playlist, bur I want to make it play files randomly (make shuffle). I don’t need a new button, just change .as file and make it play randomly. But I have not an extensive knowledge of ActionScript 3.0. Can you help me please, if you can do it? Thanks in advance.

The Playlist.as and MudicModule.fla (don’t know, optional) file is [here](https://www.box.com/s/670a187838ae834dd08a)

And this is visible version of my .as file

```auto

package com.Ub.Music
{
    import caurina.transitions.properties.ColorShortcuts;
    import caurina.transitions.Tweener;
    import com.Ub.utils.ScrollBar;
    import com.Ub.Music.playlist.Track;
    import flash.display.MovieClip;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    /**
     * ...
     * @author Umbra
     */
    public class Playlist extends MusicCore
    {
        /*
        * The Playlist class displays and controls playlist panel in MusicModule
        */
        
        private var songArray:Array;
        private var songList:XMLList;
        
        private var trackContainer:Sprite;
        private var contMask:Sprite;
        private var scrollbar:ScrollBar;
        private var colorOut:uint = 0xffffff;
        private var colorOver:uint = 0xff9966;
        
        public static const TRACK_CLICKED:String = "trackClicked";
        
        
        public function Playlist() 
        {
            super();
            
            
        }
    
        override protected function init(e:Event):void 
        {
            ColorShortcuts.init();
            removeEventListener(Event.ADDED_TO_STAGE, init);
            trackContainer = new Sprite();
            
            this.addChild(trackContainer);
            
            makeMaskAndScroll();
            
            colorOut = _xml.Settings.@playlistTextColor;
            colorOver = _xml.Settings.@playlistTextColorOver;
            
            
            
            
        }
        /*CUSTOM FUNCTION CALLED WHEN PLAYLIST IN ON*/
        override public function PLAYLIST_ON():void {
            this._reveal();
            updatePlaylist();
            
        }
        
        override protected function _reveal():void 
        {
            this.alpha = 0
            visible = true;
            Tweener.addTween(this, {delay:1, time:1, alpha:1 } );
        }
        
        private function updatePlaylist()
        {
            clearPlaylist();

                    songList = _xml.Album[_currentAlbum].song;
                    songArray = new Array();
                    var tfHeight:Number=0;
                    for (var i:int = 0; i < songList.length(); i++) 
                    {
                        var track = new Track(songList*.@title, i);
                        track.x = 15;
                        track.y = track.height * i + 8;
                        trackContainer.addChild(track);
                        tfHeight += track.height;

                        
                        track._selected = false;
                        track._discolorTrack();
                        track.addEventListener(MouseEvent.CLICK, onTrackClick);
                        
                        
                        songArray.push(track);
                        
                        track._showTitles();
                    }
                    trackContainer.height = tfHeight
                    if ( scrollbar) scrollbar.init();
                    
                    (songArray[_currentSong] as Track)._selected = true;
                    (songArray[_currentSong] as Track)._colorTrack();
            
        }
        
        private function onTrackClick(e:MouseEvent):void 
        {
            //PREV TRACK
            Tweener.addTween(songArray[currentSong], {_color:colorOut,time:0.3 } );
            (songArray[_currentSong] as Track)._selected = false;
            
            //NEXT TRACK
            _currentSong = (e.currentTarget as Track)._id
            this.dispatchEvent(new Event(TRACK_CLICKED));
            
            Tweener.addTween(songArray[currentSong], { _color:colorOver, time:0.3 } );
            (songArray[_currentSong] as Track)._selected = true;
            
            
        }
        
    
        
        private function makeMaskAndScroll():void 
        {
            var bgSpr:Sprite = new Sprite();
            bgSpr.graphics.beginFill(0x000000,0.8);
            bgSpr.graphics.drawRoundRectComplex(2, 2, 196, 196, 4, 4, 4, 4);
            bgSpr.graphics.endFill();
            this.addChildAt(bgSpr,0);
            contMask = new Sprite();
            contMask.graphics.beginFill(0x00ff00);
            contMask.graphics.drawRect(15, 10, 180, 185);
            contMask.graphics.endFill();
            this.addChild(contMask);
            
            trackContainer.mask = contMask;
            
            scrollbar = new ScrollBar();
            scrollbar.contentMask = contMask;
            scrollbar.content = trackContainer;
            scrollbar.x = 6;
            scrollbar.y = 10;
            
            this.addChild(scrollbar);
            scrollbar.init();
        }
        
        
        private function clearPlaylist():void 
        {
            for (var i:int = trackContainer.numChildren-1; i >= 0; i--) 
            {
                trackContainer.removeChildAt(i)
            }
        }
        
        
        
        
    }

}

```

Again thank you in advance.
