Weitere ähnliche Inhalte Ähnlich wie Flash对象在(X)Html中的格式和参数及安全性 (20) Flash对象在(X)Html中的格式和参数及安全性1. <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="400" height="300" id="movie" > <param name="movie" value="movie.swf"/> <embed src="movie.swf" quality="high" width="400" height="300" name="movie" type="application/x-shockwave-flash" plug inspage="http://www.macromedia.com/go/getflashplayer"/> </object> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="800" height="600" id="myFlashContent"> <param name="movie" value="untitled.swf" /> <!--[if !IE]>--> <object type="application/x-shockwave-flash" data="untitled.swf" width="800" height="600"> <!--<![endif]--> <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> <!--[if !IE]>--> </object> <!--<![endif]--> </object> Flash对象在(x)HTML中的格式和参数及安全性 龙藏 || KingFo 2010-03-11 内网: longzang@taobao.com 外网:oicuicu@gmail.com 2. 1. 约定 !HTML5 表示非HTML5规范。 !IE表示非微软IE浏览器。 IE 表示仅微软IE浏览器 属性、标签和参数都基本采用小写,以符合XHTML规范。 承载页:即Flash对象承载的 HTML页面及其运行环境。 适用主流浏览器: 图片来源:http://microidc.com/tb/share/index.html 3. 2. 经常使用的标签 <obejct> <embed>(不推荐) 不是标准属性(HTML5 中才是) 不方便Flash对象JS代码自动化管理。 不方便偷懒 当然随着HTML5的普及以及手机浏览器的支持,<embed>标签还会再回来的 4. 3. <obejct> 重温定义 用于包含诸如图片(不推荐,请使用<img>)、音频、视频、Java applets、ActiveX、PDF、Flash等 5. 3.1 <obejct>标签属性(Attributes) id name class classid Windows 注册表值 ||URL!HTML5 type MIME 类型 data Object数据位置 MIME :Multipurpose Internet Mail Extensions 多功能Internet 邮件扩充服务 固定的classid : clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 其他参考:http://www.w3schools.com/tags/tag_object.asp 17. 4.1.1 movie 必选 IE Flash对象存放路径 <param name="movie" value=“path2swf.swf"> 18. 4.1.2 wmode 可选 window “最顶端” “独立窗口” opaque “带背景色” “嵌入” transparent “透明背景” “嵌入”可能降低动画性能 默认 window 解决HTML层次问题请使用”嵌入” 的属性。 <param name=“ wmode ” value=“opaque ”> <!-- 页面背景没有要求用 --> <param name=“ wmode ” value=“transparent ”> <!-- 页面背景有要求用 --> 19. 4.1.3 flashvars 可选 发送根级变量(root level variables)给Flash对象 最大64KB字符串容量 &分隔开的name=variable的组合 特殊或/和不可打印字符需要转换。 variable 的值可能 需要 encodeURIComponent 单一一个空格可以用 +表示 类同 movie.swf ? a=1&b=2 <param name="flashvars" value="a=1&b=2" /> <param name="flashvars" value="a=1&b=2" /> <param name=“flashvars” value=“jsonData={‘a’:1,’b’:2}" /> 20. 4.1.3.1 flashvars 规范 JSON数据需要将” 改为’ 。因此需要在 Flash对象内进行还原。 JSON数据的value,XML字符串、以及普通的variable建议进行encodeURIComponent以免发生意外。 若需要纯静态输入参数则请避免flash对象区分参数或变量的&符号。 关于json数据value:即当若json 为{ “data”:” value”} 或 [“value”]中的value部分。请进行对其中的value处理。 38. 4.2.4 quality 可选 best high autohigh medium autolow low 默认 high 回放期间使用的消除锯齿级别 类似menu为true时“品质”调节 提供最佳的显示品质,而不考虑回放速度。 使外观优先于回放速度,它始终应用消除锯齿功能。 在开始时是回放速度和外观两者并重,但在必要时会牺牲外观来保证回放速度。 会应用一些消除锯齿功能,但并不会平滑位图。 优先考虑速度,但是也会尽可能改善外观。 使回放速度优先于外观,而且从不使用消除锯齿功能 40. 4.2.6 scale 可选 showall 显示全部保持原始宽高比 noborder 无边界保持原始宽高比 exactfit 适应性填充不保持原始宽高比 noscale 不缩放原始高宽 默认showall 可视区域的缩放模式。 如果AS3中有设定了scaleMode为noScale则此属性失效。 42. 4.2.7 salign 可选 l 按左边对齐 t 按上边对齐 r 按右边对齐 b 按下边对齐 tl 按左上边对齐 tr 按右上边对齐 bl 按左下边对齐 br 按右下边对齐 缩放对齐方式。 缩放时,按照此规则进行贴边对齐,如果有需要则剪掉其他边。 46. 4.2.6 devicefont 可选 true false 默认false 对于未选定“设备字体”选项的静态文本对象是否仍使用设备字体进行绘制。 Flash包含了3种设备字体 _sans (类似 Helvetica 或 Arial) _serif (类似 Times Roman) _typewriter(类似 Courier) 48. 4.3.1 base 可选 相对路径的基址 默认为空 如果设定Flash对象中的相对路径将通过此处定义的目录查找。 这在诸如Flash对象被iframe嵌套时比较有用。 49. 4.3.2 swliveconnect 可选 true false 默认false 选择启动Flash时是否先启动JAVA。 启动 Java 会显着增加 SWF 文件的启动时间;因此,只有在必要时才应将此标签设置为 true。 仅适用于 embed 标签。 使用 fscommand() 动作可从独立的放映文件中启动 Java。 KingFo建议忽略该标签。 51. 4.4 关于fallback Some embedded content elements can have fallback content: content that is to be used when the external resource cannot be used (e.g. because it is of an unsupported format). The element definitions state what the fallback is, if any. ------HTML5 Spec 54. 4.5.1 SWFObejcet 静态官方式 <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" /> <!--[if !IE]>--> <object type="application/x-shockwave-flash" data="http://img01.taobaocdn.com/tps/i1/T1S1tkXgliy0NtxVjX.swf" width="950" height="203"> <param name="allowfullscreen" value="true" /> <param name="allowscriptaccess" value="always" /> <param name="allownetworking" value="all" /> <param name="scale" value="exactfit" /> <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" /> <![endif]--> <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> <!--[if !IE]></object> <!--<![endif]--> </object> 生产此式可以用这款工具生成: http://code.google.com/p/swfobject/wiki/generator 55. 4.5.2 神奇的偷懒写法 <object type="application/x-shockwave-flash" data="http://img01.taobaocdn.com/tps/i1/T1S1tkXgliy0NtxVjX.swf" 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> 60. 4.5.3 懒式写法注意事项 确保<object> 中设置了 type属性为application/x-shockwave-flash 。 确保<object> 中设置了data属性为Flash对象存放路径。 确保<object> 中设置了name属性为movie的子节点<param>,并将value属性设置为Flash对象存放路径。 确保高宽属性符合设计。 基本式如下: <object type="application/x-shockwave-flash" data=“PATH2SWF.swf" width=“800" height=“600”> <param name="movie" value="PATH2SWF.swf" /> </object> 61. 4.5.3.1 如何扩展基本式 <object type="application/x-shockwave-flash" data=“PATH2SWF.swf" width=“800" height=“600”> <param name="movie" value="PATH2SWF.swf" /> <param name=“…" value=" … " /> <param name=“…" value=" … " /> <param name=“…" value=" … " /> <a href=“go/getflashplayer"> <img src=“get_flash_player.gif" alt="Get Adobe Flash player" /> </a> ….. </object> 72. 参考文档 Flash OBJECT and EMBED tag attributes http://kb2.adobe.com/cps/127/tn_12701.html Controlling access to scripts in a host web page http://kb2.adobe.com/cps/133/tn_13331.html Detection Kit Express Install: Links from a SWF file in playerProductInstall.html page no longer function (Flash Player) http://kb2.adobe.com/cps/402/kb402975.html HTML <object> Tag http://www.w3school.com.cn/html5/html5_object.asp HTML <param> Tag http://www.w3schools.com/tags/tag_param.asp 精简的Flash插入方式 http://www.xintend.com/Article/EssuefNieCFMDbENScai.aspx ExternalInterface.objectID 浏览器兼容问题 http://www.xintend.com/Article/PyoUWaKXwqmPuUKpZyzq.aspx