VML
VML是The Vector Markup Language(矢量可标记语言)的缩写。VML用于将图形数据矢量化的标记语言。这是一种基于 XML 语法的语言,由 AutoDesk 、 Macromedia 和 Microsoft 和 HP 公司向 W3C 提出的方案。
简介[ ]
VML相当于IE里面的画笔,能实现你所想要的图形,而且结合脚本,可以让图形产生动态的效果。VML是微软1999年9月附带IE5.0发布的。
最初由Microsoft开发的XML词表,现在也只有IE5.0以上版本对VML提供支持。
使用VML可以在IE中绘制矢量图形,所以有人认为VML就是在IE中实现了画笔的功能。
VML的优点[ ]
- 基于XML标准:XML是公认拥有无穷生命力的下一代网络标记语言, VML具有先天的优势,它的表示方法简单,易于扩展等等。
- 支持高质量的矢量图形显示:矢量的图形,意味着图形可以任意放大缩小而不损失图形的质量,这在制作地图上有很大用途。
- VML支持广泛的矢量图形特征,它们基于由相连接的直线和曲线描述路径。在VML中使用两个基本的元素:shape和group。这两个元素定义了VML的全部结构;shape描述一个矢量图形元素,而group用来将这些图形结合起来,这样它们可以作为一个整体进行处理。
预定义图形元素[ ]
VML规范包括大量的支持多种不同矢量图形特征的元素。下面是VML的预定义图形元素:
- l Shape
- l Path
- l Line
- l Polyline
- l Curve
- l Rect
- l Roundrect
- l Oval
- l Arc
- l Group
由文本构成的图像,并可集成到HTML
由于VML使用简单的文本来表示图像,这样就可用很少的字节来表示比较复杂的图像。VML与HTML兼容,通过在HTML中声明VML命名空间并声明处理函数,就可以和其他HTML元素一样使用VML元素,在客户端浏览器显示图像。VML标记里面可以定义DHTML大部分属性和事件,比如说id, name, title, onmouseover 等等。
支持交互与动画[ ]
VML的功能不只是绘图,他还可以在图形中嵌入文本,并可实现超链,还可通过脚本语言实现一定的动画功能。
VML 在firefox下是不被支持的,所以在用VML的时候要注意选用的浏览器!!
只能在IE浏览器或以IE为内核的浏览器才能用VML。
范例[ ]
下列的程式码会显示出一个涂满红色的椭圆形:
<v:oval style="position:absolute; left:0; top:0; width:100pt; height:50pt" fillcolor="red"> </v:oval>
脚本动态生成VML[ ]
我们编写 VML 很重要的就是要和数据库结合,如果和数据库结合了,读数据和把数据转换成 VML 变成了两部分。如果直接使用 ASP 生成 包含很多 VML 的页面, 一旦数据量多了,整个页面就变得很庞大,下载速度慢了,IE解释代码的速度也慢了,所以用脚本动态生成 VML 变得非常重要了。
用 VML 画一个示意图,可以更明确上面的意义:
<html> <head> <title>Untitled</title> </head> <script language="JavaScript"> function createPoint(x,y,value) { ... } </script> <body> </body> </html>
主页面带有脚本,可以实现诸如增加 VML 元素的功能。子页面是个ASP程序,从数据库中读取数据,生成相应的脚本,比如:
<script> self.parent.createPoint(10,10,"第一点"); self.parent.createPoint(1055,1330,"第二点"); self.parent.createPoint(2330,1230,"第三点"); </script>
这样,读数据和初始法脚本就同时进行了。