Flash - Tạo một máy Mp3 Player chạy cùng với XML phần 1 Phần các chi tiết trên Mp3 Player : Tạo một file thực hành mới với kích thước tùy ý.. Sau đó, tại Frame 1 các bạn vẽ thanh loadin
Trang 1Flash - Tạo một máy Mp3 Player chạy cùng với XML (phần 1)
Phần các chi tiết trên Mp3 Player :
Tạo một file thực hành mới với kích thước tùy ý Sau đó, tại Frame 1 các bạn vẽ thanh loading rồi Convert sang movie clip và điều chỉnh như
sau :
Sau đó đưa đoạn mã sau vào :
CODE
1 stop();
onEnterFrame=function(){
Trang 2
otal()){
gotoAndStop(3);
}
}
Tại Frame 2 các bạn đưa đoạn mã sau vào :
CODE
1 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") {
Trang 3toggleplaypause();
}
};
function loadSongs() {
for (songIndex=0;
songIndex<playlistXml.childNodes[0].childNodes[0].childNodes.l
ength; songIndex++) {
var songdata:Object = new Object();
for (songNode=0;
songNode<playlistXml.childNodes[0].childNodes[0].childNodes[s ongIndex].childNodes.length;
songNode++) {
switch(playlistXml.childNodes[0].childNodes[0].childNodes[songI
ndex].childNodes[songNode].nodeName){
case "creator":
songdata.artist =
playlistXml.childNodes[0].childNodes[0].childNodes[songIndex].c
hildNodes[songNode].childNodes[0].nodeValue;
break;
case "title":
songdata.title =
playlistXml.childNodes[0].childNodes[0].childNodes[songIndex].c
hildNodes[songNode].childNodes[0].nodeValue;
break;
case "location":
songdata.location =
Trang 4hildNodes[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+".pl
Trang 5aylistitemhighlight")._alpha = 4;
eval("playlistbox.playlistitemcontainer.playlistitem"+track+".playli
stitemhighlight")._alpha = 20;
curtrack = track;
}
function loadplaylistbox() {
for (songIndex=0;
songIndex<playlistXml.childNodes[0].childNodes[0].childNodes.l
ength; 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).s
ongindex = songIndex;
}
}
playpause.playpausebutton.onPress = function() {
toggleplaypause();
};
function toggleplaypause() {
if (playpause._currentframe == 1) {
Trang 6playpause.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;
Trang 7}
}
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 += ":";
Trang 8if (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+"/"+M
ath.floor(playingsong.duration/1000)%60;
};
progressslider.onPress = function() {
Trang 9draggingslider = 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();
};
};
Trang 10volumebar.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);
Trang 11}
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() {
Trang 12playlistscroller._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",
Trang 13visitswfspot);
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;
Tạo thêm một Layer nữa, tại Frame 2 các bạn ấn F6
Nút bắt đầu và tạm ngưng bài hát (Play/Pause) :
- Sau khi vẽ xong các bạn convert sang movie clip và điều chỉnh như sau
:
Trang 14- Các bạn đặt Instance Name cho nó là playpause và nhấp chuột phải vào nó rồi chọn Edit Tại Frame 1 các bạn convert nó sang Button và đặt Instance Name là playpausebutton
Trang 15- Tại Frame 2 các bạn ấn F7 sau đó vẽ lại hình chiếc nút như sau :
- Vẫn convert sang Button và đặt Instance Name là playpausebutton
- Cuối cùng, các bạn đưa đoạn mã sau vào mỗi Frame
stop();
Trang 16Nút lùi lại bài hát trước (Previous Button) :
- Sau khi vẽ xong các bạn convert sang Button các bạn đặt Instance Name cho nó là previoussong
Nút bỏ qua bài hát (Next Button) :
- Vẽ giống như nút lùi lại bài hát Vẫn convert sang Button và đặt Instance Name cho nó là nextsong
Trang 17Thanh âm lượng (Volume Bar) :
- Các bạn vẽ một hình chữ nhật như sau rồi convert sang movie clip: