用flash从百度搜索中找歌词

本文介绍了一款用于搜索歌词的Flash插件的工作原理及关键代码。重点讲解了如何使用System.useCodepage避免乱码问题,并通过LoadVars加载网页数据实现歌词搜索功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 由于安全性的原因,请下载到本地使用:
地址(目标另存为) :
[url=http://www.5uflash.com/Files/BeyondPic/2006-9/16/lrcSearch.swf]
[color="#444444"]http://www.5uflash.com/Files/BeyondPic/2006-9/16/lrcSearch.swf[/color]
[/url]
代码:
System.useCodepage = true;
myLoadVars = new LoadVars();
function lrcSearch(keyWord) {
musicName = keyWord.slice(0, keyWord.indexOf(" "));
myLoadVars.load("http://www.baidu.com/s?wd="+"[ti:"+keyWord);
myLoadVars.onData = getLink;
pageIndex = 1;
}
function getLink(src) {
nextPageLink = "http://www.baidu.com/"+src.slice(src.lastIndexOf("href=", src.indexOf("下一页"))+5, src.lastIndexOf(">linkData.length-2) {
myLoadVars = new LoadVars();
myLoadVars.load(nextPageLink);
myLoadVars.onData = getLink;
pageIndex++;
linkIndex = 1;
delete nextPageLink;
} else {
linkIndex++;
openLRCPage(linkData[linkIndex-1]);
}
}
}
我们先来看第一句:
[color="#0000cc"]System.useCodepage = true;[/color]
[color="#ff0000"]这句主要的作用是让最后的结果不会变成乱码[/color]
,默认情况下flash是按照UTF格式来解析所有加载的数据的,这在加载中文数据的时候会有些问题,只有数据在用UTF-8编码格式的时候才能被正确识别。因为很多页面(基本上现在90%的页面)并不是用UTF-8来保存的,所以要加上这句。这样才不会乱码。更详细的说明请参见flash帮助关于System.useCodepage的详细说明。反正在大部份情况下,如果你遇到乱码的问题都可以用这个来解决,使用
[color="#0000cc"]System.useCodepage = true[/color]
或者
[color="#0000cc"]System.useCodepage = false[/color]
来切换。
第二句:
myLoadVars = new LoadVars();
这是用来装载所有加载的数据的,等会加载的网页的数据(html源文件)都装在这里。基本上,要进行数据传输(例如和服务器程序交换变量数据或者从服务器上加载文件)的进候都要用到 LoadVars()、XML的数据传输/加载方法或者XMLSocket 。LoadVars() 是最基础的方法。
function lrcSearch(keyWord) {
    musicName = keyWord.slice(0, keyWord.indexOf(" "));
    myLoadVars.load("http://www.baidu.com/s?wd="+"[ti:"+keyWord);
    myLoadVars.onData = getLink;
    pageIndex = 1;
}
这里定义了一个函数 lrcSearch(keyWord) 。呆会每次搜索不同歌词的时候都是从这里开始的,通过向这个函数发送不同的歌词名(如 lrcSearch("突然的自我")、 lrcSearch("童话")、lrcSearch("不得不爱")或者lrcSearch("我听这种音乐的时候最爱你"))来启动搜索。在这里,是所有代码的入口。
它告诉flash:加载(下载) "http://www.baidu.com/s?wd="+"[ti:"+keyWord 的文件。keyWord 是刚刚上面所说的 "突然的自我" 等需要搜索的关键字。 当你在搜索引擎搜索内容的时候注意一下地栏的url,在百度中,它是类似于这样:
www.baidu.com/s?wd=%5Bti%3A%CD%BB%C8%BB%B5%C4%D7%D4%CE%D2&cl=3
本文转自:http://www.5uflash.com/flashjiaocheng/Flashyingyongkaifa/1048.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值