swfobject调用写法简记

在引用swfobject.js括号内为下载地址(code.google.com/p/swfobject)后,如下这样使用即可,这样的好处在于可以方便的添加一些属性进去。自己也老是忘记一些属性,用的时候还需要去查,这次做个记录。

	$(function(){
		var flashvars = {},
			params = {wmode:"opaque"},
			attributes = {};
		swfobject.embedSWF("main.swf", "main", "1000", "600","9.0.0", "expressInstall.swf",flashvars,params,attributes);
	});

参考:

wmode 属性参数值有:

Window | Opaque | Transparent|direct|gpu等

“Window”   在 Web 页上用影片自己的矩形窗口来播放应用程序。“Window”表明 Flash 应用程序与 HTML 层没有任何交互,并且始终位于最顶层。

“Opaque”   使应用程序隐藏页面上位于它后面的所有内容。

“Transparent”   使 HTML 页的背景可以透过应用程序的所有透明部分进行显示,这样可能会降低动画性能。

“Opaque ”和“Transparent ” 都可与 HTML 层交互,并允许 SWF 文件上方的层遮蔽应用程序。这两种选项之间的差异在于“Transparent”允许透明,因此,如果 SWF 文件的某一部分是透明的,则 SWF 文件下方的 HTML 层可以透过该部分显示出来。

如果忽略此属性,默认值为 Window。仅适用于 object。

通常在flash上设置浮层时要用到wmode这一属性,由于想dreamweaver这类开发工具的object对象都不自带这一属性,所以想要实现flash上添加浮层时,要记得加上这一属性,并将其属性值设置为Opaque或Transparent。

2. 值得注意的是这几种模式下的transparent模式,会导致文本输入框 (InputText)输入不了中文,其他模式下没有这种问题。

资料:http://args.cn/post/2009/08/wmode-parameter-introduced-in-swfobject/

 

swfobject在ie不透明的解决方法

之前有篇文章说了“SWFObject 2的用法”,但是在做项目的时候,有个地方用到了需要flash透明,本来很简单的一个事情,在添加swfobject后却出现了在firefox下面透明,而ie下面不透明的问题,很是纠结,这是为什么呢。难道是swfobject对之支持不好,不应该吧。

但是由于时间问题,就匆匆找了另一种解决方法。即”Flash Player Detection Kit”,官方介绍网址为http://www.adobe.com/cn/products/flashplayer/download/detection_kit/ ,问题是解决了,但是代码相比swfobject多了很多,提交给程序后,还与现有脚本兼容性出现问题。

后来程序说利用swfobject解决了透明问题,今天才抽时间看了一下。原来很简单,记录以下,也说明swfobject是完美支持flash透明的,无愧网页调用flash最好解决方案。

原引用代码如下:

swfobject.embedSWF(“img/dot.swf”, “dot1”, “30”, “30”, “9.0.0”, “img/expressInstall.swf”,null,null,{wmode:”transparent”});

现引用代码如下:

swfobject.embedSWF(“img/dot.swf”, “dot3”, “30”, “30”, “9.0.0”, “img/expressInstall.swf”,null,{wmode:”transparent”},null);

仅仅是换了一个位置,正确的顺序很重要。

这是正确的顺序:

swfobject.embedSWF(swfUrl, id, width, height, version, expressInstallSwfurl, flashvars, params, attributes, callbackFn)

 

参考:http://code.google.com/p/swfobject/wiki/documentation

PS:多看文档好。

 

swfobject 载入swf文件置底方法

工作中遇到这样一个问题,页面的flash图表,在弹出登录窗口的上面,如果是普通的flash,直接使用wmode:wmode就可以了,但是由于钓面考虑,使用了swfobject,做了一些尝试,查了相关资料问题得到解决,总结一下方法。

写法 swfobject.embedSWF(“myContent.swf”, “myContent”, “300”, “120”, “9.0.0”,”expressInstall.swf”, flashvars, params, attributes);

另一种 swfobject.embedSWF(“myContent.swf”, “myContent”, “300”, “120”, “9.0.0”,”expressInstall.swf”,
{name1:”hello”,name2:”world”,name3:”foobar”}, {menu:”false”}, {id:”myDynamicContent”,name:”myDynamicContent”});

增加wmode属性 swfobject.embedSWF(“myContent.swf”, “myContent, “480”, “290”, “9.0.0”,””,{“data-file”:”#”},{“wmode”:”opaque”});

#替换加载文件路径