最近比较关注SVG方面的信息,看到carto.net上一篇非常详细的flash vs SVG的文章,我尝试将其翻译过来。部分地方加上了我自己的注解和修改。(做法不妥或者错漏之处有劳各位指正,谢谢!)
flash与SVG整体比较
|
SWF |
SVG |
标准开放性 |
不完全开放(Macromedia SWF Specification License) |
开放且公用(World Wide Web Consortium Specification) |
文件格式 |
二进制 |
基于XML语法的文本 |
MIME 类型 |
application/x-shockwave-flash |
image/svg+xml |
流文件格式 |
流文件 |
非流文件 |
交互性实现 |
脚本(actionscript/javascript)和事件(event) |
脚本(javascript),SMIL和事件(event) |
DOM |
内部 'DOM' |
SVGDom |
图形顺序 |
引入图形深度的概念 (深度数值最大的图形在最顶端,同时可以在运行过程中由脚本控制修改图形深度) |
SVGDom顺序 SVG文档中的顺序,最后的元素在最顶端(掩盖前面元素)。 也可以在执行过程中由脚本进行修改DOM树的操作来调整顺序。 |
压缩 |
zlib |
gzip |
主流浏览器支持 |
不支持,但是flash player插件几乎安装在每一台运行microsoft windows和MAC的电脑上(因为flash player捆绑在主流浏览器IE和Netscape上。 但是由于flash版本不断升级,事实上系统自带的flash播放器经常需要同步升级才能使用flash最新的功能) |
不支持。 浏览器插件尚不普及,安装比率很低。 |
搜索引擎支持 |
官方提供的SDK以及一些专门的算法来对flash里面的链接和文本进行收录。 |
目前最主流的搜索引擎尚不支持对SVG的搜索,但是在理论上是容易实现的。 |
样式 |
SWF定义样式/CSS (small subset) |
SVG 标准/ CSS2/XSL |
(一) flash与SVG画板特性比较
|
flash |
SVG |
坐标体系 |
||
类型 |
经典的xy轴屏幕显示坐标体系,用整数来度量 |
经典的xy轴屏幕显示坐标体系,而且是无限的 |
最小单位/精确度 |
1 twip |
通过viewbox来设置,可以无穷地放大 |
计量单位 |
||
长度单位 |
px |
px, pt, cm, mm, in, pc, %, em |
角度单位 |
deg |
deg, rad, grad |
时间单位 |
毫秒 milliseconds |
秒seconds |
几何变换 |
||
平移 (translation) |
支持 MovieClip._x MovieClip._y |
支持 translate(<tx> [<ty>]) |
按比例伸缩 (scale) |
支持 MovieClip._xscale MovieClip._yscale |
支持 scale(<sx> [<sy>]) |