在彻底摒弃Adobe的激活ActiveX控件的方法一文中已经详细分析了使用Adobe提供的AC_RunActiveContent.js导致HTML与Flash之间不能传递参数的问题。经过Adobe论坛里GWD的提示,我转而寻求SwfObject的帮助。发现SwfObject是一个很好的解决方案。
SwfObject英文介绍:http://blog.deconcept.com/swfobject/
SwfObject中文翻译:http://www.awflasher.com/flash/articles/swfobj.htm
源文件:SWFObject 1.5
关于SwfObject的介绍上面两篇文章已经讲的很详细了。我这里只列一段标准的应用和一些上面两篇文章没有提到的问题.
Html中的JS代码
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
// <![CDATA[
var so = new SWFObject("asCallJs.swf", "MyDemo", "500", "400", "9", "#FF6600");
so.addVariable("param1", "Parameter1"); // this line is optional, but this example uses the variable and displays this text inside the flash movie
so.addVariable("param2", "Parameter2");
so.useExpressInstall('expressinstall.swf');
so.write("flashcontent");
// ]]>
</script><!--被AS调用的JS函数-->
<script language="Javascript">
// <![CDATA[
// adds two numbers, and sends the result back to ActionScript
function addNumbers(num1, num2)
{
result=num1 + num2;
alert("3+7=" + result);
return (result);
}
// ]]>
</script>
Flash中的AS代码
//****************调用JS函数,得到返回值*****************
var n1:uint = 3;
var n2:uint = 7;
if (ExternalInterface.available) {
var res:uint = ExternalInterface.call(”addNumbers”, n1, n2);
function_txt.text=”3+7=”+res.toString();
}
//****************直接得到JS中参数****************
//AS2中做法
//param1_txt.text=param1;
//AS3中做法
param1_txt.text=this.loaderInfo.parameters.param1;
param2_txt.text=this.loaderInfo.parameters.param2;
注:如果要在AS3中用OOP来操作的话,需要专门构建一个类,用它其中的静态变量来存储全局变量,要使用这些变量的类先继承它(Storing SWFObject.addVariable() vars globally in AS3)。
分享到:
相关推荐
这个小巧的库解决了早期网页中嵌入Flash时出现的一些问题,如浏览器兼容性、自适应性以及提供HTML备用内容等。SWFObject 的出现使得Web开发者能够更加灵活和方便地控制Flash对象,同时确保非Flash支持的设备或浏览器...
3. **参数设置**:SWFObject.js允许开发者设置各种Flash对象的属性,如宽度、高度、版本等,还可以传递变量到Flash应用程序,实现动态交互。 4. **SEO友好**:通过使用SWFObject.js,搜索引擎爬虫可以读取到替代的...
1. Flash参数与变量:通过`flashvars`、`params`和`attributes`对象,你可以传递Flash所需的各种参数,如`quality`、`wmode`、`allowScriptAccess`等,以及自定义变量。 2. 动态插入:SWFObject可以动态地在页面加载...
要使用JavaScript向SWF文件传递参数,我们首先需要理解SWF文件是什么,以及如何通过JavaScript与之交互。SWF是Flash动画文件的标准格式,虽然Adobe Flash已经被逐渐淘汰,但是仍有一些遗留系统或项目会使用到它。...
SWFObject不仅支持简单的Flash对象嵌入,还允许在SWF文件与JavaScript之间进行数据交互。这通常通过向`embedSWF()`方法传递额外的参数实现: - `flashvars`参数:用于传递Flash变量,这些变量可以在Flash电影内部...
`swfobject`是一个开源的JavaScript库,由格雷格·劳(Greg Lafrance)创建,主要用于解决浏览器兼容性问题,使得在网页上无缝嵌入Flash内容成为可能。它通过动态替换HTML元素的方式来加载SWF(Flash文件),并且支持...
- **传递参数**:通过WebBrowser控件的Document属性,你可以访问到HTML文档的对象模型,进而使用JavaScript调用SwfObject的方法,传递Delphi程序中的数据到Flash。 4. **示例应用** 一个常见的应用场景是创建一个...
- SWFObject 2.1 支持参数传递,允许开发者定制Flash对象的属性,如宽度、高度、颜色、背景等,增强了对Flash内容的控制。 - 库的大小较小,易于整合到项目中,同时其API设计简洁,使得开发者可以轻松理解和使用。...
在HTML4和HTML5文档中,直接内联插入Flash内容会破坏文档结构,不符合语义化原则,而SWFObject通过动态插入技术解决了这个问题。 使用SWFObject.js的步骤大致如下: 1. **引入SWFObject.js**:在HTML文件中,通过`...
在SWFObject中,RTMP服务器的URL通常作为参数传递给Flash播放器,以便播放器知道从哪里获取直播流。修改这个地址,就可以适应不同的直播源,例如从本地服务器切换到远程服务器。 其次,理解SWFObject的工作流程。当...
SWFObject.js解决了早期Flash插件检测和内容呈现的问题,提供了跨浏览器的兼容性。 ### SWFObject.js的起源 SWFObject.js最初由Gregory Lindhorst开发,并由Joel Spolsky进一步完善。它的核心功能是动态检测用户的...
开发者可以通过JS代码给FLASH传递参数,如so.addVariable("arg1", "test1"),并且需要注意的是,由于JS与FLASH之间的通信是通过字符串进行的,所以在FLASH端需要进行适当的类型转换,以便正确处理Number型变量。...
本主题主要关注Flash与HTML以及C#程序之间的交互,这种交互通常涉及到浏览器中的富媒体内容(如Flash)与服务器端或客户端应用程序(如C#)的数据交换。下面将详细讨论相关知识点。 首先,Flash作为一种强大的...
其他参数如`{}`和`""`分别用于传递额外的Flash参数和FlashVars,而`"flashDemo.html"`则作为替代内容。 最后,`mycar1.swf`是实际的Flash文件,可能是包含动画、游戏或互动元素的二进制文件。这个文件会被HTML页面...
例如,你可以在Flash中定义一个函数,然后在JavaScript中调用它,或者从JavaScript向Flash传递数据。 **安全和兼容性问题**: 虽然SWFObject提供了很好的跨浏览器兼容性,但随着Flash的退役,越来越多的安全问题浮...
一旦Flash加载完成,JavaScript可以使用`swfObject.getFlashById`获取Flash对象引用,然后调用`call`方法,传递要执行的ActionScript函数名和参数。 4. **Flash 调用 JavaScript**:在Flash ActionScript中,首先...
3. **External Interface**:在Flash中,可以启用External Interface,使得Flash与JavaScript之间可以进行双向通信。ASP可以通过JavaScript调用Flash公开的AS3方法,从而影响Flash的运行。 【ActionScript与ASP交互...
基于这些信息,这篇博客文章可能会讲解如何设置`ExternalInterface`以实现在Flash和JavaScript之间的数据传递,例如从JavaScript向Flash传递参数启动动画,或者从Flash中调用JavaScript函数更新页面内容。...
2. **Flash参数传递**: JavaScript可以通过`<object>`或`<embed>`标签的参数来传递数据给Flash播放器,例如设置播放源、控制播放状态等。 3. **ActionScript接口**: Flash播放器内部通常用ActionScript编写,这是一...