Trang 1
Flash - Tạo một máy Mp3 Player chạy cùng vái XML (phần 1) Phần cắc chi 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 movỉe clip và điều chỉnh như sau : 30,Ũfps oGraphic E dit Basic Linkage buffergraphic y J •Base dass; 'S ề ' L i n k a g e : / port for ActionScript l~l Eftport for runtime sharing 0 Im p o rt in firs t fra m e im p a r t fo r f'jñ tirn é 'shaping ƯRL: I bource Browse, File: C:Ị,U5ers\3ohnyDocunnents^cornbs,fla Symbol. Symbol name: buffergraphic I Always update before Publishing Enable guides for 9-slice scaling Sau đó đưa đoạn mã sau vào : CODE 1. stopO; onEnterFrame=function() { ThiNganHang.com
Trang 2
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. stopO; var songs:Array = new ArrayO; var curtrack:Number = 0; var playingsong:Sound = new Sound(); if (_root.playlist == undefined II_root.playlist == "") { _root.playlist = "playlist.xml"; } var playlistXml:XML = new XML(); playlistXml.ignoreWhite = true; playlistXml.load(_root.playlist); playlistXml.onLoad = functionO { loadSongs(); loadplaylistbox(); loadSong(curtrack); if (_root.autostart == "false") { ThiNganHang.com
Trang 3
toggleplaypauseQ; } function loadSongs() { for (songlndex=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 onglndex] .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 = ThiNganHang.com
Trang 4
playlistXml.childNodes[0] .childNodes[0] .childNodes[songIndex] .c hildNodes[songNode].childNodes[0].nodeValue; break; } } songs[songlndex] = songdata; } function loadSong(track) { playingsong = new Sound(); playingsong.loadSound(songs[track].location, true); playingsong.start(O); updatevolume(); playingsong.onSoundComplete = function() { loadSong((curtrack+1)%(songs.length)); }; playpause.gotoAndStop(l); playpause.playpausebutton.onPress = function() { toggleplaypause(); }; songdisplay.text = songs[track].artist+" - "+songs[track].title; eval("playlistbox.playlistitemcontainer.playlistitem"+curtrack+".pl ThiNganHang.com
Trang 5
aylistitemhighlight")._alpha = 4; eval("playlistbox.playlistitemcontainer.playlistitem"+track+".playli stitemhighlight")._alpha = 20; curtrack = track; function loadplaylistbox() { for (songlndex=0; songIndex<playlistXml.childNodes[0].childNodes[0].childNodes.l ength; songIndex++) { playlistbox.playlistitemcontainer.attachMovie("playlistitem", "playlistitem"+songIndex, playlistbox.playlistitemcontainer.getNextHighestDepth(), {_x:0, _y:15* songlndex}); eval("playlistbox.playlistitemcontainer.playlistitem"+songIndex+". playlistitemtext").text = songs[songlndex].artist+" - "+songs[songIndex].title; eval("playlistbox.playlistitemcontainer.playlistitem"+songIndex).s ongindex = songlndex; } playpause.playpausebutton.onPress = function() { toggleplaypause(); function toggleplaypause() { if (playpause._currentframe == 1) { ThiNganHang.com
Trang 6
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; ThiNganHang.com
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 += ThiNganHang.com
Trang 8
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=Matíi.floor(playingsong.position/l000)%60+"/"+M ath.floor(playingsong.duration/1000)%60; progressslider.onPress = functionQ { ThiNganHang.com
Trang 9
draggingslider = true; progressslider.startDrag(true, 61, progressslider._y, 243, progressslider._y); progressslider.onRelease = progressslider.onReleaseOutside=function () { progressslider. stopDragO; playingsong.start(((progressslider._x- 61)/182)*playingsong.duration/1000, 0); playpause.gotoAndStop(l); playpause.playpausebutton.onPress = function() { toggleplaypause(); }; draggingslider = false; progressbar.onPress = function() { playingsong.start(((_xmouse- 61)/182)*playingsong.duration/1000, 0); playpause.gotoAndStop(l); playpause.playpausebutton.onPress = function() { toggleplaypause(); }; ThiNganHang.com
Trang 10
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.stopDragO; updatevolume(); function updatevolume() { playingsong.setVolume((volumebar.volumeslider._x/47)* 100); previoussong.onPress = function() { loadprevioussong(); function loadprevioussong() { var loadtrack = (curtrack-l)%(songs.length); if (loadtrack<0) { loadtrack = songs.length-1; } loadSong(loadtrack); ThiNganHang.com
Trang 11
nextsong.onPress = function() { loadnextsong(); function loadnextsong() { yar loadtrack = (curtrack+l)%(songs.length); loadSong(loadtrack); playlistscroller.onPress = function() { draggingplaylistscroller = true; playlistscroller.startDrag(true, 283, 70, 283, 171); playlistscroller.onRelease = playlistscroller.onReleaseOutside=function () { draggingplaylistscroller = false; playlistscroller.stopDragO; playlistscrollup.onPress = function() { playlistscroller._y = Math.max(70, playlistscroller._y-10); updateplaylistscroll(); playlistscrolldown.onPress = function() { ThiNganHang.com
Trang 12
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", ThiNganHang.com
Trang 13
visitswfspot); myMenu.customltems.push(menubezz); var menuplaypause = new ContextMenuItem("Play / Pause", toggleplaypause); menuplaypause.separatorBefore = true; myMenu.customltems.push(menuplaypause); var menuprevioustrack = new ContextMenuItem("Previous Song", loadprevioussong); myMenu.customltems.push(menuprevioustrack); var menunexttrack = new ContextMenuItem("Next Song", loadnextsong); myMenu.customltems.push(menunexttrack); myMenu.hideBuiltlnltemsO; _root.menu = myMenu; Tạo ứiê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) : II - Sau khi vẽ xong các bạn convert sang movie clip và điêu chỉnh như sau ThiNganHang.com
Trang 14
Symbol Properties Mame playpause OK Type(© M o v ie dip Cancel CTßüttono Graphic Edit Basic Linkage Identifier: I playpause v' g y ế art for ActionScript art for runtime sharing art in first frame Import for runtime sharing URL: Source Browse,.. File; - y nho!,, Symbol name: Symbol 1 Always update befare publishing HUEnable guides for 9-slice scaling - Các bạn đặt Instance Name cho nố là playpause và nhấp chuột phải vào nố rồỉ chọn Edit. Tại Frame 1 các bạn convert nố sang Button và đặt Instance Name là playpausebutton. ThiNganHang.com
Trang 15
Symbol i'lopeities pausebuttonl OK Cancel Edit Basic Linkage identifier; Class: Base class: Linkage: Q Export for ActionScript O Export for runtime sharing ..Eipbrt in first frame H I Im port for runtime sharing URL: Source Browse,., File: Symbol name: Symbol 1 Always update before publishing Enable guides for 9-slice scaling - 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 stopO; ThiNganHang.com
Trang 16
Nút lùi lại bài hát trước (Previous Button) : T - Sau khi vẽ xong các bạn convert sang Button các bạn đặt Instance Name cho nó là prevỉoussong Symbol Properties changesong OK Movie clip Cancel @)utton J Graphic Edit Basic Linkage Identifier; Class; ✓ Base class: y Linkage; Q E x p o r t For AcHori5crlpt □ Export For runtime sharing Export in First frame Q Import For runtime sharing URL; Source Browse.,, File: Symbol name; Symbol 1 Always update herore publishing ' Enable guides for 9-slice scaling Nut bo qua bai hat (Next Button): -V ẽ giống nhu nút lùi lại bài hát. vẫn convert sang Button và đặt Instance Name cho nố là nextsong ThiNganHang.com
Trang 17
Thanh âm lượng (Volume B a r): Các bạn vẽ một hình chữ nhật như sau rồi convert sang movỉe Symbol Properties y Name: volumebdt OK Type: Movie clip Cancel ) Button OGraphic Edit Basic Linkage Identifier^ volumebar dass: </ i? Baseda55: 'S á? Linkage/ 0 E-tort for ActionScript I IExport for runtime sharing 0 EiCnrt in first frame [port for runtime sharing URL: Source Browse,,, File: Symbol name: Symbol 1 Always update before publishing 17] Enable guides for 9-slice scaling ThiNganHang.com
Trang 18
Flash - Tạo một máy Mp3 Flayer chạy cùng vổi XML (phần 2) Nhấp chuột phải vào Movie này và chọn Edit: -Tại Layer 1 : + Convert hình chữ nhật vừa vẽ ở trên sang Movie Clip điều chỉnh như sau : + Đặt Instance Name là volumeslỉder - Tại Layer 2 : + Các bạn một hình tam giác như sau : + Nhấp chuột phải vào Frame này và chọn Mask. ThiNganHang.com
Trang 19
- Trở lại Scence 1và đặt Instance Name cho nó là volumebar Nút hiện thị vị trí thời gian ca khúc đang phát (progress slider) - Sau khi vẽ xong, các bạn convert sang Movie Clip và điều chỉnh như sau : Symbol Properties [Mame: progressiver OK Type ovie dip Cancel Jtton o Graphic Edit Basic Linkage Identftoit progresssider Class: Base class: Linkage:/[7] ixport for ActionScript I IExport for runtime sharing L0 Export in first frame import for runtime sharing URL: Source Browse... File: S ym b o l n a m e : S ym b o l 1 Always update before publishing Enable guides für 9-slice scaling - Trở lại Scence 1và đặt Instance Name cho nó là progressslỉder Thanh thời gian (progress bar) : ThiNganHang.com
Trang 20
- Sau khi vẽ xong, các bạn convert sang Movie Clip và điều chỉnh như sau : 0— rssn C5Dr=~ì| - Trở lại Scence 1và đặt Instance Name là progressbar Thời gian của ca khúc (song time): 0:00/0:00 - Các bạn dùng công cụ Text Tools và điêu chỉnh như sau :A - X 10 Properties X 1 Filters 1 Parameters 1 Actions Cpynamic Text ) V- A ( Futura Md BT ) V E H m B I Gy songtime AW 0 |vj AỈ 1Normal V 1Anti-alias for readability 1V [ Embed... J W: 56.0 1X; 244.9 1 a 1Single line 1V- <> i i Var: 1 1 □ Auto kern & “ Hi 13.6 1Y: 128.9 1 % Target: - Sau đó, vẽ một hình chữ nhật và đặt Instance Name cho nó là songtíme Tên bài hát (song display): Iron Maiden - The Trooper - Các bạn tiếp tục dùng công cụ Text tools và giữ nguyên mặc định như trên rồi vẽ một hình chữ nhật. - Sau đó đặt Instance Name là songdỉsplay - Các bạn nhấp chọn nút Embed và chọn các dòng sau : ThiNganHang.com
Hiển thị 20 trang đầu. Tải tài liệu để xem đầy đủ.
Bình luận (0)
Chưa có bình luận nào. Hãy là người đầu tiên!