123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259 |
- <!-- saved from url=(0013)about:internet -->
- <!-- see, http://technet.microsoft.com/en-us/library/bb457150.aspx#EHAA for how, why, this works for local controls -->
- <!-- Please note that the saved from line must end in CR LF. Some HTML editors only insert a LF. (Thanks Microsoft) -->
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <meta name="description" content="Web Game Template" />
- <script type="text/javascript" src="jquery-1.3.2.min.js"></script>
- <link rel="stylesheet" href="styles.css" type="text/css" />
- <script type="text/javascript" language="javascript">
- // Relative path on web server to installer
- var installerPath = "MyGameInstaller"
- ua = navigator.userAgent.toLowerCase();
- if( ua.indexOf('os x') != -1 || ua.indexOf('osx') != -1)
- installerPath += ".pkg";
- else
- installerPath += ".exe";
- // Firefox/Chrome/Safari
- var mimeType = "application/__MIMETYPE__";
- // Internet Explorer
- var projId = "__PROJID__";
- var clsId = "__CLSID__";
- var pluginInstalled = false;
- var minimumPluginVersion = 1.0;
- // You can set this to true if you want the page to automatically reload
- // once the plugin is installed. However, this can be better handled by
- // the installer process in most cases (by opening up web page at end of
- // install process, setting up desktop/start menu shortcuts to launch web page
- // etc
- var autoReload = false;
- // Default client screen (overridden below from actual browser window)
- var cscreenW = 800;
- var cscreenH = 600;
- function getClientScreenSize() {
- if( typeof( window.innerWidth ) == 'number' ) {
- //Non-IE
- cscreenW = window.innerWidth;
- cscreenH = window.innerHeight;
- } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
- //IE 6+ in 'standards compliant mode'
- cscreenW = document.documentElement.clientWidth;
- cscreenH = document.documentElement.clientHeight;
- } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
- //IE 4 compatible
- cscreenW = document.body.clientWidth;
- cscreenH = document.body.clientHeight;
- }
- }
- function gameObjectResize(){
- if (!pluginInstalled)
- return;
- getClientScreenSize();
- var aspectRatio = 800.0/600.0;
- var w = cscreenW - 50;
- var h = cscreenH - 125;
- if( w/h > aspectRatio )
- w = h*aspectRatio;
- else
- h = w/aspectRatio;
- var minW = 640;
- if( w < minW ){
- w = minW;
- h = w/aspectRatio;
- }
- $('#gameobject').width( Math.floor(w) );
- $('#gameobject').height( Math.floor(h) );
- $('#main').width( Math.floor(w + 2) );
- var mygame = document.getElementById("MyGame");
- mygame.width = Math.floor(w);
- mygame.height = Math.floor(h);
- }
- $(window).resize( gameObjectResize );
- $(document).ready(function(){
- if (pluginInstalled)
- {
- var mygame = document.getElementById("MyGame");
- // Let the game object know the page is all loaded
- // This is important to register any TorqueScript <-> JavaScript callbacks, etc
- mygame.startup();
- // Export the TorqueScript -> JavaScript bridge test function
- mygame.exportFunction("bridgeCallback",3);
- // Enable the bridge test button now that we're all set
- var bridgetest = document.getElementById("bridgetest");
- bridgetest.disabled = false;
- gameObjectResize();
- }
- });
- // Returns the version of Internet Explorer
- // or -1 for non-IE browser
- // or -2 for 64 bit IE browser
- // (indicating the use of another browser).
- function getInternetExplorerVersion()
- {
- var rv = -1; // Return value for non-IE browser
-
- if (navigator.appName == 'Microsoft Internet Explorer')
- {
- var ua = navigator.userAgent;
-
- if (ua.search("Win64") != -1 || ua.search("x64") != -1)
- return -2; // Return value for IE 64 bit
-
- var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
- if (re.exec(ua) != null)
- rv = parseFloat( RegExp.$1 );
- }
- return rv;
- }
- // Checks whether the NPPlugin is installed (under Firefox/Chrome/Safari)
- function nppluginIsInstalled() {
- if (!navigator || !navigator.mimeTypes) {
- return -1;
- }
-
- var mt = navigator.mimeTypes[mimeType];
- if (mt && mt.enabledPlugin)
- {
- var desc = mt.enabledPlugin.description;
- var descArray = desc.split(" ");
- var version = descArray[descArray.length - 1]
- return Number(version);
- }
- return -1;
- }
- function nppluginReload () {
- navigator.plugins.refresh();
- if (nppluginIsInstalled() < 0)
- window.location.reload();
- setTimeout('nppluginReload()', 500);
- }
- function activexReload () {
-
- if (activexIsInstalled() < 0)
- window.location.reload();
- setTimeout('activexReload()', 500);
- }
- function onTestBridge()
- {
- var mygame = document.getElementById("MyGame");
-
- // set/get console variables test
- // variables are automatically stored Torque 3D side in the Javascript:: namespace
- // for security reasons.
- mygame.setVariable("$TestBridge", 42);
- var everything = mygame.getVariable("$TestBridge");
-
- // this tests bidirectional calling of JavaScript <-> TorqueScript including arguments and return values
- // note that testJavaScriptBridge must be specified in webConfig.h as a secure function
- var result = mygame.callScript("testJavaScriptBridge('one', 'two', 'three');");
- if (parseInt(everything) != 42)
- alert("JavaScript <-> TorqueScript: Failed, get/set console variable doesn't match");
- else if (result == "0")
- alert("JavaScript <-> TorqueScript: All Tests Passed!");
- else if (result == "1")
- alert("JavaScript -> TorqueScript: Failed, incorrect number of arguments");
- else if (result == "2")
- alert("JavaScript -> TorqueScript: Failed, incorrect argument");
- else if (result == "3")
- alert("TorqueScript -> JavaScript: Failed, incorrect return");
- else
- alert("JavaScript -> TorqueScript: Failed, unknown error");
- }
- // Called from TorqueScript console -> JavaScript during bridge test
- function bridgeCallback(arg1, arg2, arg3)
- {
- if (arg1 != "one" || arg2 != "two" || arg3 != "three")
- {
- alert("TorqueScript -> JavaScript: Failed, incorrect argument");
- return "0";
- }
- return "42";
- }
- </script>
- <script language='VBScript'>
- function activexIsInstalled()
- on error resume next
- dim gameControl
- dim version
- version = -1
- set gameControl = CreateObject(projId)
- if IsObject(gameControl) then
- version = CDbl(gameControl.getVariable("$version"))
- end if
- activexIsInstalled = version
- end function
- </script>
- </head>
- <body>
- <img id = "torqueLogo" src = "./torque3D_logo.jpg">
- <div id="main">
- <div style = "height: 20px;"></div>
- <center>Web Game Template</center>
- <div id="gameobject">
- <script type="text/javascript" language="javascript">
-
- // ActiveX
- var ie = getInternetExplorerVersion();
-
- if ( ie == -2) {
- document.write('<center><h3>This plugin is not currently supported on Internet Explorer 64 bit<br><br>Please use Internet Explorer 32 bit to access this site.</h3><centre>');
- }
- else if ( ie != -1) {
- if (activexIsInstalled() >= minimumPluginVersion) {
- pluginInstalled = true;
- document.write('<OBJECT ID="MyGame" CLASSID="CLSID:'+clsId+'" WIDTH="100%" HEIGHT="100%"></OBJECT>');
- }
- else {
- document.write('<center><a href="'+installerPath+'"><img src="getplugin.jpg" /></a></center>');
- if (autoReload)
- activexReload();
- }
- }
- // Firefox/Chrome/Safari
- else {
-
- //we do an initial refresh in case the plugin information has changed (new DLL location, newly installed, etc)
- navigator.plugins.refresh();
- if (nppluginIsInstalled() >= minimumPluginVersion) {
- pluginInstalled = true;
- document.write('<object id="MyGame" type="'+mimeType+'" width="100% height="100%" ></object>');
- }
- else {
- document.write('<center><a href="'+installerPath+'"><img src="getplugin.jpg" /></a></center>');
- if (autoReload)
- nppluginReload();
- }
- }
- </script>
- </div>
- <center>(Press ESC to show the mouse cursor if hidden)</center>
- <center><button id="bridgetest" disabled="true" onclick="onTestBridge();">Test JavaScript <-> TorqueScript Bridge</button></center>
- </div>
- </body>
- </html>
|