(教程更新)asfunction+media实现的mp3连放播放器+windows组件的

      Flash学习 2005-11-5 11:21
(教程更新)asfunction+media实现的mp3连放播放器+windows组件的用法(源文件)
asfunction+media实现的mp3连放播放器+windows组件的用法(教程)


这有一个相关的教程
FLASHMX 2004 Media组件实现多首mp3连放
www.flashempire.com/school/tutorview.php?id=446
不过本人的方法与他不同

先看看效果


新增功能文件,效果如下:

1、利用Mx 2004中的媒体组件
2、可以用Xml或ASP动态加入歌曲
3、如果网上没有此歌,会自动放下一首
4、播放标示歌目功能


fla文件

file.flash8.net/fla/2005/asfunction%20media.fla
///////////////////////先说asfunction的用法吧/////////////////;
asfunction
可用性
Flash Player 5。

用法
asfunction:function,"parameter"

参数
function 函数的标识符。

parameter 要传递给 function 参数中指定的函数的字符串。

返回
无。

说明
协议;一个用于 HTML 文本字段中 URL 的特殊协议。在 HTML 文本字段中,可使用 HTML A 标签超链接

文本。A 标签的 HREF 属性包含可用于类似 HTTP、HTTPS 或 FTP 等标准协议的 URL。asfunction 协议

是特定于 Flash 的一个附加协议,可使链接调用动作脚本函数。

示例
在此示例中,代码的前三行中定义了 MyFunc() 函数。TextField 对象 myTextField 与 HTML 文本字段

相关联。文本“Click Me!”是文本字段中的一个超链接。当用户单击该超链接时,将调用 MyFunc() 函

数:

function MyFunc(arg){
trace ("You clicked me!Argument was "+arg);
}
myTextField.htmlText ="<A HREF=\"asfunction:MyFunc,Foo \">Click Me!</A>";

在单击该超链接后,下面的结果将显示在“输出”面板中:

You clicked me!Parameter was Foo
/////////////////asfunction的用法----完

//以下是增加音乐的地址与音乐的标题,你可以是用xml导入
musicUrl=

["http://www.klstudio.com/media/music07.mp3";,"http://www.klstudio.com/media/music06.mp3";,"http://&#39;" target="_blank" >http://www.klstudio.com/media/music07.mp3","http://www.klstudio.com/media/music06.mp3","http://

www.klstudio.com/media/music17.mp3";,"http://www.klstudio.com/media/200492011225.mp3";,"http://www&#39;"; target="_blank" www.klstudio.com/media/music17.mp3","http://www.klstudio.com/media/200492011225.mp3","http://www.

klstudio.com/media/Nelly_Dilemma.mp3","http://www.klstudio.com/media/music08.mp3";,"http://www.kls&#39;" target="_blank" >http://www.klstudio.com/media/music08.mp3","http://www.kls

tudio.com/media/music09.mp3","http://www.klstudio.com/media/music10.mp3";,"http://www.klstudio.com&#39;" target="_blank" >http://www.klstudio.com/media/music10.mp3","http://www.klstudio.com

/media/music11.mp3","http://www.klstudio.com/media/music12.mp3";,"http://www.klstudio.com/media/mu&#39;" target="_blank" >http://www.klstudio.com/media/music12.mp3","http://www.klstudio.com/media/mu

sic13.mp3","http://www.klstudio.com/media/music01.mp3";,"http://www.klstudio.com/media/music02.mp3&#39;" target="_blank" >http://www.klstudio.com/media/music01.mp3","http://www.klstudio.com/media/music02.mp3

","http://www.klstudio.com/media/music03.mp3";,"http://www.klstudio.com/media/music04.mp3";,"http:/'" target="_blank" >http://www.klstudio.com/media/music03.mp3","http://www.klstudio.com/media/music04.mp3","http:/

/www.klstudio.com/media/music05.mp3","http://www.flashk3.com/2004/music99/workgroups/王蓉 - 我不

是黄蓉.mp3","http://www.flashk3.com/2004/music99/workgroups/陈慧琳 - 希望(大长

今).mp3","http://www.flashk3.com/2004/music99/经典推荐/老狼 - 同桌的

你.mp3","http://www.flashk3.com/2004/music99/经典推荐/林忆莲 - 当爱已成往事.mp3"];
musicName=["沙宝亮-暗香","梁静茹-勇气","周传雄-黄昏","杨臣刚-老鼠爱大米","Nelly-Dilemma Ft Kelly

Rowland","理查马克斯-此情可待","劳赛尔-爱你在心口难开","卡本特-昨日重现","老鹰乐队-加州旅馆","菲

尔科林斯-天堂里的另一天","张栋梁-当你孤单你会想起谁","莎拉.布莱曼-斯卡布罗集市","唐磊-丁香花","夏

日里的春天-赤道和北极","林俊杰-江南","王菲-棋子","王蓉 - 我不是黄蓉","陈慧琳 - 希望(大长今)","

老狼 - 同桌的你","林忆莲 - 当爱已成往事"];
var total=musicUrl.length-1;
//var total=musicUrl.length;
var pagenum=5;//每页个数
var pages=Math.floor(total/pagenum)+1;//页数
var page=0;//第几页
_global.music_id=0;
intxt(page);//载入文本与上下页按钮(是调动lib中的mc为"0")
myMp3play(_global.music_id);//开始运行播放
function intxt(page){//加入文本函数
var mcAll:MovieClip=this.createEmptyMovieClip("mcAll",10);
mcAll._x=45;//用一个mc来放
mcAll._y=40;
//在mcAll中加入mc
for(var i=1;i<=pagenum+1;i++){
var t=mcAll.attachMovie("0","mc"+i,i);
t.txt.selectable=false;//不可选
t.txt.html=true;
t._x=0;
t._y=i*19;
if(i==pagenum+1){//最下面的是铵钮
mcAll.mc6.txt.htmlText="<A href='asfunction:_root.prevpage'>上一页

</A>"+"________________________"+" <A href='asfunction:_root.nextpage'>下一页</A>";
}else{
mcAll["mc"+i].txt.htmlText="<A HREF='asfunction:_root.myMp3play,"+

(i+page*pagenum-1)+"'>"+(i+page*pagenum)+"."+musicName[(i+page*pagenum-1)]+"</A>";
}

}
}
function nextpage(){//下一页函数
page++;
trace("page="+page);
if(page>(pages-1))page=0;
intxt(page);
}
function prevpage(){//上一页函数
page--;
trace("page="+page);
if(page<0)page=pages-1;;
intxt(page);
}
function myMp3play(id){//播放函数
var num2=id-page*pagenum+1;
if(num2>pagenum){
num2-=5;
nextpage();
}
for(var i=1;i<=pagenum;i++){//加颜色background
if(i!=num2){
mcAll["mc"+i].txt.background=false;
}else{
mcAll["mc"+i].txt.background=true;
mcAll["mc"+i].txt.backgroundColor="0xFF0000";
};
}
_global.music_id=id;
//var url=music_adress[id];
var url=musicUrl[id];
with(myControl){//媒体组件之一mediacontrol
associateDisplay(myDisplay);
activePlayControl=false;
autoPlay=true;
controllerPolicy="on";
backgroundStyle = "none";
volume=100;
}
with(myDisplay){//媒体组件之一mediadisplay
stop()
setMedia(url,"MP3");
play();
volume=100;
}
checkMp3();
}//end of myMp3play;
function nextMp3Play(){//下一首函数
_global.music_id++;
if(_global.music_id>total){
_global.music_id=0;
page=0;
intxt(page);
}
myMp3play(_global.music_id);

}
var myDListener = new Object();
myDListener.complete = function() {//放完了
trace("放到最后了");
nextMp3Play();
};
myDisplay.addEventListener("complete", myDListener);
///test用的
function checkMp3(){//函数.检查是否有这歌曲,没有就下一首,有就放了,
starttime=getTimer();
_root.createEmptyMovieClip("mediabyte",11);
mediabyte.onEnterFrame=function(){
goingtime=getTimer();
var limit=Math.floor((goingtime-starttime)/1000);
if(limit>10){
starttime=getTimer();
var _l1=_root;
var L=_l1.myDisplay.bytesLoaded;
if(L<200){
nextMp3Play();
}else{
delete this.onEnterFrame;
this.removeMovieClip();
}
}//end of limit>10
trace(limit+"---"+_root.mediabyte);
}
}
//test用的end
//////教程文字按钮///////////////////
import mx.containers.Window;
import mx.managers.PopUpManager;
with(myhelp){
html=true;
selectable=false;
htmlText="<a href='asfunction:w'> 教 程 </a>";
}
function w(){
myW=new Object();
myW=PopUpManager.createPopUp(_root,Window,true);
myW.contentPath="yhd";
myW.closeButton=true;
myW.title=":教程:";
var comObj=new Object();
comObj.complete=function(){//适合内容长宽
myW.setSize(myW.content._width+6,myW.content._height+34);
myW.move((Stage.width-myW.width)/2,(Stage.height-myW.height)/2);
};
comObj.click=function(){//关闭按钮事件
myW.deletePopUp();
}
myW.addEventListener("complete",comObj);
myW.addEventListener("click",comObj);
}//end of w();
/////////////////个人的东东,你可以修改
function metext(){
getURL("http://yuheduo.5dblog.com";,"_blank'" target="_blank" >http://yuheduo.5dblog.com","_blank");
getURL("mailto:yuheduo@21cn.com","POST");
}
with(my){
html=true;
autoSize="center";
background=true;
selectable=false;
backgroundColor="0xccccc";
border=true;
htmlText="<a href='asfunction:metext'>小刀习作</a>";
}

//完成了
自己感觉是代码太乱了,有时间整理一下,哈哈,希望网友们也能学到一点东西,
如果版主能加点分也不枉我一个晚上的时间了,

////更新于2005-11-5






[此贴子已经被作者于2005-11-5 11:17:14编辑过]


标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commenttime}{commentauthor}

{CommentUrl}
{commentcontent}