JavaScript向Flash SWF传递参数详解及注意事项
160 浏览量
更新于2024-09-02
收藏 87KB PDF 举报
在JavaScript与Flash SWF文件交互时,传递参数是一项常见的任务,特别是在网页动态加载或与外部Flash应用协同工作时。本文档提供了一个详细的指南,教你如何使用SwfObject库来实现这一过程。
首先,SwfObject是一个广泛使用的JavaScript库,用于检测用户的Flash Player版本。它被业界认为是检测工具的标准,并且被Adobe产品,如Flex4和Flash CS5,所采用。为了使用SwfObject,你需要下载并将其swfobject.js文件放置到你的Web服务器的根目录下的“js”文件夹中。如果打算启用ExpressInstall功能,还需要将expressInstall.swf一同放入该文件夹。
在HTML文件中,你需要包含两个JavaScript脚本。第一个脚本负责从URL中解析和获取参数。这个脚本,由Matt White创建,通过检查URL中的查询字符串来获取特定参数值,代码如下:
```javascript
<script type="text/javascript">
function getURLParam(strParamName) {
var strReturn = "";
var strHref = window.location.href;
if (strHref.indexOf("?") > -1) {
var strQueryString = strHref.substr(strHref.indexOf("?"));
var aQueryString = strQueryString.split("&");
for (var iParam = 0; iParam < aQueryString.length; iParam++) {
if (aQueryString[iParam].indexOf(strParamName + "=") === 0) {
strReturn = decodeURIComponent(aQueryString[iParam].split("=")[1]);
break;
}
}
}
return strReturn;
}
```
这个`getURLParam`函数接受一个参数名作为输入,然后遍历URL的查询字符串,查找是否存在该参数并返回其值。如果找到,使用`decodeURIComponent`解码值后返回。
当你需要在JavaScript中向SWF文件传递参数时,可以在调用SWF对象时,将参数作为额外的参数传递。例如,如果你有一个嵌入的SWF对象,你可以这样操作:
```html
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="550" height="400">
<param name="movie" value="myFlashApp.swf">
<!-- 传递参数 -->
<param name="myCustomParam" value="从JavaScript获取的值">
<!-- 其他参数... -->
<embed src="myFlashApp.swf" pluginspage="http://www.adobe.com/go/getflashplayer"
type="application/x-shockwave-flash" width="550" height="400"
myCustomParam="从JavaScript获取的值">
</object>
```
在这个例子中,`myCustomParam`参数是在`<embed>`标签中直接设置的,它的值是从JavaScript的`getURLParam`函数获取的。这样,当Flash应用程序运行时,它就能接收到从JavaScript传递过来的参数。
通过SwfObject库和HTML中的适当编码,你可以方便地在JavaScript和Flash SWF文件之间进行参数传递,这对于构建动态交互的网页应用非常有用。记得确保用户的浏览器支持Flash,并根据实际需求调整代码,以满足项目的特定需求。
2019-03-24 上传
2011-07-28 上传
2020-12-10 上传
2012-07-22 上传
2011-03-04 上传
2009-08-13 上传
2015-07-30 上传
2022-09-23 上传
2008-07-20 上传
weixin_38734993
- 粉丝: 3
- 资源: 938
最新资源
- SSM动力电池数据管理系统源码及数据库详解
- R语言桑基图绘制与SCI图输入文件代码分析
- Linux下Sakagari Hurricane翻译工作:cpktools的使用教程
- prettybench: 让 Go 基准测试结果更易读
- Python官方文档查询库,提升开发效率与时间节约
- 基于Django的Python就业系统毕设源码
- 高并发下的SpringBoot与Nginx+Redis会话共享解决方案
- 构建问答游戏:Node.js与Express.js实战教程
- MATLAB在旅行商问题中的应用与优化方法研究
- OMAPL138 DSP平台UPP接口编程实践
- 杰克逊维尔非营利地基工程的VMS项目介绍
- 宠物猫企业网站模板PHP源码下载
- 52简易计算器源码解析与下载指南
- 探索Node.js v6.2.1 - 事件驱动的高性能Web服务器环境
- 找回WinSCP密码的神器:winscppasswd工具介绍
- xctools:解析Xcode命令行工具输出的Ruby库