|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Apr 2010
Сообщений: 28
|
Не отрабатывает ExternalInterface.addCallback в браузерах, кроме IE.
Здравствуйте!
Есть такой код в as3: if (ExternalInterface.available) { ExternalInterface.addCallback("sendScores", onGetScores); //... } //............................... private function onGetScores(s:String):void { ExternalInterface.call("alert", "onget"); var tmp:Object = JSON.decode(s); if (tmp.status == "success") { playerScore = tmp.scores; playerTries = tmp.remaining_attempts; } //.... } <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <title>CoinGame</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css" media="screen"> html, body { height:100%; background-color: #ffffff;} body { margin:0; padding:0; overflow:hidden; } #flashContent { width:100%; height:100%; } </style> </head> <script language="javascript"> function flash_SetScores(gameid, scores) { $.ajax({ url: ServerName + "loadModule.php?module_name=scores&action=set&gid=" + gameid + "&scores=" + scores, success: flash_GetResponse }); } function flash_GetScores() { $.ajax({ url: ServerName + "loadModule.php?module_name=scores&action=get", success: flash_GetResponse }); } function flash_GetResponse(_data) { alert(thisMovie("CoinGame")); thisMovie("CoinGame").sendScores(_data); } function thisMovie(movieName) { if (navigator.appName.indexOf("Microsoft") != -1) return window[movieName]; else return document[movieName]; } </script> <body> <div id="flashContent"> <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="800" height="600" id="CoinGame" align="middle"> <param name="movie" value="CoinGame.swf" /> <param name="quality" value="high" /> <param name="bgcolor" value="#ffffff" /> <param name="play" value="true" /> <param name="loop" value="true" /> <param name="wmode" value="window" /> <param name="scale" value="showall" /> <param name="menu" value="true" /> <param name="devicefont" value="false" /> <param name="salign" value="" /> <param name="allowScriptAccess" value="always" /> <!--[if !IE]>--> <object type="application/x-shockwave-flash" data="CoinGame.swf" width="800" height="600"> <param name="movie" value="CoinGame.swf" /> <param name="quality" value="high" /> <param name="bgcolor" value="#ffffff" /> <param name="play" value="true" /> <param name="loop" value="true" /> <param name="wmode" value="window" /> <param name="scale" value="showall" /> <param name="menu" value="true" /> <param name="devicefont" value="false" /> <param name="salign" value="" /> <param name="allowScriptAccess" value="always" /> <!--<![endif]--> <a href="http://www.adobe.com/go/getflash"> <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /> </a> <!--[if !IE]>--> </object> <!--<![endif]--> </object> </div> </body> </html> Проблема в том, что в IE 8 коллбэк срабатывает и передаются нужные значения (хотя, кстати ExternalInterface.call("alert", "onget") не показывается). А вот через мозиллу вообще не дергается коллбэк из js в as3. В чем может быть такая проблема? Спасибо. |
|
|||||
Ещё не решили? Проблема может быть в том, что: первое, у вас в тегах object для не IE не указан ни id ни name, второе попробуйте обращаться через следующий синтаксис:
|
Часовой пояс GMT +4, время: 23:53. |
|
« Предыдущая тема | Следующая тема » |
Теги |
addcallback , externalinterface , JS , браузер |
|
|