Tải bản đầy đủ (.pdf) (17 trang)

Flash - Tạo một máy Mp3 Player chạy cùng với XML (phần 1) pot

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (331.68 KB, 17 trang )

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 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(){


if(_framesloaded==_totalframes&&getBytesLoaded()==getBytesT
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") {

toggleplaypause();

}

};


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 =
playlistXml.childNodes[0].childNodes[0].childNodes[songIndex].c
hildNodes[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
aylistitemhighlight")._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) {

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+"/"+M
ath.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("", "_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;

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
:

- 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.


- 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();
Nú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
Thanh â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:




×