//get your list of thumbnails var thumbs:Array = new Array("thumb01.jpg", "thumb02.jpg", "thumb03.jpg"); //this is how far the thumbnails will scroll each frame, set higher to scroll faster var scrollAmount:Number = 10; //these is the dimensions of the mask, the viewable area for the thumbnails to scroll through var maskWidth:Number = 600; var maskHeight:Number = 149; //set thumbWidth to whatever the width of each thumbnail will be, maybe add 4 or 5 pixels so there's a space between images var thumbWidth:Number = 170; //these just initialize the widths for the createThumbs function var mainWidth:Number = 0; var containerWidth:Number = 0; //now we're making the mask var imgMask:Sprite = new Sprite(); imgMask.graphics.beginFill(0); imgMask.graphics.drawRect(0, 0, maskWidth, maskHeight); imgMask.graphics.endFill(); //this is the main container var imgContainer:Sprite = new Sprite(); //we're adding the container and the mask to the stage here addChild(imgContainer); addChild(imgMask); //we tell the container to be masked by imgMask imgContainer.mask = imgMask; //now that we have everything setup, we run the function to generate the thumbnails createThumbs(); function createThumbs():void { //we create a thumbnail container, this is what will house the thumbnails, and this is what scrolls inside the main container var thumbContainer:Sprite = new Sprite(); thumbContainer.x = mainWidth; containerWidth = 0; //loop through your list of thumbs here for(var i:int = 0; i < thumbs.length; i++){ //we create a clip for the image to sit in var thumbClip:Sprite = new Sprite(); //we create a loader object to load the thumbnail var loader:Loader = new Loader(); loader.load(new URLRequest(thumbs[i])); //we can add the loader to the thumbClip, so the image will display thumbClip.addChild(loader); //we tell the thumbClip where to sit in the thumbContainer thumbClip.x = thumbWidth * i; //we add the thumbClip to the thumbContainer so the thumbnail will display thumbContainer.addChild(thumbClip); containerWidth += thumbWidth; } mainWidth += containerWidth; //we add the ENTER_FRAME event to the thumbContainer thumbContainer.addEventListener(Event.ENTER_FRAME, scrollThumbs); //we add thumbContainer to imgContainer so the group of thumbnails will display imgContainer.addChild(thumbContainer); //now we check to make sure there are enough thumbnails to scroll by, and if there aren't, then we run this function again if(mainWidth <= imgMask.width + containerWidth ){ createThumbs(); } } //this is the event that fires every frame for thumbContainer's function scrollThumbs(e:Event):void { //we initialize the thumbContainer variable from the event data passed to this function var thumbContainer:Sprite = e.target as Sprite; //we scroll the thumbContainer by the amount specified at the top thumbContainer.x -= scrollAmount; //if the thumbContainer has scrolled past the mask, we no longer need it, so remove it and add a new group of thumbnails to the end of the main container if(thumbContainer.x <= -(thumbContainer.width)){ thumbContainer.parent.removeChild(thumbContainer); createThumbs(); } }