网页版Flash播放器的实现

网页版Flash播放器的实现
【摘要】本文利用javascript脚本语言,设计并实现了一个网页版的Flash 播放器。

该播放器可实现网页中Flash动画的播放、停止、暂停和快进等功能。

使用户能更好地控制网页中Flash动画的播放。

【关键词】Javascript;Flash;播放器;网页
1.引言
在用户浏览网页时,网页中的Flash动画(格式一般为swf)通常是自动播放的。

浏览者是无法控制的,比如暂停、快进或重播等。

这往往会影响用户浏览网页时的体验。

本文实现了一个网页版的Flash播放器,该网页版Flash播放器能对网页中的Flash播放进行深度控制。

2.Flash播放器的实现
Flash播放器的控制代码用javascript实现,主要通过编写相应的函数控制flash动画的播放、暂停和快进等。

该代码编写到一个脚本文件myFlash.js中,详细代码如下[1、2、3]。

function Flash_embedSWF(srcURL,swfbgColor){
vardefaultColor=(document.bgColor!=null)?document.bgColor:”#ffffff”;
varbgcolor=(swfbgColor!=null)?swfbgColor:defaultColor;
document.writeln(
……+
……+
……+
……+
……+
……+
……+
……);
window.document.flash.Rewind();
}
function buttonClk()
{
switch(event.srcElement.value)
{
case “播放”:
window.document.flash.Play();
break;
case “停止”:
window.document.flash.Rewind();
oButton.style.pixelLeft=10;
break;
case “暂停”:
window.document.flash.stopplay();
break;
case “快进”:
if(window.document.flash.IsPlaying())
window.document.flash.StopPlay();
else
{
window.document.flash.gotoframe(window.document.flash.CurrentFrame()+50);
oButton.style.pixelLeft=10+290*(oPlayer.CurrentFrame()+1)/oPlayer.TotalFrame s;
}
break;
case “快退”:
if(window.document.flash.IsPlaying())
window.document.flash.StopPlay();
else
{
window.document.flash.gotoframe(window.document.flash.CurrentFrame()-50);
oButton.style.pixelLeft=10+290*(oPlayer.CurrentFrame()+1)/oPlayer.TotalFrame s;
}
break;
}
}
接着制作一个简单的静态网页,调用上面的函数实现对Flash文件的控制。

网页代码如下所示[4]。

Flash_embedSWF(“12shengxiao.swf”);
P。

合集下载

用FLASH制作网页音乐播放器

用FLASH制作网页音乐播放器

用FLASH制作网页音乐播放器如何利用FLASH制作网页音乐播放器软件版本:FLASH CS6和(DW CS6)前言:用了最简单的制作方法,想要设计的更加精美和有个性的小伙伴自己设计哦。

第一步:打开ADOBE FLASH CS6新建中选择actionscript 2.0,因3.0无法对按钮添加代码,虽然可以通过其他方式完成同样的效果,但我们选择2.0的标准来进行接下来的操作第二步:调整合适的舞台大小,具体以想要表达的效果为准,并将音乐导入库中(“文件”-“导入”-“导入到库”),选择一个.mp3格式的音乐。

第三步:选中图层的第一帧,在属性面板的“声音”里“效果”中选择该音乐,“同步”中选“数据流”。

接着点出“编辑封套”(“效果”右边铅笔状的“编辑”按钮),选择以帧来查看长度,并通过放大和缩小功能看其播放到多少帧。

这里选用的安河桥这首歌是5000多帧这样子我们将下方的时间轴面板滚动条拉到最右边,其在600多帧便截止了,我们在最后一帧按F5,插入帧以延长帧数显示,不断重复,这里直到5000多帧才停止将此图层名字改为“音乐层”,并将其锁起来以便接下来的操作第四步:新建一个“按钮层”,打开buttons面板(菜单栏上的“窗口”-“公用库”-“bottons”),并在搜索栏输入gel,将gel right、gel pause、gel stop三个按钮样式拖动到舞台上第五步:首先对播放样式的按钮进行行为赋予操作,右键播放按钮,选择“动作”。

点开“全局函数”-“影片剪辑控制”,双击其中的“on”并选择release接着将光标放在{ }中,并点开“时间轴控制”,双击“play”,接着点击“自动套用格式按钮”,然后关闭动作窗口接下来对暂停按钮进行操作,右键选择“动作”, 点开“全局函数”-“影片剪辑控制”,双击其中的“on”并选择release 然后将光标放在{ }中,并点开“时间轴控制”,双击“stop”,接着点击“自动套用格式按钮”,然后关闭动作窗口最后对停止按钮进行操作,右键选择“动作”, 点开“全局函数”-“影片剪辑控制”,双击其中的“on”并选择release 然后将光标放在{ }中,并点开“时间轴控制”,双击“gotoandstop”,在函数的()中输入1,接着点击“自动套用格式按钮”,然后关闭动作窗口第六步:右键音乐层的第一帧,选择“动作”,在“时间轴控制”中双击stop,接着点击“自动套用格式按钮”,然后关闭动作窗口(此举好像是为了防止自动播放)第七步:菜单栏“文件”-“发布设置”,选中“发布”中的“FLASH(.SWF)”,将音频流和音频事件的比特率调高一点,并设置立体声,然后点击确定。

网页flash播放器

网页flash播放器
//否则在 delay 毫秒后再次执行 loaded() 函数
else setTimeout("loaded()",delay)
//根据下载量显示 id 为 bar 的表格的宽度
bar.style.width=movie.PercentLoaded()+"%"
frameCount.innerText=bar.style.width //显示下载百分比
}
function selectMovie(){
/*触发 id 为 moviefile 的上传控件的 Click (单击)事件,
使之弹出"选择文件"对话框*/
document.getElementById("moviefile").click()
}
function loadMovie(){
否则调用 Flash 的 Play() 方法使之播放*/
with(movie)IsPlaying()?StopPlay():Play()
}
function Stop(){
movie.StopPlay() //停止播放 Flash
}
function Forward(){
}
function Rewind(){
movie.Rewind() //使 Flash 返回到第一帧
}
function Back(){//控制快退的函数
//如果当前帧数不为 0 并且 Flash 不处于快进状态
if(movie.FrameNum!=0&&state!="forward"){
<script language="JavaScript">

网页中插入FLASH(swf文件)的html代码

网页中插入FLASH(swf文件)的html代码

网页中插入FLASH(swf文件)的html代码一、简单插入flash图像<embed src="你的flash地址.swf"width="300" height="220"></embed>二、调整插入flash图像<td width="63%" valign="middle" align="right"><objectclassid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"codebase="/pub/shockwave/cabs/flash/swfl ash.cab#version=5,0,0,0" width="468" height="60"><param name=movie value="你的flash地址" ref><param name=quality value=High><param name="_cx" value="12383"><param name="_cy" value="1588"><param name="FlashVars" value><param name="Src" ref value="你的flash地址"><param name="WMode" value="Window"><param name="Play" value="-1"><param name="Loop" value="-1"><param name="SAlign" value><param name="Menu" value="-1"><param name="Base" value><param name="AllowScriptAccess" value="always"><param name="Scale" value="ShowAll"><param name="DeviceFont" value="0"><param name="EmbedMovie" value="0"><param name="BGColor" value><param name="SWRemote" value><param name="MovieData" value><embed src="你的flash地址" quality=highpluginspage="/shockwave/download/index.cgi?P 1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="468" height="60"></embed></object></td>三、调整插入flash图像<table border="0" cellPadding="0" cellSpacing="0" width="100%"><tr><td height="210" background="背景图片.jpg"><objectclassid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000codebase=/pub/shockwave/cabs/flash/swfl ash.cab#version=4,0,2,0 height=210 width=750><param name="movie" value="路径/文件名称.swf"><param name="quality" value="high"><param name="wmode" value="transparent"><embed src="路径/文件名称.swf" quality=highpluginspage="/shockwave/download/index.cgi?P 1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="750" height="210" wmode="transparent"></embed></object></td></tr></table>四、插入透明flash1、dreamweaver插入透明flash代码:<td width="375" height="88" rowspan="2" valign="bottom"background="images/tu.jpg"><!--设置单元格背景为图片背景(当然要放一个好看的了)--><object classid="clsid27CDB6E-AE6D-11cf-96B8-444553540000"codebase="/pub/shockwave/cabs/flash/swfl ash.cab#version=6,0,29,0"width="373" height="166" align="center"><param name="movie" value="images/move.swf"><param name="quality" value="high"><param name="wmode" value="transparent"> <!--这里代码可使Flash背景透明--><embed src="images/move.swf" width="373" height="166"align="center" quality="high"pluginspage="/go/getflashplayer";;;type="application/x-shockwave-flash"></embed></object></td>2、frontpage插入透明flash代码:<embed src="fish1.swf" quality=high width=50 height=50wmode=transparent type='application/x-shockwave-flash'></embed><!-- wmode=transparent这一段是设置背景透明-->3、插入透明FLASH:<embed src="***/***.swf" quality=high width=100% height=100%wmode=transparent type='application/x-shockwave-flash'>4、透明flash覆盖代码:<EMBED style="LEFT: 0px; POSITION: absolute; TOP: 0px; absolute: "align=rightsrc=/PageLayout/UserDataA/Data53/USID2004030620 12220031/Articles/Images/040917060055890.swf width=1000 height=606 type=application/x-shockwave-flash wmode="transparent"quality="high" ;;></EMBED>1 遇到了这个问题,flash有空隙。

网页中插入FLASH代码的参数解释与使用技巧

网页中插入FLASH代码的参数解释与使用技巧

网页中插入FLASH代码的参数解释与使用技巧一:代码解释代码:<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"codebase="/pub/shockwave/cabs/flash/swflash.cab#ver sion=6,0,40,0"WIDTH="550" HEIGHT="400" ><PARAM VALUE="myFlashMovie.swf"><PARAM VALUE=high><PARAM VALUE=#FFFFFF><EMBED src="/support/flash/ts/documents/myFlashMovie.swf" quality=highbgcolor=#FFFFFF WIDTH="550" HEIGHT="400"NAME="myMovieName" ALIGN="" TYPE="application/x-shockwave-flash" PLUGINSPAGE="/go/getflashplayer"></EMBED></OBJECT>解释:OBJECT标签是用于windows IE3.0及以后浏览器或者其它支持Activex控件的浏览器。

“classid”和“codebase”属性必须要精确地按上例所示的写法写,它们告诉浏览器自动下载flash player的地址。

如果你没有安装过flash player 那么IE3.0以后的浏览器会跳出一个提示框访问是否要自动安装flash player。

网页中怎样控制Flash的播放与停止

网页中怎样控制Flash的播放与停止

网页中怎样控制Flash的播放与停止:网页中怎样控制Flash的播放与停止解决思路用Flash对象的Play 方法控制Flash 对象的播放,StopPlay方法控制Flash 对象的停止。

具体步骤代码示例:<object id="movie"classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"codebase="/pub/shockwave/cabs/fla sh/swflash.cab#version=7,0,0,0" width="150" height="100"align="middle"><param name="allowScriptAccess" value="sameDomain" /><param name="movie" value="demo.swf" /><param name="menu" value="false" /><param name="quality" value="high" /><param name="bgcolor" value="#ffcc33" /><embed src="demo.swf" menu="false" quality="high"bgcolor="#ffcc33" width="150" height="100" name="movie"align="middle" allowScriptAccess="sameDomain"type="application/x-shockwave-flash"pluginspage="/go/getflashplayer" /></object><br><button onClick="movie.Play()">Play</button><buttononClick="movie.StopPlay()">StopPlay</button>特别提示运行代码之后,单击【StopPlay】按钮,Flash将暂停播放,再单击【Play】按钮,Flash将继续播放,效果如图5.3.1所示。

网页版Flash播放器的实现-2019年文档

网页版Flash播放器的实现-2019年文档

网页版Flash播放器的实现1.引言在用户浏览网页时,网页中的Flash动画(格式一般为swf)通常是自动播放的。

浏览者是无法控制的,比如暂停、快进或重播等。

这往往会影响用户浏览网页时的体验。

本文实现了一个网页版的Flash播放器,该网页版Flash播放器能对网页中的Flash 播放进行深度控制。

2.Flash播放器的实现Flash播放器的控制代码用javascript实现,主要通过编写相应的函数控制flash动画的播放、暂停和快进等。

该代码编写到一个脚本文件myFlash.js中,详细代码如下[1、2、3]。

function Flash_embedSWF(srcURL,swfbgColor){vardefaultColor=(document.bgColor!=null)?document.bgCol or:"#ffffff";varbgcolor=(swfbgColor!=null)?swfbgColor:defaultColor;document.writeln(''+''+''+''+''+''+''+'');window.document.flash.Rewind(); }function buttonClk(){switch(event.srcElement.value){case "播放":window.document.flash.Play();break;case "停止":window.document.flash.Rewind(); oButton.style.pixelLeft=10;break;case "暂停":window.document.flash.stopplay(); break;case "快进":if(window.document.flash.IsPlaying())window.document.flash.StopPlay();else{ window.document.flash.gotoframe(window.document.flash .CurrentFrame()+50);oButton.style.pixelLeft=10+290*(oPlayer.CurrentFrame()+ 1)/oPlayer.TotalFrames;}break;case "快退":if(window.document.flash.IsPlaying())window.document.flash.StopPlay();else{window.document.flash.gotoframe(window.document.flash.C urrentFrame()-50);oButton.style.pixelLeft=10+290*(oPlayer.CurrentFrame()+ 1)/oPlayer.TotalFrames;}break;}}接着制作一个简单的静态网页,调用上面的函数实现对Flash文件的控制。

Adobe Flash Player网络播放器

Adobe Flash Player编辑Adobe Flash Player是一种广泛使用的、专有的多媒体程序播放器。

它最初由Macromedia编写,在Macromedia 被Adobe收购后由Adobe继续开发并分发。

Adobe Flash Player 最初设计目的为播放2维向量动画,但至此之后成为适合开发创造丰富型互联网应用程序、流视频音频的工具。

Flash Player使用向量图形的技术来最小化文件的大小以及创造节省网络带宽和下载时间的文件。

因此Flash 成为嵌入网页中的小游戏、动画以及图形用户界面常用的格式。

目录1使用技巧2支持类型▪语言▪操作系统3新增功能4历史版本5常见问题6手机版本1使用技巧编辑Adobe Flash Player 是一款高级客户端运行时使用的播放器。

它短小精悍,能够在各种浏览器、操作系统和移动设备上使用,功能强大,兼容性高。

现在,超过13多亿台的连接Internet 的桌面计算机和移动设备上都安装了Adobe Flash Player ,它使公司和个人能够构建并带给最终用户美妙的数字体验。

使您能够在将交互式、丰富内容与视频、图形和动画组合到一起的Web 上享受最富表现力的、引人入胜的体验。

在2005 年9 月,Macromedia 引入了Flash Player 8,它提供革命性的新表现力和呈现性能,包括位图效果、滤镜、alpha 视频和一个用于Flash 视频的新的视频编解码器。

我们扩展了运行时的功能以改进与外部API 之间的Flash 至浏览器通信。

我们还支持综合的、复杂的应用程序的文件上传和下载功能。

所有这些新功能都导致Flash 8 内容在Internet 上快速衍生,推动了Flash Player 在其历史中最快速的采用。

在2006 年由NPD Group Research (一个独立的研究公司) 所进行的一项研究*表明,Flash Player 8 在其发布后仅六个月就达到69% 的渗透率。

FLASH影音在线播放器的设计与功能实现毕业论文答辩


setInterval超频帧的应用
参数: functionReference:Function - 对要被调用的函数
的引用。 interval:Number - 对传入的函数的调用所间隔的
时间(以毫秒为单位)。 param:Object [可选] - 向被调用函数传递的参数。
ActionScript脚本
功能强大的面向对象语言。比之Director的 Lingo语言,ActionScript脚本的简单易学和易 用性,详尽细致的“帮助”面板,对程序员更 是体贴倍至。使用全新的脚本开发功能,交互 性的多媒体更加强劲,面向对象的脚本编程使 Flash更像是一个强大的程序开发软件(配合 Adobe Flex),从此以后,Flash已经不再是一 个动画设计软件,它朝着集软件开发、编程、 美工、设计、多媒体等众多强势于一身的方向 大步迈进。
近期Flash软件的5种走势
Flash很可能被整合到PDF中 Adobe软件有望直接输出FLA文件 轻松开发Flex RIA 全新的代码执行引擎 成为视频发布的首选格式
Flash到底具有什么样的特点,使得它成为了众多多媒体设计师和网页设计 师的选择呢?为什么会使Adobe舍得用43亿美元收购Macromedia公司呢?
元件
元件的概念可以使动画制作更为简便和管理:可以 把相同部分制成元件,在之后可以直接复制或从 “库”中托到舞台。同时这样做可以减少最后swf 文件的字节,因为动画里多次出现相同内容时,不 需要在程序里多次存储,一个元件存储一次,之后 只要类似指针表示一下相同的元件就可以了。元件 有3种:影片剪辑(可以添加剪辑动作包括按钮动 作)、按钮(只可以添加鼠标或按键事件)和图形 (不可添加任何动作)。另外,元件间可以相互的 嵌套(注意,不可循环嵌套)

手把手教你在网页中添加flash元素

手把手教你在网页中添加flash元素.doc实验要求通过试验,掌握如何在网页中添加flash影片、flash文本和flash按钮的方法。

说明macromedia flash技术是目前最为普及的矢量图形和动画传送解决方案。

如今的flash影片已经在网页中广泛应用,增添了网页的动态效果。

在dreamweavermx2004中不仅可以插入flash程序中创建的影片,还可以直接在文档中创建、插入和修改flash按钮和flash文本;这些操作均不需要macromedia flash的参与。

对应知识点●1.插入flash动画●2.添加flash按钮●3.使用flash文本对应《macromediadreamweavermx2004标准教程》第8章的内容。

试验课时;4课时实验素材●swf格式的影片可在本书配套光盘中查找使用实验步骤1.dreamweaver mx 2004程序,选择菜单”文件“->”新建”命令,创建HTML网页。

保存网页为page10.htm.2.单击使用面板中的表格按钮,插入5行1列,,宽度为777像素,边框粗细、单元格边距和单元格间距均为0的表格。

3.选中表格,在属性面板中对齐下拉列表中选择居中对齐选项。

4.在第一单元格内单击,使插入点定位在此单元格内。

5.从本书配套光盘exp10\sucai10文件夹中复制文件“1.swf”和”2.swf”,粘贴到任意一个磁盘的根目录下。

这是我们粘贴到盘内。

如图10-1示6.返回dreamweaver编辑窗口,在常用面板的媒体列表中选择文本命令,如图所示。

或者选择菜单”插入”—〉”媒体”—〉”flash文本”命令。

图10-1 将素材文件粘贴到F盘内图10-2选择“Flash文本”命令说明flash文本对象允许用户创建和插入只包含文本的flash影片,使用它可以创建一个小的矢量图像影片,并定义所有需要的文字和文本。

1.开“插入flash文本”对话框。

基于FlashAS3.0写WEB版音乐播放器

基于Flash编写的WEB版音乐播放器代码一:package{import flash.media.Sound ;import flash.media.SoundChannel;import flash.media.SoundTransform ;import flash.media.SoundLoaderContext ;import .URLRequest ;import .URLStream ;import flash.events.MouseEvent ;import flash.events.IOErrorEvent;import flash.events.Event ;import flash.events.ProgressEvent ;public class Audio{/*歌曲播放头*/private var playHead:uint=0 ;/*播放状态,0:什么也没有,1:播放,2:暂停,3:停止*/private var playState:uint=0;/*声音状态,0:正常1:静音2:最大音·*/private var volState:uint=0;private var sound:Sound ;private var channel:SoundChannel ;private var transfor:SoundTransform ;private var uRequest:URLRequest ;private var loadContext:SoundLoaderContext ;public function Audio(){loadContext=new SoundLoaderContext(1000,false) ;//跨域策略处理}/******************next/pre/current***************************************/public function switchPath(path:String,vol:Number):void{transfor=new SoundTransform (vol,0);this.soundObject(path);}private function soundObject(path:String):void{try{if(this.channel){this.channel.stop();this.setPlayState(3);}if(this.sound.isBuffering){this.sound.close();this.setPlayState(3);}}catch(e){}finally{sound=new Sound() ;uRequest=new URLRequest(path) ;uRequest.method='POST';this.soundEvent();sound.load(uRequest,loadContext);}}/*******************************************************load**************** ******************************************/private function loadOpen(e:Event):void{//trace('Start Run');}private function loadProgress(e:ProgressEvent):void{Main.soundTotalBytes(r_soundTotalBytes());Main.soundLoadedBytes(r_soundLoadedBytes());}private function loadError(e:IOErrorEvent):void{Main.soundError();}private function loadComplete(e:Event):void{if(!this.soundBuffered()){Main.soundTotalTime(r_soundLength());this.event_playEvent();}}/*******************************************************XXXXXXXX******* ***************************************************/public function soundBuffered():Boolean//true在缓冲,false缓冲结束{return sound.isBuffering ;}/*******************************************************contro_*,pause/stop/pla y,forward/back/up/down*********************************************************/ public function contro_pauseEvent():void{this.event_pauseEvent();}public function contro_stopEvent():void{this.event_stopEvent();}public function contro_playEvent():void{this.event_playEvent();}public function contro_adjustPlayHead(position:Number):void{if(this.getPlayState()==1 || this.getPlayState()==2){try{this.channel.stop();this.channel=this.sound.play(position,0,this.transfor);this.soundPlayOver() ;}catch(e){}}}public function contro_adjustV olume(vol:Number):void{this.transfor.volume=vol;this.channel.soundTransform=this.transfor;}public function contro_playOver(e:Event):void{this.playHead=0;Main.sendSoundPlayState();}/*******************************************************event_************** ********************************************/private function event_pauseEvent():void{if(this.getPlayState()==1 || this.channel){this.playHead=this.channel.position;this.channel.stop();this.setPlayState(2);}}private function event_playEvent():void{if(this.getPlayState()==2){this.channel=this.sound.play(this.playHead,0,this.transfor);this.soundPlayOver() ;this.setPlayState(1);}if(this.getPlayState()==3 || this.getPlayState()==0){this.channel=this.sound.play(0,0,this.transfor);this.soundPlayOver() ;this.setPlayState(1);}}private function event_stopEvent():void{if(this.getPlayState()==2||this.getPlayState()==1){this.channel.stop();this.playHead=0;this.setPlayState(3);}}/*******************************************************infor_************** ********************************************/public function infor_soundLoadedBytes():uint{return this.sound.bytesLoaded ;}public function infor_soundTotalBytes():int{return this.sound.bytesTotal ;}public function infor_soundLength():Number{return this.sound.length ;}public function infor_currentPlayHead():Number{return this.channel.position ;}public function infor_soundUrl():String{return this.sound.url ;}/*----------------------------------------------------------播放状态和声音状态设置-----------------------------------------------------------------------------*/private function setPlayState(stateValue:uint):void{switch(stateValue){case 0: this.playState=0;break;case 1: this.playState=1 ;break;case 2: this.playState=2;break;case 3: this.playState=3;break;}}public function getPlayState():uint{return this.playState ;}private function setV olState(stateValue:uint):void{switch(stateValue){case 0: this.volState=0;break;case 1: this.volState=1 ;break;case 2: this.volState=2;break;}}public function getV olState():uint{return this.volState ;}private function soundPlayOver():void{this.channel.addEventListener(Event.SOUND_COMPLETE,this.contro_playOver);}private function soundEvent():void{this.sound.addEventListener(Event.OPEN ,loadOpen) ;this.sound.addEventListener(PLETE,loadComplete);this.sound.addEventListener(IOErrorEvent.IO_ERROR,loadError);this.sound.addEventListener(ProgressEvent.PROGRESS,loadProgress);}}}代码二:package{import flash.display.Sprite ;import flash.events.MouseEvent ;import flash.events.TimerEvent ;import flash.utils.Timer ;import flash.ui.ContextMenu ;import flash.ui.ContextMenuItem ;import flash.external.ExternalInterface ;import flash.system.Security;import Audio ;public class Main extends Sprite{private var audio:Audio ;private var path:String;private var vol:Number;public function Main(){if(ExternalInterface.available){flash.system.Security.exactSettings=true;flash.system.Security.allowDomain("*");try{var containerReady:Boolean=isContainerReady() ;if(containerReady){setupCallbacks();}else{var readyTimer:Timer=new Timer(10,0);readyTimer.addEventListener(TimerEvent.TIMER,timerHander);readyTimer.start();}}catch(e){}}/*this.audio=new Audio();this.songObject('zhou.mp3',1);*/this.copyright( ) ;}private function isContainerReady():Boolean{var readyResult:Boolean=ExternalInterface.call("isReady") ;//调用JS的isReadyreturn readyResult ;}private function timerHander(e:TimerEvent):void{var isReady:Boolean=isContainerReady();if(isReady){Timer(e.target).stop();setupCallbacks();}}//------------------------------------------------------------------------------------------让JS调用--------------------------------------------private function setupCallbacks():void{this.audio=new Audio();ExternalInterface.addCallback("onPause",onPause) ;ExternalInterface.addCallback("onRecover",onRecover) ;ExternalInterface.addCallback("onStop",onStop) ;ExternalInterface.addCallback("onV ol",onV ol) ;ExternalInterface.addCallback("onState",onState) ;ExternalInterface.addCallback("onHead",onHead) ;ExternalInterface.addCallback("onPosition",onPosition) ;ExternalInterface.addCallback("onBuffer",onBuffer) ;ExternalInterface.addCallback("songObject",songObject) ;}//--------------------------------------------------------------------对JS接口------------------------------------------------------------//上一首或下一首private function songObject(path:String,vol:Number):void{this.path=path;this.vol=vol;if(path==''){var _readyTimer:Timer=new Timer(10,0);_readyTimer.addEventListener(TimerEvent.TIMER,_timerHander);_readyTimer.start();}else{this.audio.switchPath(this.path,this.vol);txt.text=String('Run');}}private function _timerHander(e:TimerEvent):void{if(this.path!=''){Timer(e.target).stop();this.audio.switchPath(this.path,this.vol);txt.text=String('Run');}}//暂停播放private function onPause():void{this.audio.contro_pauseEvent();txt.text=String('Pause');}//恢复播放private function onRecover():void{this.audio.contro_playEvent();txt.text=String('Recover');}//停止播放private function onStop():void{this.audio.contro_stopEvent() ;txt.text=String('Stop');}//控制声音private function onV ol(volValue:Number):void{this.audio.contro_adjustV olume(volValue) ;}//用来快进或后退private function onHead(setPlayHead:Number):void{this.audio.contro_adjustPlayHead(setPlayHead);}//判断歌曲是播放还是暂停或停止private function onState():uint{return this.audio.getPlayState();//------------------------0/1/2/3 }//判断是否在缓冲private function onBuffer():Boolean{return this.audio.soundBuffered();}//当前歌曲播放头private function onPosition():Number{return r_currentPlayHead() ;}//---------------------------------------------------------------------------供Audio调用/-------------------------------------------------//向JS报告该歌曲一播放完public static function sendSoundPlayState():void{ExternalInterface.call("playOver","OVER");}//报告歌曲总时间public static function soundTotalTime(totalTimeValue:Number):void{ExternalInterface.call("totalTime",totalTimeValue);}//报告歌曲总字节数public static function soundTotalBytes(totalBytesValue:uint):void{ExternalInterface.call("totalBytes",totalBytesValue);}//报告歌曲当前已经加载字节数public static function soundLoadedBytes(loadedBytesValue:uint):void{ExternalInterface.call("loadedBytes",loadedBytesValue);}public static function soundError():void{ExternalInterface.call("loadedError","the path can be error");}//---------------------------------------------------------------------------版权-----------------------------------------------------------------------------private function copyright():void{var menu:ContextMenu=new ContextMenu( ) ;var menuItem01:ContextMenuItem=new ContextMenuItem('Yue 1.0.2') ;var menuItem02:ContextMenuItem=new ContextMenuItem('© 2013 quanyao AllReserved') ;menu.customItems.push(menuItem01, menuItem02);contextMenu=menu ;}}}WEB的JS部分:// JavaScript Document/*******************************以下是类*******************************************************/var jsReady =false;var swfpath ='player.swf';/***********初始化都为零,记录歌曲信息***************************/var infor={length:0 ,tbytes:0 ,lbytes:0 ,vol :parseFloat(0.5)//默认音量0.5,[0,1]}function Init(){jsReady=true;}/******************JS*********************************/function songObject(path){thisMovie('player').songObject(path,infor.vol);}function onRecover(){thisMovie('player').onRecover();}function onPause()thisMovie('player').onPause();}function onStop(){thisMovie('player').onStop();}function onVol(vol)//调整声音{thisMovie('player').onV ol(vol);}function onHead(value)//调整播放进度{thisMovie('player').onHead(value);}function onState()//获取播放状态,0/1/2/3{return thisMovie('player').onState();}function onPosition()//获取播放头{return thisMovie('player').onPosition();}function onBuffer()//判断是否在缓冲,true/false {return thisMovie('player').onBuffer();}/***************AS*******************/ function isReady(){return jsReady;}function playOver(state){alert(state);}function totalTime(value){infor.length=value ;function totalBytes(value){infor.tbytes=value;}function loadedBytes(value){infor.lbytes=value;}function loadedError(val){alert(val);}function thisMovie(movieName){if(navigator.appName.indexOf("Microsoft") != -1){return window[movieName];}else{return document[movieName];}}function tag(){$('body').append("<div><embed src='"+swfpath+"' name='player' quality='high' width='200' height='40' align='middle' play='true' loop='false' quality='high' allowScriptAccess='sameDomain' type='application/x-shockwave-flash' pluginspage='http =///go/getflashplayer' swfversion='6.0.65.0' expressinstall='Scripts/expressInstall.swf'></embed></div>");}jQuery(function(){tag();jsReady=true;});/****************转换时间格式**************************************/function timeFormat(timeValue){var m,s,ms;m=parseInt(timeValue/1000/60);s=parseInt(timeValue/1000-m*60);ms=parseInt(timeValue%1000/10);m=m>9?m:('0'+m);s=s>9?s:('0'+s);ms=ms>9?ms:('0'+ms);return m+':'+s;}/**************************解析歌词*************************************/var lyric={readLyric:function(serverPath,lyricPath){var lyricObject,proxy=this;$.post(serverPath,{path:lyricPath},function(message){if(message!=''){lyricObject=this.analysisLyric(message);//解析歌词this.showLyric(lyricObject);//显示歌词}else{proxy.noLyric();//????????????/}});},analysisLyric:function(lyric){var title,artist,album,by,arr=new Array(),lyricArr=new Array(),timeArr=new Array(),lyricObject=new Array();lyricObject[0]=timeArr,lyricObject[1]=lyricArr;//用lyricObject来封装歌词和时间arr=lyric.split('\n');for(var i=0;i<arr.length;i++){//substring(start,end)方法返回字符串包括start位置但不包括end,substr(start,[length])if(arr[i].substr(arr[i].indexOf(']')+1)!="")//过溜掉歌词为空的即其时间轴{lyricArr[i]=arr[i].substr(arr[i].indexOf(']')+1);timeArr[i]=arr[i].substring(arr[i].indexOf('[')+1,arr[i].indexOf('.'));}else{}}return lyricObject;},showLyric:function(lyric){isDisplay:false//判断歌词是否准备好},moveLyric:function(){},noLyric:function(tagName){$(tagName).append("<p>--没有找到歌词--</p>");}}JS部分添加了歌词解析部分下载地址/download/。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档