通过Actionscript调用JS

时间:2013-09-12 15:12:48

标签: javascript actionscript-3

我正在尝试使用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

1 个答案:

答案 0 :(得分:2)

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

试试这个:

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

编辑:您还需要在HTML页面中allow script access

将此添加到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中   沙箱中。