1

我正在尝试使用 ActionScript3 运行 Javascript。

这是绑定到按钮的代码:

import flash.external.ExternalInterface;

function call_javascript(evt:MouseEvent):void {
ExternalInterface.call("alert", "JS");
}

js_btn.addEventListener(MouseEvent.MOUSE_UP, call_javascript);

这是我的 HTML:

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400" id="js" align="middle">
    <param name="movie" value="js.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="js.swf" width="550" height="400">
        <param name="movie" value="js.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="Scarica Adobe Flash Player" />
        </a>
    <!--[if !IE]>-->
    </object>
    <!--<![endif]-->
</object>

当我按下按钮时没有任何反应,为什么?我正在使用 FlashProfessional CS6

4

1 回答 1

2

call() 方法将js 函数名和参数作为单独的参数。

试试这个:

ExternalInterface.call("alert", "JS");

编辑:您还需要在您的 HTML 页面中允许脚本访问。

将此添加到 SWF 的容器 HTML 页面

<param name='AllowScriptAccess' value='always'/>

例如:

<object id='MyMovie.swf' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.adobe.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0' height='100%' width='100%'> 
<param name='AllowScriptAccess' value='always'/> 
<param name='src' value=''MyMovie.swf'/> 
<embed name='MyMovie.swf' pluginspage='http://www.adobe.com/go/getflashplayer' src='MyMovie.swf' height='100%' width='100%' AllowScriptAccess='never'/> 
</object> 

编辑 2:仅当文件属于本地受信任的安全沙箱时,才可以在本地运行。从文档中:

对于本地运行的 SWF 文件,仅当 SWF 文件和包含网页(如果有)位于本地受信任的安全沙箱中时,对这些方法的调用才会成功。如果内容在 local-with-networking 或 local-with-filesystem 沙箱中,则对这些方法的调用会失败。

于 2013-09-12T15:38:05.947 回答