A Flash Developer Resource Site

Results 1 to 1 of 1

Thread: swf onPress

  1. #1
    Junior Member
    Join Date
    Feb 2006
    Posts
    23

    swf onPress

    Hello I am trying to simulate an interactive car stereo, and I have all of the elements programmed except for one that I am having trouble with. I have songs loaded via xml and then song info is displayed on the screen. there is a next and previous button.

    I would like a swf to be associated with each song, so that when one song is playing a an swf is showing, then if you click next or previous the corresponding swf shows up

    here is the code so far with working play/pause, and next and previous
    Code:
    stop();
    var songs:Array = new Array();
    var curtrack:Number = 0;
    var playingsong:Sound = new Sound();
    if (_root.playlist == undefined || _root.playlist == "") {
    	_root.playlist = "playlist.xml";
    }
    var playlistXml:XML = new XML();
    playlistXml.ignoreWhite = true;
    playlistXml.load(_root.playlist);
    playlistXml.onLoad = function() {
    	loadSongs();
    	loadplaylistbox();
    	loadSong(curtrack);
    	if (_root.autostart == "false") {
    		toggleplaypause();
    	}
    };
    function loadSongs() {
    	for (songIndex=0; songIndex<playlistXml.childNodes[0].childNodes[0].childNodes.length; songIndex++) {
    		var songdata:Object = new Object();
    		for (songNode=0; songNode<playlistXml.childNodes[0].childNodes[0].childNodes[songIndex].childNodes.length; songNode++) {
    			switch(playlistXml.childNodes[0].childNodes[0].childNodes[songIndex].childNodes[songNode].nodeName){
    			case "creator":
    				songdata.artist = playlistXml.childNodes[0].childNodes[0].childNodes[songIndex].childNodes[songNode].childNodes[0].nodeValue;
    				break;
    			case "title":
    				songdata.title = playlistXml.childNodes[0].childNodes[0].childNodes[songIndex].childNodes[songNode].childNodes[0].nodeValue;
    				break;
    			case "location":
    				songdata.location = playlistXml.childNodes[0].childNodes[0].childNodes[songIndex].childNodes[songNode].childNodes[0].nodeValue;
    				break;
    			
    			}
    		}
    		songs[songIndex] = songdata;
    	}
    }
    function loadSong(track) {
    	playingsong = new Sound();
    	playingsong.loadSound(songs[track].location, true);
    	playingsong.start(0);
    	updatevolume();
    	playingsong.onSoundComplete = function() {
    		loadSong((curtrack+1)%(songs.length));
    	};
    	playpause.gotoAndStop(1);
    	playpause.playpausebutton.onPress = function() {
    		toggleplaypause();
    	};
    	songdisplay.text = songs[track].artist+" - "+songs[track].title;
    	eval("playlistbox.playlistitemcontainer.playlistitem"+curtrack+".playlistitemhighlight")._alpha = 4;
    	eval("playlistbox.playlistitemcontainer.playlistitem"+track+".playlistitemhighlight")._alpha = 20;
    	curtrack = track;
    }
    function loadplaylistbox() {
    	for (songIndex=0; songIndex<playlistXml.childNodes[0].childNodes[0].childNodes.length; songIndex++) {
    		playlistbox.playlistitemcontainer.attachMovie("playlistitem", "playlistitem"+songIndex, playlistbox.playlistitemcontainer.getNextHighestDepth(), {_x:0, _y:15*songIndex});
    		eval("playlistbox.playlistitemcontainer.playlistitem"+songIndex+".playlistitemtext").text = songs[songIndex].artist+" - "+songs[songIndex].title;
    		eval("playlistbox.playlistitemcontainer.playlistitem"+songIndex).songindex = songIndex;
    	}
    }
    playpause.playpausebutton.onPress = function() {
    	toggleplaypause();
    };
    function toggleplaypause() {
    	if (playpause._currentframe == 1) {
    		playpause.gotoAndStop(2);
    		playpause.curpos = playingsong.position;
    		playingsong.stop();
    	} else {
    		playpause.gotoAndStop(1);
    		playingsong.start(playpause.curpos/1000, 0);
    	}
    	playpause.playpausebutton.onPress = function() {
    		toggleplaypause();
    	};
    }
    onEnterFrame = function () {
    	if (songdisplay.movingright) {
    		songdisplay.hscroll -= 10;
    		if (songdisplay.hscroll<=0) {
    			songdisplay.movingright = false;
    		}
    	} else {
    		songdisplay.hscroll += 10;
    		if (songdisplay.hscroll>=songdisplay.maxhscroll) {
    			songdisplay.movingright = true;
    		}
    	}
    	if (!draggingslider) {
    		progressslider._x = (playingsong.position/playingsong.duration)*182+61;
    		if (progressslider._x == 0) {
    			progressslider._x = 61;
    		}
    	}
    	if (draggingplaylistscroller) {
    		updateplaylistscroll();
    	}
    	if (draggingvolmeslider) {
    		updatevolume();
    	}
    	tempsongtime = "";
    	if (Math.floor(playingsong.position/60000) == 0) {
    		tempsongtime += "0";
    	} else {
    		tempsongtime += Math.floor(playingsong.position/60000);
    	}
    	tempsongtime += ":";
    	if (Math.floor((playingsong.position/1000)%60)<10) {
    		tempsongtime += "0";
    	}
    	tempsongtime += Math.floor((playingsong.position/1000)%60);
    	tempsongtime += "/";
    	if (Math.floor(playingsong.duration/60000) == 0) {
    		tempsongtime += "0";
    	} else {
    		tempsongtime += Math.floor(playingsong.duration/60000);
    	}
    	tempsongtime += ":";
    	if (Math.floor((playingsong.duration/1000)%60)<10) {
    		tempsongtime += "0";
    	}
    	tempsongtime += Math.floor((playingsong.duration/1000)%60);
    	songtime.text = tempsongtime;
    	//trace(Math.floor(playingsong.position/60000));
    	//if(Math.floor(playingsong.position/1000)%60)
    	//songtime.text=Math.floor(playingsong.position/1000)%60+"/"+Math.floor(playingsong.duration/1000)%60;
    };
    progressslider.onPress = function() {
    	draggingslider = true;
    	progressslider.startDrag(true, 61, progressslider._y, 243, progressslider._y);
    };
    progressslider.onRelease = progressslider.onReleaseOutside=function () {
    	progressslider.stopDrag();
    	playingsong.start(((progressslider._x-61)/182)*playingsong.duration/1000, 0);
    	playpause.gotoAndStop(1);
    	playpause.playpausebutton.onPress = function() {
    		toggleplaypause();
    	};
    	draggingslider = false;
    };
    progressbar.onPress = function() {
    	playingsong.start(((_xmouse-61)/182)*playingsong.duration/1000, 0);
    	playpause.gotoAndStop(1);
    	playpause.playpausebutton.onPress = function() {
    		toggleplaypause();
    	};
    };
    volumebar.onPress = function() {
    	draggingvolmeslider = true;
    	volumebar.volumeslider.startDrag(true, 0, volumebar.volumeslider._y, 47, volumebar.volumeslider._y);
    };
    volumebar.onRelease = volumebar.onReleaseOutside=function () {
    	draggingvolmeslider = false;
    	volumebar.volumeslider.stopDrag();
    	updatevolume();
    };
    function updatevolume() {
    	playingsong.setVolume((volumebar.volumeslider._x/47)*100);
    }
    previoussong.onPress = function() {
    	loadprevioussong();
    };
    function loadprevioussong() {
    	var loadtrack = (curtrack-1)%(songs.length);
    	if (loadtrack<0) {
    		loadtrack = songs.length-1;
    	}
    	loadSong(loadtrack);
    }
    nextsong.onPress = function() {
    	loadnextsong();
    };
    function loadnextsong() {
    	var loadtrack = (curtrack+1)%(songs.length);
    	loadSong(loadtrack);
    }
    playlistscroller.onPress = function() {
    	draggingplaylistscroller = true;
    	playlistscroller.startDrag(true, 283, 70, 283, 171);
    };
    playlistscroller.onRelease = playlistscroller.onReleaseOutside=function () {
    	draggingplaylistscroller = false;
    	playlistscroller.stopDrag();
    };
    playlistscrollup.onPress = function() {
    	playlistscroller._y = Math.max(70, playlistscroller._y-10);
    	updateplaylistscroll();
    };
    playlistscrolldown.onPress = function() {
    	playlistscroller._y = Math.min(171, playlistscroller._y+10);
    	updateplaylistscroll();
    };
    var mouseListener:Object = new Object();
    mouseListener.onMouseWheel = function(delta:Number) {
    	playlistscroller._y = Math.min(171, Math.max(70, playlistscroller._y-delta));
    	updateplaylistscroll();
    };
    Mouse.addListener(mouseListener);
    playlistscrollbar.onPress = function() {
    	playlistscroller._y = Math.min(171, Math.max(70, _ymouse));
    	updateplaylistscroll();
    };
    function updateplaylistscroll() {
    	playlistbox.playlistitemcontainer._y = -((playlistscroller._y-70)/101)*(playlistbox.playlistitemcontainer._height-149);
    }
    function visitswfspot() {
    	getURL("http://www.swfspot.com", "_blank");
    }
    var myMenu = new ContextMenu();
    var menubezz = new ContextMenuItem("SWF Spot Mp3 Player", visitswfspot);
    myMenu.customItems.push(menubezz);
    var menuplaypause = new ContextMenuItem("Play / Pause", toggleplaypause);
    menuplaypause.separatorBefore = true;
    myMenu.customItems.push(menuplaypause);
    var menuprevioustrack = new ContextMenuItem("Previous Song", loadprevioussong);
    myMenu.customItems.push(menuprevioustrack);
    var menunexttrack = new ContextMenuItem("Next Song", loadnextsong);
    myMenu.customItems.push(menunexttrack);
    myMenu.hideBuiltInItems();
    _root.menu = myMenu;
    Last edited by G-Forcewebmedia; 06-29-2009 at 09:03 PM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  




Click Here to Expand Forum to Full Width

HTML5 Development Center