SWFObject是一个用于在HTML中插入Adobe Flash媒体资源(*.swf文件)的独立、敏捷的JavaScript模块。该模块中的JavaScript脚本能够自动检测PC、Mac机器上各种主流浏览器对Flash插件的支持情况。它使得插入Flash媒体资源尽量简捷、安全。
写法:
swfobject.embedSWF("swf","id","width","height","version","background-color",参数);
swf - SWF文件路径
id - 为这个SWF文件分配的id值,它将用于给embed与object标签设定name属性
width - 宽度
height - 高度
version - FlashPlayer需要的版本号,它可以详细到'主版本号.小版本号.细节'
background-color - Flash资源的背景色,16进制格式
参数 – web页面传递给swf的参数值
通过ExternalInterface类调用JavaScript
ExternalInterface 类是外部 API,这是一个在 ActionScript 和 Flash Player 容器之间实现直接通信的应用程序编程接口,Adobe 建议使用 ExternalInterface 实现 JavaScript 与 ActionScript 之间的所有通信。
(一)ActionScript调用 JavaScript
ActionScript代码:
ExternalInterface. call(functionName:String,..arguments):*
functionName: javaScript方法名
arguments: 参数(不传递参数或传递多个参数)
例如:
ExternalInterface.call(“callApp”,”abc”);
javaScript代码:
<script language="JavaScript">
function callApp(str) {
window.alert(str);
}
</script>
示例说明:当Flex把参数“abc”通过调用JS方法 callApp(str),把值传入到页面中,JavaScript会弹出一个显示为” abc ”的窗口信息。
(二)JavaScript调用ActionScript
javaScirpt也可以调用ActionScript,不同的是需要Flex事先将方法注册于容器中,这样javaScript才可以调用到。
ExternalInterface.addCallback(functionName:String,closure:Function);
addCallback()方法是允许javascript调用flex函数
functionName: flex自定义的方法名,供javascript调用
closeure: flex端自定义方法,当javascript调用后,需要做的逻辑处理
ExternalInterface.addCallback(“flexFunction”,resultHandler);
private function resultHandler():void{
Alert.show(“Hello”);
Java代码:
function callAs(){
//MyFlexApp是页面引入Flex的swf文件后所取的名字
MyFlexApp. flexFunction();
}
示例说明:
flex容器中事先注册了flexFunction()方法,当Java端调用了callAs()方法后,MyFlexApp容器就会捕获到flexFunction()方法,之后Flex会触发resultHandler()方法,在Flex容器中弹出一个为“Hello”的窗口。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。