首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Flash >

flash与as3调用有关问题请问

2012-03-04 
flash与as3调用问题请教在遨游下可以用,但是必须先发送flash到js,如果先发js到flash错误ie6下不能,火狐不

flash与as3调用问题请教
在遨游下可以用,但是必须先发送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加载成功后马上注册回调


ExternalInterface.addCallback("flashFunction", flashHander);

热点排行