最简单的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 容器公开的函数,不传递参数或传递多个参数。
{
ExternalInterface.call("testjs");
}
function testjs()
{
alert("as调用js方法");
}
</script>
<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>
这里解释一下,因为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。