来源:webfuny.cn   酷勤网收集 2008-10-12

摘要
  SNS平台上挂flash游戏成了一个风气,那技术层面来将,怎么挂比较靠谱?这里分享第一个解决方案:采用专业存储;解决了大流量高并发的存储问题,下一步就涉及到跨域提交成绩问题……

首先要说的是,我不是一个专业flash开发者
你可以把我当作一个flash产业破坏者
但我一直的原则是:首先以市场为导向,然后再以产品为本体,再以用户为中心,最后是以技术做铺垫
SNS平台上挂flash游戏成了一个风气
那技术层面来将,怎么挂比较靠谱?

下面做一些数据上的假设,你也可以当真,因为你现在应该相信我在SNS开放平台上的修为
比如,你的flash游戏应用总的日PV达到40万,独立IP每天有20万
首先要达到这个效果,那么可以推导出你的flash游戏是有题材、有质量、相当具有可玩性的
直接铺开:卡丁车、电眼少女、劲舞团、泡泡堂类似的flash游戏
那平均每个flash游戏的大小在1M以上,这意味着每天有平均30万M的流量,即每天纯flash流量需要300G

这里分享第一个解决方案:采用专业存储
比如我用的是著名图片存储服务商photobucket的pro服务,收费是3个月12$,不限流量不限大小,而至关重要的是国内访问速度能保证;还有就是还没有被GFW掉的历史

解决了大流量高并发的存储问题,下一步就涉及到跨域提交成绩问题
1个flash文件放在www.photobucket.com域下,而你的应用逻辑是在一台自己拥有的php+mysql服务器,拥有一个app.webfuny.cn域。跨域可以提交成绩?
这里有一个知识点,photobucket域下的swf文件在调用sendandload函数,向跨域服务器提交数据的时候
首先是访问该域根目录下的corssdomain.xml文件,这个文件是起权限设置作用
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*.photobucket.com" />
</cross-domain-policy>
这样配置即可解决跨域提交游戏成绩问题
这是分享的第二个解决方案

我想分享的第三个知识点是从http://app.56.com学到的
列位看官可以用下半身思考这个问题,轻易得出结论,56的一帮人破解了这71款他们从互联网上选取的数以百万计的flash游戏。他们不会去一个个修改源代码,实现玩家积分存数据库,制作排行榜
校内网开放平台上他们自己员工做的游戏中心也是这个道理
那实现原理是什么?这是我要提的,最终方法可能与他们有出入,但思想应该一样
饶过flash本身实现积分排行榜,需要先做一个flash外壳
比如游戏本身是streetfight.swf(街头霸王)
我页面上先挂的是shell.swf,这个外壳flash的AS代码就有些技术含量了
game = "。。/streetfight.swf";
loadMovieNum(game, 2);//将 SWF 文件加载到级别 2
Flash允许同时运行多个SWF文件,Flash一旦载入一个SWF文件,则占据了一个"层次",系统默认的是_Flash0或_Level0,之后的Movie则按顺序放在level0---level16000里。第一个载入的SWF文件为_Flash0或_Level0,第二个如果加载到第一层时的称为_Flash1或_Level1,依此类推。
然后需要不停地监听嵌入的streetfight.swf 是不是结束了,这里还是需要通过破解工具得到游戏结束的特征,例如:
onEnterFrame = function ()
{
if (_level2.map2.popend._visible == true)
{
_root.score = _level2.ang;//实现存储
gotoAndPlay("load");
delete onEnterFrame;
} // end if
};

这篇博客终于实至名归,毕竟我blog的标题落脚点是专注web前端技术

本文来自:http://www.webfuny.cn/2008/10/11/flash-tech.html

上一篇:国内开放平台在干什么   下一篇:Facebook神话与校内网的崛起