最简单的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。
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。
相关文章推荐
- Gson解析json
- js数组的sort排序详解
- 【js类库Raphaël】基于svg中的path动态绘制40%表示的环型图
- for循环中变量i始终为length值的分析与解决
- 一步一步学JavaScript 开题篇【1】
- Dijstra算法 单源最短路径算法
- JSON 数据格式
- 第二章:JavaScript基本数据类型和运算符
- 2016年3月8日JS做的字母大小写转换工具
- 猴子吃桃递归和尾递归--JavaScript版
- js判断手机和pc端选择不同执行事件的方法
- JS判断客户端是手机还是PC的2个代码
- JavaScript 中的原型声明和用法总结
- javascript创建构造函数时作用域安全,即怎样保证一直都是构造函数
- 运行异常:已经计划系统关机
- json_encode 用法
- js正则表达式语法
- JavaScript学习笔记——引用类型:Array类型
- 58节沈大海H5edu.cn2016javaScript视频教程打包下载
- javascript兼容性大盘点