2007年6月23日星期六

浏览器兼容的Web矢量图形脚本库

tags: svg vml firefox ie opera js

abstract: 未来的Web体验将超越现在的xhtml,主流浏览器内置对矢量图形的渲染是重要标志之一。

对手1: Flash
浏览器插件普及率高,对流媒体支持好,但
swf二进制格式使得他与Web工作流的整合相对困难,应用逻辑的更改可能需要rebuild
swf内容生产者多是美工,他们创作动画习惯使用引导线、蒙版和滤镜等工具,而不是script
对手2: WPF
支持DirectX,对权限管理控制的好,但
浏览器插件不普及,内容生产工具昂贵

不久svg vml的方案很可能会向Ajax一样被人炒作,因为他们有一些相通之处:
1、浏览器无插件地支持
不同浏览器的Web矢量图形容器在抽象层高度一致,
在Ajax实现层中,IE有xmlhttp的ActivX控件,Firefox和Opera有XMLHttpRequest对象;
在Web矢量图的实现层中,IE支持VML标签,通过样式v\:* { behavior: url(#default#VML);
}渲染,而firefox和opera中有type='image/svg+xml'的object标签
2、不是新技术,但创造了新体验
Ajax是脚本代替浏览器地址栏去http get/post,无刷新和异步操作带来良好的体验。
Web矢量图是svg和vml两种古老的图形标记语言,相信交互可视化也可以带来良好的体验。
3、基础工作:脚本库的开发
Ajax的脚本库层出不穷,以prototype为代表,开发人员不必关心Ajax的实现,只需要在抽象层上使用他即可,降低生产成本
Web矢量图的脚本库也能找到,Igor
Krupitsky的工作似乎并没有得到足够的重视,下面是他发布的脚本库。(笔者测试,需要修改一些代码才能使用,而且需要手动调整才能支持opera)http://www.1delphistreet.com/vb/scripts/ShowCode.asp?txtCodeId=5607&lngWId=2
google code上有一些工作已经走得更远,如果你感兴趣可以去google一下svgvml3d

想象一下,在js中new Polyline是什么感觉?而且不需要Flash或Java Applet小程序?

没有评论: