您的位置:首页 > Web前端 > JavaScript

最简单的as调用js

2016-03-09 00:00 399 查看
as跟js通讯 需要导入import flash.external.ExternalInterface;

ExternalInterface类有

属性 available:Boolean [静态] [只读 (read-only)] 指示此播放器是否位于提供外部接口的容器中。

objectID:String [静态] [只读 (read-only)] 在 Internet Explorer 中返回 object 标签的 id 属性,或者在 Netscape 中返回 embed 标签的 name 属性。

方法 addCallback(functionName:String, closure:Function):void [静态] 将 ActionScript 方法注册为可从容器调用。

call(functionName:String, ...arguments):* [静态] 调用由 Flash Player 容器公开的函数,不传递参数或传递多个参数。

例子:

AS3:

  if(ExternalInterface.available)

 {

  ExternalInterface.call("testjs");

     

     //另一种写法

     ExternalInterface.call("testjs", "as调用js方法");

}

web页面:

JS:

    <script language="Javascript" type="text/javascript">

    function testjs()

   {

    alert("as调用js方法");

   }

    //另一种写法

    function testjs(test)

    {

      alert(test);

    }

   </script>

添加swf:

    <object
id="s" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"      codebase="
http://download.macromedia.com/pub/shockwave/_cabs/flash/swflash.cab#version=6,0,29,0" width="800" height="600">

      <param name="movie" value="
s.swf" />

      <param name="quality" value="high" />

      <param name="
allowScriptAccess" value="sameDomain" />

      <param name="scale" value="exactfit" />

     <embed
name="s" src="
s.swf" quality="high" scale="exactfit" align="center" play="true" loop="false"
allowScriptAccess="sameDomain"
swliveConnect="true" pluginspage="
http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="800" height="600" ></embed>

    </object>

把粉红色的改为你的swf

红色部分要注意,一定要写上。

  这里解释一下,因为FLASH的安全沙箱问题

  所以除非服务器上承载 HTML 页,否则浏览器就会出现安全警告,而使脚本无效。

  
id="s"和
name="s"是设置FLASH Objects的ID名,此参数将在JS函数中获取FLASH数据的时候使用到。

  allowScriptAccess属性/参数
  值: always | never | samedomain
  说明: 使用 allowscriptaccess 使 Flash 应用程序可与承载它的 HTML 页通信。此参数是必需的,因为 fscommand() 和 getURL() 操作可能导致 JavaScript 使用 HTML           页的权限,而该权限可能与 Flash 应用程序的权限不同。这与跨域安全性有着重要关系。
  always 允许随时执行脚本操作。
  never 禁止所有脚本执行操作。
  samedomain 只有在 Flash 应用程序来自与 HTML 页相同的域时才允许执行脚本操作。
  所有 HTML 发布模板使用的默认值均为 samedomain。

  swLiveConnect属性
  值: true | false
  说明: (可选)指定第一次加载 Flash Player 时浏览器是否应启动 Java。如果忽略此属性,默认值为 false。如果在同一页面上同时使用 JavaScript 和 Flash,Java 必须处于运行状态,FSCommand() 函数才能起作用。但是,如果您运行 JavaScript 只是为了检测浏览器或用于其他与 fscommand() 动作无关的目的,则可以通过将 swliveConnect 设置为 false,从而防止 Java 启动。当没有将 JavaScript 和 Flash 一起使用时,也可以通过将 swliveConnect 属性明确设置为 true,强制 Java 启动。启动 Java 会显著增加启动 SWF 文件所需的时间,因此,只有在必要时才应将此标记设置为 true。仅适用于 embed。
使用 fscommand() 动作可从独立的放映文件中启动 Java。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: