我目前正在开发一款Facebook游戏,而且我有一个关于整合生命计数器的问题,这种生命计数器会随着时间的推移而重新为facebook游戏而生。
该游戏是一款简单的Flash / AS3射击游戏,玩家可以在其中争夺最高分。
由于货币原因,如果所述生命计数器> = 1,则每个游戏都会花费一生而用户应该只能开始新游戏。
为了清理,我提交了一个链接到Popcap的Facebook游戏“Zuma Blitz”:
我可以想到几种方法,但我不知道哪种方法最好/最简单。
最好是:
通过php与服务器通信在AS3中创建吗?
或者在JavaScript中进行操作并将计数传回AS3?
另一个可能相关的问题是,如何告诉我的数据库在游戏关闭时应该存储来自生命计数器的数据(例如关闭浏览器)。
我可以在Flash中执行此操作,还是必须应用html / JavaScript方法?
答案 0 :(得分:1)
方法1. 无论何时,都可以使用ActionScript与服务器进行通信。正如jhocking所说,URLLoader和URLRequestMethod是可行的方法。
只要你不能使用ActionScript执行某些操作,ExternalInterface就会为您提供所有JavaScript功能。
对于游戏结束事件(浏览器标签结束事件),您可以像这样使用JavaScript:
import flash.external.ExternalInterface;
// ...
ExternalInterface.addCallback("closeGame", tellDatabaseToStore);
// ...
public function tellDatabaseToStore():void{
// ...
}
在JavaScript中:
window.onbeforeunload = clean_up;
function clean_up()
{
var flash = document.${application} || window.${application};
flash.closeGame();
}
${application}
应替换为["YourEmbeddedFlashElementName"]
。
答案 1 :(得分:0)
我会用选项1来做。我的意思是,你肯定可以使用ExternalInterface在JavaScript和ActionScript之间进行通信,然后让JavaScript将消息中继到你的服务器,但它更简单到了从ActionScript发出POST查询。
查找有关URLLoader和URLRequestMethod的信息。