|
Flash IFrame游戏的Kongregate API连接为了当你的Flash游戏被一个iframe服务时能使用Kongregate客户端API,您将需要传递一些Kongregate特定的Flash变量到你的SWF。 准备你的HTML为了通过适当的Flash变量,您的网页源将需稍作修改。第一步是包括一些Kongregate JavaScript: <script src='http://www.kongregate.com/javascripts/kongregate_api.js'></script> 一旦这个脚本被加载,你可以使用下面的命令访问一串Kongregate Flash变量: kongregateAPI.flashVarsString() 这个函数将返回一个URL编码的字符串,将以“&”结束,所以你可以简单地添加任何你需要的自定义Flash变量到你的终端上。然后,您必须传递这些Flash变量到您的SWF。欲了解更多有关如何操作的信息,请参阅此链接
如果您正在使用一些类似SWF对象的东西嵌入您的SWF,访问一个 kongregateAPI.flashVarsObject() 基本HTML示例这里有一个非常基础的例子关于如何利用上述信息的传递Kongregate Flash变量到您的SWF。请注意,这个例子是非常粗略,更常见的是用一些诸如SWFObject或Adobe的工具来嵌入SWF。 <html> <body> <script type="text/javascript" src="http://www.kongregate.com/javascripts/kongregate_api.js"></script> <script language="javascript" type="text/javascript"> var flashvars = kongregateAPI.flashVarsString(); var html='<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'; html += 'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"'; html += 'WIDTH="550" HEIGHT="400" id="game"><PARAM NAME="movie" ID="movie" VALUE="http://www.mysite.com/MyGame.swf">'; html += '<PARAM NAME="flashvars" VALUE="' + flashvars + '">'; // Add in flashvars html += '<EMBED src="http://www.mysite.com/MyGame.swf" WIDTH="550" HEIGHT="400"'; html += 'NAME="game" ID="game" TYPE="application/x-shockwave-flash"'; html += 'PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"'; html += 'FLASHVARS="' + flashvars + '"></EMBED></OBJECT>'; // Add in flashvars document.write(html); </script> </body> </html> 准备你的SWF
您需要打电话到 通常最方便的做法是先加载SWF到你的游戏,然后再传递一个参考到API对象进到任何其它需要它的SWF上。请注意,您需要再任何SWF做这个allowDomain调用,并且参考 Kongregate API。 这一调用需在你加载API SWF之前进行。这将允许你的母SWF和我们的API沟通。欲了解更多有关Security.allowDomain信息,请参阅此链接 下面是一个关于加载AS3 API,设置适当的权限的简单例子:
import flash.display.LoaderInfo;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.system.Security;
var kongregate:*;
//加载Kongregate API的函数
function initializeKongregateAPI():void{
// 从FlashVars推动API路径
var paramObj:Object = LoaderInfo(root.loaderInfo).parameters;
var apiPath:String = paramObj.kongregate_api_path || "http://www.kongregate.com/flash/API_AS3_Local.swf";
Security.allowDomain(apiPath);
// 加载API
var request:URLRequest = new URLRequest(apiPath);
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onKongregateAPILoaded);
loader.load(request);
this.addChild(loader);
}
// 当Kongregate API被加载时调用
function onKongregateAPILoaded( event:Event ):void{
kongregate = event.target.content;
kongregate.services.connect();
}
//开始加载API的过程
initializeKongregateAPI();
如果您传递 Security.allowDomain(kongregate.loaderInfo.url);
如果您仍然无法让它们工作,或发现您无法得到安全, 你一切准备就绪!您现在应该能够利用KongregateAPI,就好像你的游戏在Kongregate上运作。 |
Loading