存档
分析了下临沂批发市场网(CNLY888.COM)的休闲娱乐模块,发现了一个很有意思FlashAPI,叫FlashAPI不是很确切,应该是Flash引用的API
调用方法有两种:
1.两次握手,实现Flash API的调用(推荐)
a.本地服务器,通过程序提供的API接口,并将需要的信息保存到本地数据库,并将操作交给API提供商的程序处理
http://img-cnly888.union.myw3.cn/r/Happy/Game-API?Play=1001/SWF&Swf_Name=MJ/DEMO/&Page=/Play.asp
b.远程服务器,将需要的内容保存到API提供商的数据库,并返回到API使用者的调用页面
http://flash.union.myw3.cn/Game/Playing.Html?Play=mj&Url=http://www.cnly888.com/Game.html&Page=Play.html
c.本地服务器,返回到API使用者的调用页面,调用最终显示的内容
http://www.cnly888.com/Game.html?Play=mj
d.远程服务器,通过框架引用API页面的内容
http://flash.union.myw3.cn/game/playing.html?Play=mj
2.一次握手法,直接引用Flash API页面
a.本地服务器,API使用者的调用页面,调用最终显示的内容
http://www.cnly888.com/Game.html?Play=mj
b.远程服务器,通过框架引用API页面的内容
http://flash.union.myw3.cn/game/playing.html?Play=mj
具体思想,还是先从简单的第二种方法入手。
既然是一个API程序,如果直接能访问那就没有什么意思了~
http://flash.union.myw3.cn/game/playing.html?Play=mj
这个页面的代码很简单,一个简单的静态页面
<script type="text/javascript" src="myw3sys.js"></script>
<script type="text/javascript">
if(top.location==self.location){
var __X=_Query("Url");
if(__X)
location.href=__X+"?Play="+_Query("Play");
else
alert("非法接口");
}else{
_Swf(_Query("Play"));
}
</script>
初学Javascript的朋友可能会说_Swf,_Query是什么东东?只是MyW3Sys.js提供的一个函数,不需要了解,直接用即可
_Swf(Flash文件名,宽,高,是否透明,FlashURI);在页面添加一个Flash,只有文件名是必须的参数
_Query(XXX);返回GET提交的XXX的数据
使用方法可以到MyW3Sys.js简易文档(http://labs.myw3.cn/JS/myw3sys/)页面查询
只有当被框架引用的时候,才调用_Swf函数显示Flash文件,显示那个,_Query()获取的那个,http://flash.union.myw3.cn/game/playing.html?Play=mj就是调用mj.swf打开http://flash.union.myw3.cn/game/myw3sys.js,myw3_res=”Playing”;那么Flash文件的相对路径为playing/mj.swf
如果不是被框架引用,那就是第一种方法的b(远程服务器,将需要的内容保存到API提供商的数据库,并返回到API使用者的调用页面),判断是否通过GET提交了调用程序的URL,没有就无路可走了(o(∩_∩)o…),只好提示错误了。提交了URL则构造URL的查询参数?Play=_Query(“Play”),即?Play=mj,然后跳转到该URL,然后通过本地接口调用
document.writeln("<iframe src=’http://flash.union.myw3.cn/game/playing.html?Play="+_Query(’Play’)+"’ frameborder=0></iframe>");
需要注意的是,别忘了引用MyW3Sys.js哦,否则不能实用_Query();
这个FlashAPI程序还不是很完善,应该是在测试阶段~
我分析了下MyW3Sys.js,并结合本程序,想出了一个自动判断服务器快慢选择最快的服务器的方案
因为已过两网,实在是。。。电信用户调用电信站点的Flash,网通用户调用网通的站点的Flash
<iframe src="ad.html" src="x_flash"></iframe>
<img src="http://dianxin.xxx.com/err.gif" onerror="_load_flash(this)" />
<img src="http://wangtong.xxx.com/err.gif" onerror="_load_flash(this)" />
<script type="text/javascript">
var x_flash=document.getElementById("x_flash")
function _load_flash(o){
if(x_flash.src!="ad.html"){
x_flash.src=o.src.replace("err.gif","")+"flash_api?123456789";
}
}
</script>