为facebook游戏创建持久生命计数器

时间:2012-03-20 12:46:12

标签: javascript facebook actionscript-3

我目前正在开发一款Facebook游戏,而且我有一个关于整合生命计数器的问题,这种生命计数器会随着时间的推移而重新为facebook游戏而生。

该游戏是一款简单的Flash / AS3射击游戏,玩家可以在其中争夺最高分。

由于货币原因,如果所述生命计数器> = 1,则每个游戏都会花费一生而用户应该只能开始新游戏。

为了清理,我提交了一个链接到Popcap的Facebook游戏“Zuma Blitz”:

ZUMA Blitz

我可以想到几种方法,但我不知道哪种方法最好/最简单。

最好是:

  1. 通过php与服务器通信在AS3中创建吗?

  2. 或者在JavaScript中进行操作并将计数传回AS3?

  3. 另一个可能相关的问题是,如何告诉我的数据库在游戏关闭时应该存储来自生命计数器的数据(例如关闭浏览器)。

    我可以在Flash中执行此操作,还是必须应用html / JavaScript方法?

2 个答案:

答案 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的信息。