别告诉我有Bug 2011-07-15
一、介绍
要在网页中正常显示flash内容,那么页面中必须要有指定flash路径的标签。也就是object和embed标签。object标签用于 windows的IE浏览器,而embed用于windows和macintosh(苹果机)平台下的Netscape Navigator浏览器以及macintosh平台下的IE浏览器,windows平台的IE利用Activex控件播放flash而其他平台则用 Netscape插件技术来播放flash。
下面是简单的网页中插入flash的代码示例:
<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"
width="550"height="400"id="myMovieName">
<PARAMNAME=movieVALUE="myFlashMovie.swf">
<PARAMNAME=qualityVALUE=high>
<PARAMNAME=bgcolorVALUE=#FFFFFF>
<EMBEDsrc="/support/flash/ts/documents/myFlashMovie.swf"quality=highbgcolor=#FFFFFFwidth="550"height="400"
name="myMovieName"ALIGN=""type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer">
</EMBED>
</OBJECT>二、为什么要使用以上全部的标签?能否省略某些标签? OBJECT标签是用于windows IE3.0及以后浏览器或者其它支持Activex控件的浏览器。“classid”和“codebase”属性必须要精确地按上例所示的写法写,它们告诉浏览器自动下载flash player的地址。如果你没有安装过flash player 那么IE3.0以后的浏览器会跳出一个提示框访问是否要自动安装flash player。当然,如果你不想让那些没有安装flash player的用户自动下载播放器,或许你可以省略掉这些代码。
EMBED标签是用于Netscape Navigator2.0及以后的浏览器或其它支持Netscape插件的浏览器。
pluginspage 属性告诉属性告诉浏览器下载flash player的地址,如果还没有安装flash player的话,用户安装完后需要重启浏览器才能正常使用。
为了确保大多数浏览器能正常显示flash,你需要把EMBED标签嵌套放在OBJECT标签内,就如上面代码例子一样。支持Activex控件的浏览器将会忽略OBJECT标签内的EMBED标签。Netscape和使用插件的IE浏览器将只读取EMBED标签而不会识别OBJECT标签。也就是说,如果你省略了EMBED标签,那firefox就不能识别你的flash了(不过纳闷的是,省略了object只写embed,IE也能正常显示flash,呵呵,具体的再仔细看看了)。
FlashOBJECT和EMBED标签属性
一、必需属性:
·CLASSID-设置浏览器的Activex控件,仅用于OBJECT标签。
·CODEBASE-设置flashActivex控件的位置,因而如果浏览器如果没有安装的话,可以自动下载安装。仅用于OBJECT标签。
·WIDTH-以百分比或象素指定flash影片的宽度。
·HEIGHT-以百分比或象素指定flash影片的高度。
·SRC-指定影片的下载地址。仅用于EMBED标签。
·PLUGINSPAGE-设置flash插件的位置,因而如果浏览器如果没有安装的话,可以自动下载安装。仅用于EMBED标签。
·MOVIE-指定影片的下载地址。仅用于 OBJECT标签。二、可选属性及可用的值:
·ID-设定变量名,用于脚本代码的引用。仅用于OBJECT。
·NAME-设定变量名,用于脚本代码(如javascript)的引用。仅用于EMBED。
·SWLIVECONNECT - (true或false)指定当flash player第一次下载时,是否启用java。如果属性省略,默认值为false。如果你在相同页面使用javascript和 flash,java必须使用FSCommand来工作。·PLAY -(true或false)指定flash影片是否在下载完成后就自动播放,如果省略此 属性,则默认为true。
·LOOP-(true或false)指定影片播放完最后一帧后是停止还是继续循环播放,如果省略此属性,则默认为true。
·MENU-(true或false)
·True显示全部的菜单,允许用户放大,缩小等控制影片播放等操作。
·False显示只包含设置选项和关于flash的菜单。
·QUALITY-(low,high,autolow,autohigh,best)
·Low速度优于美观,而且不应用反锯齿。
·Autolow刚开始着重于速度,但当需要时随时提升美观。
·Autohigh同时着重播放速度和美观,但需要时则牺牲美观来保证播放速度。
·Medium应用一些反锯齿而不平滑位图。它质量高于low设置而低于high设置。
·High美观优于播放速度,而且一直应用反锯齿。如果影片不包含动画,位图会被平滑化;而如果影片包含动画,位图将不变平滑。
·Best提供最好的显示质量而不考虑播放速度。所有输出都应用反锯齿及所有位图都被平滑化。
·SCALE-(showall,noborder,exactfit)
·Default(Showall)影片在指定的区域内显示,但保持原始的比例。影片两侧将会出现边框。
·No Boder 收缩影片以适合指定的区域,保持影片不失真,但部分影片将可能将裁切。然而保持影片的原始比例。·Exact Fit 使整个影片在指定的区域内显示,影片有可能变形失真,而且不保持原始的比例。
·ALIGN-(l,t,r,b)
·默认为居中,当浏览器窗口小于影片时,边缘会被裁切。
·Left,Right,Top,Bottom按照相应的设置沿浏览器的边缘对齐。如果需要,另外三边将被裁切。
·SALIGN-(l,t,r,b,tl,tr,bl,br)
·L,R,T,B
·TL,TR
·BL,BR
·WMODE-(window,opaque,transparent)设置flash影片的windowmode属性,指定flash在浏览器中的透明,层叠及位置。
·Window影片在浏览器中自己的矩形窗口内播放。
·Opaque影片隐藏了所有在它后面的内容。
·Transparent使flash影片透明,显示透明影片后面的网页内容。这将会降低动画的性能。而且这个属性不是在所有浏览器中都可用的。
<objectid="pageLodimgFlash"classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000">
<paramname="wmode"value="Transparent"/>
<paramname="allowScriptAccess"value="sameDomain"/>
<paramname="movie"value="<?=$minigame_flash_url?>">
<paramname="quality"value="high"><!--高清质-->
<paramname="allowFullScreen"value="true"><!--可以全屏-->
<paramname="FlashVars"value="ret=/cymap/minigame/common/game_interface.php&pktype=<?=$pktype?>&pkuid=<?=$pkuid?>&pkname=<?=$pkname?>&gameid=<?=$gameid?>&bookid=0">
<embedsrc="<?=$minigame_flash_url?>"id="em_flash"wmode="Transparent"quality="high"width="560"height="430"align="middle"swliveconnect="true"allowfullscreen="true"flashvars="ret=/cymap/minigame/common/game_interface.php&pktype=<?=$pktype?>&pkuid=<?=$pkuid?>&pkname=<?=$pkname?>&gameid=<?=$gameid?>&bookid=0"pluginspage="http://www.macromedia.com/go/getflashplayer">
</object>
遇到的问题是js的弹出被flash盖住了,但是加了如上两个wmode="Transparent",就不会被盖住了。2009-5-29又发现一个问题,就是一旦加上这个属性,其页面的上下键会控制住整个页面。等周一还是跟产品沟通一下吧,看看是要效果,还是要功能。
·BGCOLOR-(#RRGGBB,十六进制RGB值。)指定影片的背景颜色。使用这个属性覆盖flash中设定的背景颜色。
·BASE设定基准目录或URL,用来解决所以flash中的相对路径。类似网页中的<base>标签。
·FLASHVARS传递变量到flashplayer,需要flashplayer6及以后的版本。
·传递root级变量到影片。字符串的格式是用“&”分隔的name=value集。
·浏览器支持64kB大小的字符串长度。
·更多关于FlashVars的信息,请查看相关文档。