we are coming from a Flash-based project where we have an html page that includes Javascript and the Flash client. The Flash client can then call the Javascript functions defined in the main html page.
Now we are switching to HTML5 with OpenFL and the structure changes a bit because now OpenFL generates an index.html that we somehow have to include in our main html page and then make it possible to call Javascript functions from the index.html in our main html page.
Things are getting more complicated because we have different domains for our main html page and the domain our frontend is loaded from. I know there are a couple of ways to allow crossdomain communication between 2 documents, however first I wanted to ask if there is an OpenFL way of doing this that I might be missing.
Is there any best practice to load our game into an existing html page (not the one generated by OpenFL) to allow communication with existing Javascript methods?
openfl create BrowserExternalInterface
cd BrowserExternalInterface
openfl test html5
In addition to ExternalInterface (which works cross-platform between Flash and HTML5) you can also use JavaScript methods directly with externs or untyped JavaScript in Haxe, but for starters, check out this sample
Thanks, I think we are on a good track now. We are breaking apart the index.html generated by OpenFL to include it in our main html page so that the game and our Javascript context are embedded in the same page. For anyone else interested in this, there is a handy parameter in lime.embed to allow loading assets from a remote URL where the game files are located: