在遨游下可以用,但是必须先发送flash到js,如果先发js到flash错误
ie6下不能,火狐不能,请教怎么回事,代码全部提供
- C# code
import flash.external.ExternalInterface; import flash.events.MouseEvent; btn.addEventListener(MouseEvent.CLICK,clickHandler); function clickHandler(evt:MouseEvent) { ExternalInterface.call('jsFunction',txt.text); ExternalInterface.addCallback("flashFunction", flashHander); } function flashHander(msg:String) { result.text=msg; }
- HTML code
<script src="Scripts/swfobject_modified.js" type="text/javascript"></script> <object id="FlashID" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="550" height="100"> <param name="allowScriptAccess" value="always" /> <param name="movie" value="FlashToJs.swf" /> <param name="quality" value="high" /> <param name="wmode" value="opaque" /> <param name="swfversion" value="6.0.65.0" /> <!-- 此 param 标签提示使用 Flash Player 6.0 r65 和更高版本的用户下载最新版本的 Flash Player。如果您不想让用户看到该提示,请将其删 除。 --> <param name="expressinstall" value="Scripts/expressInstall.swf" /> <!-- 下一个对象标签用于非 IE 浏览器。所以使用 IECC 将其从 IE 隐藏。 --> <!--[if !IE]>--> <object type="application/x-shockwave-flash" data="FlashToJs.swf" width="550" height="100"> <!--<![endif]--> <param name="allowScriptAccess" value="always" /> <param name="quality" value="high" /> <param name="wmode" value="opaque" /> <param name="swfversion" value="6.0.65.0" /> <param name="expressinstall" value="Scripts/expressInstall.swf" /> <!-- 浏览器将以下替代内容显示给使用 Flash Player 6.0 和更低版本的用户。 --> <div> <h4>此页面上的内容需要较新版本的 Adobe Flash Player。</h4> <p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="获取 Adobe Flash Player" width="112" height="33" /></a></p> </div> <!--[if !IE]>--> </object> <!--<![endif]--> </object> <div style="background:#eee;width:500px;height:30px;padding:10px;border:solid 1px #000;"> <input type="text" name="text" id="text" value="" style="width:300px;" /> <input type="button" name="button" id="button" value="发送给Flash" onclick="clickme()"/> </div> <script type="text/javascript"> swfobject.registerObject("FlashID"); function jsFunction(msg) { document.getElementById("text").value=msg; } function clickme() { var msg=document.getElementById("text").value; document.getElementById("FlashID").flashFunction(msg); } var name = navigator.appName; // 获取浏览器名称 var version = parseFloat(navigator.appVersion); // 获取浏览器版本 var userAgent = navigator.userAgent; // 获得浏览器商家信息 document.write( " 浏览器名称: " + name + " <br> " ); document.write( " 浏览器版本: " + version + " <br> " ); document.write( " 浏览器商家信息: " + userAgent); </script>
------解决方案--------------------
你要发给js的时候才注册回调,js先发给flash的时候,flash还没注册回调啊。在flash加载成功后马上注册回调