虽然用Dreamweaver插入一个flash对象很简单,但有没有对其中对象属性有过了解呢?
<object></object>
用于包含诸如图片(不推荐,请使用<img>)、音频、视频、Java applets、ActiveX、PDF、Flash等
下面来介绍一个基本兼容所有浏览器的写法,看例子中,学属性
<object? type="application/x-shockwave-flash"? data=“path.swf"? width=“800" height=“600”>
?? ?<param name="movie" value=" path.swf " /> <!--注意到这个value的值和前面的data值是一样的-->
?? ? <param name=“…" value=" … " />
?? ? <param name=“…" value=" … " />
?? ?<param name=“…" value=" … " />
?? ?<a href=“go/getflashplayer">
?? ??? ?<img src=“get_flash_player.gif" alt="Get Adobe Flash player" /><!--这里是如果object对象失败显示的内容,提供给你下载player连接-->
?? ?</a>
?? ?…..
</object>
基本的形式如上所示
<obejct>标签属性
id??????????
name
class
classid?? ??? ?Windows 注册表值 || URL??? !HTML5
type?? ??? ?MIME 类型?? ??? ? ?? ??? ?
data?? ??? ?Object数据位置?? ????
flash的固定classid :? clsid:D27CDB6E-AE6D-11cf-96B8-444553540000(我们推荐的写法不需要用到这个,太恶心了,我记不住)
兼容IE的一个写法是
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="950" height="203" id="myFlashContent">
<param name="movie" value="http://img01.taobaocdn.com/tps/i1/T1S1tkXgliy0NtxVjX.swf" />
<param name="allowfullscreen" value="true" />
<param name="allowscriptaccess" value="always" />
<param name="allownetworking" value="all" />
<param name="flashvars" value="jdata=[{'href':'http://bbs.taobao.com/catalog/thread/154505-5469566.htm','img':'http://img01.taobaocdn.com/tps/i1/T1QmpuXnNjXXXXXXXX-160-170.jpg','text':'淘宝美容馆达人召集令'},{'href':'http://bbs.taobao.com/catalog/thread/154506-5112835.htm','img':'http://img08.taobaocdn.com/tps/i8/T1WvFuXd4dXXXXXXXX-160-170.jpg','text':'我是什么控开招晒客'},{'href':'http://bangpai.taobao.com/group/thread/40046-5062800.htm','img':'http://img07.taobaocdn.com/tps/i7/T1ilFuXb4uXXXXXXXX-160-170.jpg','text':'古典性感清纯?'},{'href':'http://bangpai.taobao.com/group/thread/40046-5543420.htm','img':'http://img08.taobaocdn.com/tps/i8/T1c8FuXeXuXXXXXXXX-160-170.jpg','text':'麻辣老妈S身材'}]" />
<param name="wmode" value="transparent" />
<a href="http://www.adobe.com/go/getflashplayer">
<img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
</a>
</object>
</object>
经测试,在ie上有效,在firfox上无效
<object>标签下的子节点<param>是干什么的?
<param>标签属性(Attributes)
name?? ??? ?唯一标识符
value ?? ??? ?规定参数的值
<param>是<obejct>的运行时(run-time)配置(只是配置,和<div>啊<form>这些标签不一样,它是用来配置flash对象属性的,非可视化)
因此在使用类似Firebug HTML 修改HTML此节点属性是无效的。
传入的是变量(variables)或参数(parameters)
flash常量属性如下:
movie? :必选,flash文件的存放路径?? <param name="movie" value="path.swf">
wmode? :
可选
window?? ??? ?“最顶端”?? ??? ?“独立窗口” ???
opaque?? ??? ?“带背景色”?? ??? ?“嵌入”
transparent?? ?“透明背景”?? ??? ?“嵌入”???? 可能降低动画性能?
默认?? ?window
解决HTML层次问题请使用”嵌入” 的属性。
<param? name=“ wmode ”? value=“opaque ”>? <!-- 页面背景没有要求用 -->
<param? name=“ wmode ”? value=“transparent ”>? <!-- 页面背景有要求用 -->
flashvars:
可选
发送根级变量(root level variables)给Flash对象
最大64KB字符串容量
&分隔开的name = variable的组合
特殊或/和不可打印字符需要转换。
variable? 的值可能 需要?? encodeURIComponent
单一一个空格可以用?? +? 表示
类同?? movie.swf ? a=1&b=2
这个属性是我最看不懂的,原因在于我完全不懂flash,经过和qier的讨论,得出一个这样的理解:我们可以把.swf文件(就是flash文件)看作一个java类,flashvars就是向这个类传递了参数,看下面三个例子:
<parm name="flashvars" value="a=1"/>
<param name="flashvars" value="b=2&c=3" />
<param name=“flashvars” value=“jsonData={'a':1,'b':2,'c':3}" />
这就像页面的url传参了,例子1是把a的值传给了.swf对象,例子2是把b,c的值传给了.swf对象,而例子3是用了json的数据交换方式传了a,b,c的值给了.swf对象
大家可以运行下这个例子
<html>
<head>
<title>flash</title>
</head>
<body>
<object type="application/x-shockwave-flash" data="http://img01.taobaocd
n.com/tps/i1/T1S1tkXgliy0NtxVjX.swf" width="950" height="203" id="myFlashConten
t">
<param name="movie" value="http://img01.taobaocdn.com/tps/i1/T1S1tkXgl
iy0NtxVjX.swf" />
<param name="allowfullscreen" value="true" />
<param name="allowscriptaccess" value="always" />
<param name="allownetworking" value="all" />
<param name="flashvars" value="jdata=[{'href':'http://bbs.taobao.com/catalog
/thread/154505-5469566.htm','img':'http://img01.taobaocdn.com/tps/i1/T1QmpuXnNj
XXXXXXXX-160-170.jpg',{'href':'http://bbs.taobao.com/cata
log/thread/154506-5112835.htm','img':'http://img08.taobaocdn.com/tps/i8/T1WvFuXd
4dXXXXXXXX-160-170.jpg',{'href':'http://bangpai.taobao.com
/group/thread/40046-5062800.htm','img':'http://img07.taobaocdn.com/tps/i7/T1ilFuXb
4uXXXXXXXX-160-170.jpg',{'href':'http://bangpai.taobao.com/gr
oup/thread/40046-5543420.htm','img':'http://img08.taobaocdn.com/tps/i8/T1c8FuXeX
uXXXXXXXX-160-170.jpg','text':'麻辣老妈S身材'}]" />
<param name="wmode" value="transparent" />
<a href="http://www.adobe.com/go/getflashplayer">
<img src="http://www.adobe.com/images/shared/download_buttons/ge
t_flash_player.gif" alt="Get Adobe Flash player" />
</a>
</object>
</body>
</html>
这个例子用flashvars的方法向flash对象传了四组参数(用了json数据传递),每组数据里面分别有”href","img","text",这三个变量,我们来看下这个flash源码的主函数,把flash下载下来,用SWFDecompiler4.5查看源码),如图:

allowscriptaccess:
可选
always?? ??? ?
来自任何域都可和当前承载页js通讯。
sameDomain?? ?
只有和Flash对象来源域相同的页面允许js通讯。
never
关闭承载页和Flash对象通讯。
默认sameDomain? (Flash player 9.0.115.0+ )
allowfullscreen:
可选
true?? ??? ?允许Flash对象全屏显示
false?? ??? ?不允许全屏模式
默认值?? ?false
Flash Player 9.0.27.0+
Flash 对象的显示控制参数
play:
可选
true?? ??? ??? ?
false
默认false
加载Flash对象后是否立刻开始播放
loop:
可选
true
false
默认false
播放到最后一帧时是否重新开始播放。
menu:
可选
true?? ??? ?显示完整的菜单
false?? ??? ?仅仅显示设置选项和about选项
默认true
右键点击Flash对象时的右键菜单
quality:
可选
best?? ??? ?
high
autohigh
medium
autolow
low
默认 high
回放期间使用的消除锯齿级别
类似menu为true时“品质”调节
scale:
可选
showall ?? ?显示全部?? ?保持原始宽高比
noborder ?? ?无边界?? ?保持原始宽高比?? ?
exactfit?? ??? ?适应性填充?? ?不保持原始宽高比
noscale?? ??? ?不缩放?? ?原始高宽
默认showall
可视区域的缩放模式。
salign:
可选
l ?? ??? ?按左边对齐
t?? ??? ??? ?按上边对齐
r?? ??? ??? ?按右边对齐
b?? ??? ??? ?按下边对齐
tl?? ??? ?按左上边对齐
tr?? ??? ?按右上边对齐
bl?? ??? ?按左下边对齐
br?? ??? ?按右下边对齐
缩放对齐方式。
缩放时,按照此规则进行贴边对齐,如果有需要则剪掉其他边。
bgcolor:
可选
#RRGGBB?? ?(十六进制 RGB 值)
Flash 对象背景色
当wmode为非?? ?transparent时有效。
devicefont:
可选
true
false
默认false
对于未选定“设备字体”选项的静态文本对象是否仍使用设备字体进行绘制。
Flash包含了3种设备字体
_sans (类似 Helvetica 或 Arial)
_serif (类似? Times Roman)
_typewriter (类似 Courier)
那你也许问,那flash的播放控制按钮在哪?这个还不知道flash对象有没有提供这方面的可视化界面,不过俱我现在所知,是用js调用api接口实现的,再学习……