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

THThiNganHang
0 lượt tải
30
0

Đang tạo bản xem trước...

Nội dung tài liệu

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)

Đăng nhập để tham gia bình luận

Chưa có bình luận nào. Hãy là người đầu tiên!