asp和php和javascript,Flash和ASPPHP以及javascript的交互

唉,第一次写文章,真是很紧张,这是前几天在网上查资料和自己研究的结果,希望能对一些朋友有用。水平所限,肯定有错漏之处,烦劳高手指正,不胜感激!下面就书归正传:Flash 以&106avascript 为中介和 ASP/PHP 交互我们班有同学录,人气比较旺。前一段时间管理员托我写一个基于 HTML 的播放器放在班级留言上面,要求很简单,就是实现循环播放。于是就写了一个,比较容易,无非就是 &106avascript 的操作和 ActiveX 控件的交互,查了查 MSDN 决定用 WMP 的 ActiveX 插件。写完后,播放效果总是不尽如人意,不知是我写的 &106avascript 有问题还是 WMP 的 &106avascript 接口有问题,在播放的时候有时不能循环。后来突然想到了 Flash 7.0 也是可以播放 mp3 的,于是开始了设计(没学过系统工程所以不标准,但愿不会贻笑大方):目标: 1. 播放mp3,基本播放控制功能(暂停,继续,索引,音量控制等); 2. 当前曲目循环、列表曲目循环实现: 1. 音乐列表从数据库中动态检索 2. 提供添加音乐 URL 的界面这里,我的思路是:用户访问 ASP(PHP) 页面 => ASP(PHP) 请求数据库 => 返回数据集 => ASP(PHP) 将数据集写为 &106avascript 变量 => Javascritp 通过 Flash 的接口函数写到 Flash 中的 DynamicText 变量中 => Flash 将列表显示这样就出现了一个问题,文件列表的数量是不定的,怎么在 Flash 中处理,设置几个变量呢?我的解决办法是(也许不是很好的办法,但是却很简单,如果高手有更好的方法,请不吝赐教,谢谢了):在 Flash 中设置两个变量,一个是保存文件名 varSongname 另一个是保存 URL varUrl。在Server 端就生成形如(本文中的英文引号被自动替换成了中文引号,请注意):var strSongname = “Songname1,Songname2,Songname3“; 的客户端 &106avascript 的变量定义/赋值语句,然后再使用 SetVariable() 语句将此变量传入 Flash 中,Flash 就将字符串 split() 成数组,然后,不用我教了吧?各就各位的显示出来吧在这样的思路指导下,诞生了3个文件(sFMP的意思是simple Flash MP3 Player) 1 ) sFMP.swf - Flash 文件作为用户界面;2 ) sFMP.asp (.php) - 请求数据库将文件列表作为 &106avascript 的变量写入返回的 HTML 文件;3 ) add.asp (.php) 添加 URL 的页面。下面就具体讲解每个文件的程序逻辑,和工作步骤:sFMP.swf 的制作由于用的是 Flash MX 2004 Professional 所以直接就借用了里面许多组件。(不过要慎重,因为一旦加入 ActionScript 2.0 和组件的支持,文件就会增肥,一般会变大60多KB,视使用组件多少而定。具体原因可能是要包含许多组建库的缘故吧?)下面是里面使用到的组件:MediaPlayback 组件:可以直接播放 MP3 很方便。其包括很多属性和方法、事件。Macromedia 里面有比较详细的说明。InstanceName: _player Action: on (load) { // 可以插入一些播放器初始化代码} on (complete) { // 这个事件当一首音乐播放完毕时产生// switching process if (_root._cbLoopCur.selected == true) { // 当选择了循环播放当前曲目_root._player.play();} else {if (_root._cbLoopAll.selected == true) { // 选择了循环播放全部列表曲目var iIndexRead:Number = _root.SongsList.selectedIndex; // 将列表中的选择高亮条下移一个// 如果已经到末尾则重置iIndexRead++;if (iIndexRead > _root.SongsList.length - 1) { // set current song index = 0 iIndexRead = 0; } // 更新 List 显示_root.SongsList.selectedIndex = iIndexRead; // 这里调用一个函数用来取得播放列表当前选择的 URL // 并用setMedia()和play()方法使播放器播放曲目// 由于比较简单所以略掉了} } } on (change) { // 正在播放音乐时候} on (progress) { // 正在下载音乐文件的时候} List 组件:用来显示从数据库中检索的文件列表。InstanceName: SongsList Action: on (change) { // player control // get list item data var str:String = this.getItemAt(this.selectedIndex).data; if (str.length>0 && str !=

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值