Flash IFRAME Integration
Load the ActionScript 3 API from your Flash game externally hosted in an IFRAME
Kongregate API Integration for Flash IFrame Games
In order to use the Kongregate Client API in your Flash game when it is hosted in an iframe, you will need to pass some Kongregate-specific Flash variables into your SWF to allow the ActionScript 3 API to be loaded properly.
Note
For best compatibility with all browsers, set your Flash AllowScriptAccess param to "always" when embedding your SWF
Preparing your HTML
In order to pass in the appropriate Flash Variables, your page source will need to be modified slightly. The first step is including some Kongregate Javascript:
<script src='https://cdn1.kongregate.com/javascripts/kongregate_api.js'>
Once this script is loaded, one can access a string of Kongregate Flash variables with the following JavaScript:
kongregateAPI.flashVarsString();
This function will return a URL-encoded string, which will end in "&", so you can simply add any custom Flash Variables you need onto the end of it. You must then pass these Flash Variables into your SWF. For more information on how to do this, see this link.
If you are using something like SWFObject to embed your SWF, it might be more convenient to have access to an Object
as opposed to a String
containing the Flash Variables. This allows you to enumerate the required Kongregate variables and merge them in with your own variables. You can access this object using the flashVarsObject
function as shown below:
kongregateAPI.flashVarsObject();
Basic HTML Example
Here is a very basic example of how to utilize the above information to pass the Kongregate Flash Variables into your SWF. Please note that this example is very crude, and it is more common to use something such as SWFObject or Adobe's tools to embed a SWF.
<body>
<script type="text/javascript" src="https://cdn1.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"' +
'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='AllowScriptAccess' VALUE='always'/>';
// Add in flashvars
html += '<PARAM NAME="flashvars" VALUE="' + 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 += ' AllowScriptAccess="always"';
// Add in flashvars
html += ' FLASHVARS="' + flashvars + '"></EMBED></OBJECT>';
document.write(html);
</script>
</body>
</html>
Once your SWF is loaded using these Flash variables, you can load and use the ActionScript 3 API normally.
Updated over 4 years ago