我有js代码:
function onFlashReady() {
sendToAS("sit");
}
function callJS(value) {
onFlashReady();
return "Hi Flash.";
}
function thisMovie(movieName) {
if (navigator.appName.indexOf("Microsoft") != -1) {
return window[movieName];
} else {
return document[movieName];
}
}
function sendToAS(value) {
thisMovie("FlashID").callAS(value);
}
HTML:
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="850" Height="588" id="FlashID" tabindex="0">
<param name="movie" value="BusFlex/BusProducts.swf" />
<param name="quality" value="high" />
<param name="wmode" value="opaque" />
<param name="allowScriptAccess" value="always" />
<param name="swfversion" value="6.0.65.0" />
<param name="expressinstall" value="Scripts/expressInstall.swf" />
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="BusFlex/BusProducts.swf" width="850" height="588">
<!--<![endif]-->
<param name="quality" value="high" />
<param name="wmode" value="opaque" />
<param name="allowScriptAccess" value="always" />
<param name="swfversion" value="6.0.65.0" />
<param name="expressinstall" value="Scripts/expressInstall.swf" />
<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="Get Adobe Flash player" width="112" height="33" /></a></p>
</div>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
<script src="Scripts/swfobject_modified.js" type="text/javascript"></script>
<script type="text/javascript">
<!-- swfobject.registerObject("FlashID"); //-->
</script>
</div>
和动作代码:
protected function application1_creationCompleteHandler(event:FlexEvent):void
{
flash.system.Security.allowDomain("http://mysite.ru");
flash.system.Security.allowDomain("http://localhost");
if(ExternalInterface.available)
{
ExternalInterface.addCallback("callAS", fromJS);
}
ExternalInterface.call("callJS", "Hello JS!");
}
public function fromJS(str:String):void
{
...
}
但它仅适用于IE。在FF中,这不起作用。请帮帮我。
答案 0 :(得分:1)
看起来问题出在你的flash嵌入式html中,Mozilla浏览器依赖于embed
标记但你再次拥有object
。尝试在对象节点中使用类似的东西:
<embed type="application/x-shockwave-flash" data="BusFlex/BusProducts.swf" width="850" height="588" allowscriptaccess="always">
</embed>
答案 1 :(得分:1)
谢谢!我正在寻找两天的答案! 这是我的新代码:
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="850" height="588" id="FlashID" tabindex="0">
<param name="movie" value="BusFlex/BusProducts.swf" />
<param name="quality" value="high" />
<param name="wmode" value="opaque" />
<param name="allowScriptAccess" value="always" />
<param name="swfversion" value="6.0.65.0" />
<param name="expressinstall" value="Scripts/expressInstall.swf" />
<!--[if !IE]>-->
<embed src="BusFlex/BusProducts.swf" type="application/x-shockwave-flash" data="BusFlex/BusProducts.swf" width="850" height="588" allowscriptaccess="always" name="FlashID">
<param name="quality" value="high" />
<param name="wmode" value="opaque" />
<param name="allowScriptAccess" value="always" />
<param name="swfversion" value="6.0.65.0" />
<param name="expressinstall" value="Scripts/expressInstall.swf" />
<!--<![endif]-->
<!--[if IE]>
<div>
<h4>YCTAHOBUTE 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="Get Adobe Flash player" width="112" height="33" /></a></p>
</div>
<![endif]-->
<!--[if !IE]>-->
</embed>
<!--<![endif]-->
</object>