最简单的as调用js

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。

posted on 2011-10-14 17:26  AS3.0  阅读(541)  评论(0编辑  收藏  举报

导航