zoukankan      html  css  js  c++  java
  • 最简单的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。

  • 相关阅读:
    继承关系中子类使用@Data注解问题
    Professional, Entreprise, Architect版本的区别
    Delphi中ARC内存管理的方向
    技术的止境(客户价值第一,快速实现第二,边做边学,迅速成为牛人。紧贴客户的需求去做技术,立于不败之地。追求的目标:把一项产品去做好,用产品去养活自己和家人)good
    C++ 函数模板与类模板(使用 Qt 开发编译环境)
    C++进阶之虚函数表
    Net反编译软件
    python虚拟环境--virtualenv和virtualenvwrapper
    Windows同时安装python3和python2
    python的pip源在windows和linux修改
  • 原文地址:https://www.cnblogs.com/sange/p/1641179.html
Copyright © 2011-2022 走看看