ActionScript2 + xml でmp3プレイヤーができたくさい。
今日はタイトル通り「ActionScript2 + xml でmp3プレイヤー」ができたくさい。
FLASH初心者としてこれはぜひ作っておきたいものでした。
サンプル
とりあえず今日は疲れたので明日イロイロ書きます。
まだまだ勉強が必要です。( -ω-)y─━ =3
ソースは以下です。
xml
<?xml version="1.0" encoding="UTF-8"?>
<songs>
<song url="sheLooksToMe.mp3" track="this is war1" artist="this is war" />
<song url="sheLooksToMe.mp3" track="this is war2" artist="this is war" />
<song url="sheLooksToMe.mp3" track="this is war3" artist="this is war" />
</songs>
ActionScriptコード(汚いです。)
import com.mosesSupposes.fuse.*;
ZigoEngine.register(Fuse,PennerEasing,FuseFMP);
//#include "mp3Player.as"
//Setup sound object
var s:Sound = new Sound();
s.onSoundComplete = nextSong;
s.setVolume(vn);
var home:MovieClip = this;
var mc:MovieClip = new MovieClip();
//Array os song
var sa:Array = new Array();
//Currently playing song
var n:Number = 1;
//position of music
var pos:Number;
//Volume
var vn:Number = 60;
//Load the songs XML
var xml:XML = new XML();
xml.ignoreWhite = true;
xml.onLoad = function() {
var nodes = this.firstChild.childNodes;
for (var i = 0; i<nodes.length; i++) {
sa.push(new Song(nodes[i].attributes.url, nodes[i].attributes.artist, nodes[i].attributes.track));
}
playSong(n-1);
initMenu(sa);
};
xml.load("songs.xml");
//PlayList作成
PL._x = 125;
var f:Fuse = new Fuse();
f.push([{target:PL, x:0, ease:"easeOutElastic", delay:1.6}, {target:PL.LB, rotation:180, ease:"easeOutElastic", delay:0.4}]);
f.push({target:PL.LB, rotation:360, ease:"easeOutElastic", time:2});
f.start();
PL.setMask(masker);
var menuMax:Number;
function initMenu(sa:Array) {
menuMax = sa.length;
for (var i:Number = 0; i<menuMax; i++) {
mc = home.PL.attachMovie("node", "node"+i, i);
mc._x = 80;
mc._y = 35+mc._height*i;
mc.now._alpha = 0;
mc.plNum.text = i+1;
mc.n = i;
mc.pltitle.text = sa[i].track;
var f:Fuse = new Fuse();
f.push({target:mc, ease:"easeOutExpo", delay:1.2*i});
f.start();
mc.onRelease = function() {
Released(this.n);
};
mc.onRollOver = function() {
Rolled(this.n);
};
}
}
function Released(n:Number) {
playSong(n);
}
function Rolled(n:Number) {
this["mc"+n].now._alpha = 100;
}
PL.LB.onRelease = function() {
if (PL._x == 0) {
var f:Fuse = new Fuse();
f.push([{target:PL, x:125, ease:"easeOutElastic", delay:0.4}, {target:PL.LB, rotation:180, ease:"easeOutElastic", delay:1.6}]);
f.start();
} else {
var f:Fuse = new Fuse();
f.push([{target:PL, x:0, ease:"easeOutElastic", delay:0.4}, {target:PL.LB, rotation:360, ease:"easeOutElastic", delay:1.6}]);
f.start();
}
};
//Play MP3 File
function playSong(n:Number):Void {
s = new Sound();
s.onSoundComplete = nextSong;
s.setVolume(vn);
//trace(vn);
//trace(sa);
var max = sa.length;
if (n == undefined) {
n = 0;
s.loadSound(sa[n].earl,true);
trackInfo.text = sa[n].track;
artist.text = sa[n].artist;
playPause.gotoAndStop(2);
} else if (n<=sa.length-1) {
s.loadSound(sa[n].earl,true);
this[mc+n]._alpha = 100;
//trace(n);
trackInfo.text = sa[n].track;
artist.text = sa[n].artist;
playPause.gotoAndStop(2);
//trace(n);
}
function nextSong() {
playSong(n+1);
}
}
//Music Controls
//PlayPause toggle
playPause.onRelease = function() {
if (this._currentframe == 2) {
this.gotoAndStop(1);
pauseIt();
} else {
this.gotoAndStop(2);
unPauseIt();
}
};
//Next Button
/*nextBt.onRelease = function() {
playSong(n-1);
};*/
//Pauses Music
function pauseIt():Void {
pos = s.position;
s.stop();
}
//unPauses Music
function unPauseIt():Void {
s.start(pos/1000);
}
//Mute Button
/*mute.onRelease = function() {
if (this._currentframe == 1) {
this.gotoAndStop(2);
s.setVolume(0);
} else {
this.gotoAndStop(1);
s.setVolume(80);
}
};*/
//Volume controls
var my_interval:Number;
my_interval = setInterval(updateProgressBar, 100, s);
function updateProgressBar(the_sound:Sound):Void {
var pos:Number = Math.round(s.position/s.duration*100);
line._xscale = pos;
//this.addZero(loadNum.text = pos+"%" + " loaded " );
}
function addZero(n) {
var temp;
if (n<10) {
temp = "0"+n;
} else {
temp = n;
}
return (temp);
}
knob_mc.knob.left = knob_mc._x-175;
knob_mc.knob.right = knob_mc.knob.left+144;
knob_mc.knob.top = knob_mc.knob._y;
knob_mc.knob.bottom = knob_mc.knob._y;
knob_mc.volumeTxt.text = s.getVolume();
knob_mc.knob.onPress = function() {
knob_mc.knob.startDrag(false,this.left,this.top,this.right,this.bottom);
knob_mc.knob.isDragging = true;
};
knob_mc.knob.onMouseMove = function() {
vn = this._x;
if (this.isDragging) {
knob_mc.volumeTxt.text = vn;
s.setVolume(vn);
}
};
knob_mc.knob.onRollOut = knob_mc.knob.onReleaseOutside=function () {
knob_mc.knob.stopDrag();
knob_mc.knob.isDragging = false;
};
トラックバック(0)
このブログ記事を参照しているブログ一覧: ActionScript2 + xml でmp3プレイヤーができたくさい。
このブログ記事に対するトラックバックURL: http://alwaysfinetuning.com/mt/mt-tb.cgi/32

