什么是vml - chenyq2008的专栏 - CSDNBlog
来源:互联网 发布:通用数据库客户端工具 编辑:程序博客网 时间:2024/04/19 12:28
导读:
什么是vml?VML相当于IE里面的画笔,能实现你所想要的图形,而且结合脚本,可以让图形产生动态的效果。VML是微软1999年9月附带IE5.0发布的,在我认为, VML其实是Word和HTML结合的产物。可以将Word文档另存为HTML,其中的文本和图片可以很容易的转换,但如果是手绘制的图形在以往的IE里面就无法解释了,如果都转换成图形文件又不太现实。于是微软把Word里面的图形控件结合到IE里面,使IE也具备了绘图功能。
VML的全称是Vector Markup Language(矢量可标记语言),矢量的图形,意味着图形可以任意放大缩小而不损失图形的质量,这在制作地图上有很大用途。为了显示它的强大,和增加你学习VML的信心,先给你看看一个VML例子:
Hello world!
Hello VML!
在VML里面,标记使用的是XML扩张,需要一个namespace(命名空间),你可以使用惯用的“v”作为命名空间,使用IE5.0到IE6.0通用的定义如下:
xmlns 全称就是XML NameSpace 也就是命名空间。Behavior(行为)也是IE5.0新推出的东西,它的功能非常强大,结合样式表,可以给任何HTML对象增加行为(新的属性、方法、事件),而在这里,它的用处是把命名空间“v”和系统预定义的行为VML连接。这样定义以后,你就可以使用下面的标记了,和普通的HTML标记有所区别,每个标记都增加了一个命名空间:
和其他HTML元素一样,VML标记里面可以定义DHTML大部分属性和事件,比如说id,name,title,onmouseover等等。在写法上VML比较灵活,很多属性既可以写在标记里面,又可以独立出一个新的标记来表示:
等同于下面的写法:
当然不是所有的属性都可以写成独立的标记,常用的比如说上面的 Stroke(按我的理解可以翻译成线性),Path,Shadow,Fill(填充)等,VML这样的方式可以理解为 shape 的属性分类,使属性更直观。
Shape 对象派生出来的一些对象,更加直接的图象,比如说 Rect(矩形),RoundRect(圆边的矩形),Oval(圆),Line(线),PolyLine(不规则折线),Image(图形文件)等等,以后将对这些对象细细描述。
Shape是VML最基本的对象,利用它可以画出所有你想要的图形。在VML中,使用的坐标并不是Document的坐标,它有自己的坐标系,这样一来,动态改变它的坐标,就可以实现放大、缩小、旋转等功能了。shape的 CoordSize 属性就是用来定义坐标的,它有两个参数, , 这里的2800,2800 是横纵坐标被分成了2800个点,并不是HTML里面默认像素。如果没有设置圆点,VML默认是 0,0 (左上角),当然你也可以使用 CoordOrig 属性设置VML的圆点坐标。
注意:定义的坐标只是相对的,真正显示的图形大小还需要 style="width:500;height:500" 来定义!
上面的定义后,你可用的坐标是 x(-1400到1400) y(-1400到1400) ,这样的坐标就像数学里面的坐标了,把画版分成了四个块。
在解决实际问题的时候,我发现,IE会自动把可见的VML图象放在相对的(0,0)位置,意思是说,上面两张图如果没有增加两个辅助的坐标,在IE上显示出来是并列的两个正方形。
shape中最主要的属性是Path,它是个功能强大的画笔,语法很简单,由几个字母组成,下面详细讲述:
m x,y:MoveTo把画笔移动到 (x,y);
l x,y:LineTo从当前点到(x,y)画一条线;可以给连续的几个点,VML会连续画出来直到遇到 x 命令。
x:Close结束一条线;
e:End结束画图
shape的其他常用属性:
FillColor:填充颜色,使用HTML中规定的颜色;例如:fillcolor=red
Filled:是否要填充图形,如果图形不是封闭的,也会自动封闭图形进行填充。当Filled="true"(默认),fillcolor才有效果;
StrokeColor:线的颜色;
StrokeWeight:线的宽度;
Title:当鼠标移动到该图形上的时候,显示的文字,和HTML里面的alt、tilte一样;
Type:指定该图形属于那个ShapeType,ShapeType可以为VML制定模版,将在以后加以描述;
前面的这些属性,FillColor、Filled可以在 中使用,StrokeColor、StrokeWeight可以在 中使用。也可以在 Shape 或者 继承Shape的对象中使用它。
在下面几节,将详细介绍 Shape 延伸出来的一些具体对象,诸如 Rect、RoundRect、Oval、Line等对象。
Line是做图中最常用的,它有两个特殊的属性 from 和 to ,就是起始点和终止点坐标。
●如果要改变线的样式,LineStyle (Stroke)属性可以做到:
Single(默认),ThinThin,ThinThick,ThickBetweenThin
●如果要改变线的类型,可以用 DashStyle(Stroke)属性:
Solid(默认):见上图
ShortDash:
ShortDot:
ShortDashDot:
ShortDashDotDot:
Dot:
Dash:
LongDash:
DashDot:
LongDashDot:
LongDashDotDot:
●在画坐标的时候,需要箭头,VML已经定义好了箭头,在Stroke体现:EndArrow 和 StartArrow 属性,一个是线开始的时候有箭头,另一个是线结束的时候有箭头。箭头的样式也有不少:
EndArrow="Block":
EndArrow="Classic":(这个看起来还比较舒服)
EndArrow="Diamond":
StartArrow="Oval":
StartArrow="Open":
PolyLine是 Line 的变形,是不规则的连续的线。它有个特殊的属性 Points ,用来设置每个点的坐标。例如:
一样可以设置它的线的样式和类型以及箭头 ( IE5.0中,PolyLine不支持 Arrow )
用VML画矩形,必须设置 style="width:50;height:50",其他就没有什么特别的。在这节,顺便讲讲 shadow 对象和 TextBox对象:
RoundRect顾名思义,是圆角的矩形,这种形状在画流程图的时候很常用,如果加上阴影,就更好看了:
在VML里面,True 和 False 可以简写成 T 和 F。Shadow 中的 offset 属性用来设置 偏移原图的 x,y 值。 on 属性用来决定是否显示阴影。在矩形中写字,要用到 TextBox 对象。TextBox 比较关键的属性是 inset(left,top,right,bottom),意思是隔图形边的上下左右多少范围内定位文字:
Hello world!
Hello world!
当然你也可以直接插入HTML代码,比如说插入一个
效果是一样的。
用VML画圆(Oval)是非常简单的,只要设置圆的高和宽就可以了。当然定位也是常用的:
还要注意的是,top和left是圆的左上角坐标,width 和 height 是圆的宽和高,不是圆的半径。其圆心坐标是(left-width/2,top-height/2)。
说到圆,不得不想到弧(arc) VML已经定义了弧对象,它有除了圆的基本性质外,两个特殊的属性startangle 和 endangle ,就是起始角度和结束角度,单位是度,而不是弧度:
注意到没有,0角度是从平常的90度开始的。
Image 对象从外部调用一个图形文件,只要IE能够显示的格式都可以。需要注意的是,VML只用来显示这张图片,并没有将这图片矢量化,如果以后放大缩小,画质会改变的。
刚刚查询 MSDN 关于VML资料的时候,左边的相关菜单已经 Unavailable 了,这是否意味着 VML 将被 Microsoft 抛弃?因为有取VML和Flash之长处的 SVG 的崛起,VML 黯然失色,曾经问一个开发过VML软件的老外,他都强烈建议我使用SVG。但我觉得 SVG固然强大,但它和Flash一样,有自己的菜单,有自己固定的区域,和别的网页元素结合的不太好(个人观点),VML还是有其生存意义的。不过可以肯定,在IE以后的版本,对VML都是支持的。如果你要查询一些VML的原始资料,可以访问下面的地址:http://msdn.microsoft.com/workshop/author/vml/shape/introduction.asp?frame=true
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1660916
本文转自
http://blog.csdn.net/chenyq2008/archive/2007/06/21/1660916.aspx
什么是vml?VML相当于IE里面的画笔,能实现你所想要的图形,而且结合脚本,可以让图形产生动态的效果。VML是微软1999年9月附带IE5.0发布的,在我认为, VML其实是Word和HTML结合的产物。可以将Word文档另存为HTML,其中的文本和图片可以很容易的转换,但如果是手绘制的图形在以往的IE里面就无法解释了,如果都转换成图形文件又不太现实。于是微软把Word里面的图形控件结合到IE里面,使IE也具备了绘图功能。
VML的全称是Vector Markup Language(矢量可标记语言),矢量的图形,意味着图形可以任意放大缩小而不损失图形的质量,这在制作地图上有很大用途。为了显示它的强大,和增加你学习VML的信心,先给你看看一个VML例子:
Hello world!
Hello VML!
在VML里面,标记使用的是XML扩张,需要一个namespace(命名空间),你可以使用惯用的“v”作为命名空间,使用IE5.0到IE6.0通用的定义如下:
xmlns 全称就是XML NameSpace 也就是命名空间。Behavior(行为)也是IE5.0新推出的东西,它的功能非常强大,结合样式表,可以给任何HTML对象增加行为(新的属性、方法、事件),而在这里,它的用处是把命名空间“v”和系统预定义的行为VML连接。这样定义以后,你就可以使用下面的标记了,和普通的HTML标记有所区别,每个标记都增加了一个命名空间:
和其他HTML元素一样,VML标记里面可以定义DHTML大部分属性和事件,比如说id,name,title,onmouseover等等。在写法上VML比较灵活,很多属性既可以写在标记里面,又可以独立出一个新的标记来表示:
等同于下面的写法:
当然不是所有的属性都可以写成独立的标记,常用的比如说上面的 Stroke(按我的理解可以翻译成线性),Path,Shadow,Fill(填充)等,VML这样的方式可以理解为 shape 的属性分类,使属性更直观。
Shape 对象派生出来的一些对象,更加直接的图象,比如说 Rect(矩形),RoundRect(圆边的矩形),Oval(圆),Line(线),PolyLine(不规则折线),Image(图形文件)等等,以后将对这些对象细细描述。
Shape是VML最基本的对象,利用它可以画出所有你想要的图形。在VML中,使用的坐标并不是Document的坐标,它有自己的坐标系,这样一来,动态改变它的坐标,就可以实现放大、缩小、旋转等功能了。shape的 CoordSize 属性就是用来定义坐标的,它有两个参数,
注意:定义的坐标只是相对的,真正显示的图形大小还需要 style="width:500;height:500" 来定义!
上面的定义后,你可用的坐标是 x(-1400到1400) y(-1400到1400) ,这样的坐标就像数学里面的坐标了,把画版分成了四个块。
在解决实际问题的时候,我发现,IE会自动把可见的VML图象放在相对的(0,0)位置,意思是说,上面两张图如果没有增加两个辅助的坐标,在IE上显示出来是并列的两个正方形。
shape中最主要的属性是Path,它是个功能强大的画笔,语法很简单,由几个字母组成,下面详细讲述:
m x,y:MoveTo把画笔移动到 (x,y);
l x,y:LineTo从当前点到(x,y)画一条线;可以给连续的几个点,VML会连续画出来直到遇到 x 命令。
x:Close结束一条线;
e:End结束画图
shape的其他常用属性:
FillColor:填充颜色,使用HTML中规定的颜色;例如:fillcolor=red
Filled:是否要填充图形,如果图形不是封闭的,也会自动封闭图形进行填充。当Filled="true"(默认),fillcolor才有效果;
StrokeColor:线的颜色;
StrokeWeight:线的宽度;
Title:当鼠标移动到该图形上的时候,显示的文字,和HTML里面的alt、tilte一样;
Type:指定该图形属于那个ShapeType,ShapeType可以为VML制定模版,将在以后加以描述;
前面的这些属性,FillColor、Filled可以在
在下面几节,将详细介绍 Shape 延伸出来的一些具体对象,诸如 Rect、RoundRect、Oval、Line等对象。
Line是做图中最常用的,它有两个特殊的属性 from 和 to ,就是起始点和终止点坐标。
●如果要改变线的样式,LineStyle (Stroke)属性可以做到:
Single(默认),ThinThin,ThinThick,ThickBetweenThin
●如果要改变线的类型,可以用 DashStyle(Stroke)属性:
Solid(默认):见上图
ShortDash:
ShortDot:
ShortDashDot:
ShortDashDotDot:
Dot:
Dash:
LongDash:
DashDot:
LongDashDot:
LongDashDotDot:
●在画坐标的时候,需要箭头,VML已经定义好了箭头,在Stroke体现:EndArrow 和 StartArrow 属性,一个是线开始的时候有箭头,另一个是线结束的时候有箭头。箭头的样式也有不少:
EndArrow="Block":
EndArrow="Classic":(这个看起来还比较舒服)
EndArrow="Diamond":
StartArrow="Oval":
StartArrow="Open":
PolyLine是 Line 的变形,是不规则的连续的线。它有个特殊的属性 Points ,用来设置每个点的坐标。例如:
一样可以设置它的线的样式和类型以及箭头 ( IE5.0中,PolyLine不支持 Arrow )
用VML画矩形,必须设置 style="width:50;height:50",其他就没有什么特别的。在这节,顺便讲讲 shadow 对象和 TextBox对象:
RoundRect顾名思义,是圆角的矩形,这种形状在画流程图的时候很常用,如果加上阴影,就更好看了:
在VML里面,True 和 False 可以简写成 T 和 F。Shadow 中的 offset 属性用来设置 偏移原图的 x,y 值。 on 属性用来决定是否显示阴影。在矩形中写字,要用到 TextBox 对象。TextBox 比较关键的属性是 inset(left,top,right,bottom),意思是隔图形边的上下左右多少范围内定位文字:
Hello world!
当然你也可以直接插入HTML代码,比如说插入一个
Hello World!
效果是一样的。
用VML画圆(Oval)是非常简单的,只要设置圆的高和宽就可以了。当然定位也是常用的:
还要注意的是,top和left是圆的左上角坐标,width 和 height 是圆的宽和高,不是圆的半径。其圆心坐标是(left-width/2,top-height/2)。
说到圆,不得不想到弧(arc) VML已经定义了弧对象,它有除了圆的基本性质外,两个特殊的属性startangle 和 endangle ,就是起始角度和结束角度,单位是度,而不是弧度:
注意到没有,0角度是从平常的90度开始的。
Image 对象从外部调用一个图形文件,只要IE能够显示的格式都可以。需要注意的是,VML只用来显示这张图片,并没有将这图片矢量化,如果以后放大缩小,画质会改变的。
刚刚查询 MSDN 关于VML资料的时候,左边的相关菜单已经 Unavailable 了,这是否意味着 VML 将被 Microsoft 抛弃?因为有取VML和Flash之长处的 SVG 的崛起,VML 黯然失色,曾经问一个开发过VML软件的老外,他都强烈建议我使用SVG。但我觉得 SVG固然强大,但它和Flash一样,有自己的菜单,有自己固定的区域,和别的网页元素结合的不太好(个人观点),VML还是有其生存意义的。不过可以肯定,在IE以后的版本,对VML都是支持的。如果你要查询一些VML的原始资料,可以访问下面的地址:http://msdn.microsoft.com/workshop/author/vml/shape/introduction.asp?frame=true
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1660916
本文转自
http://blog.csdn.net/chenyq2008/archive/2007/06/21/1660916.aspx
- 什么是vml - chenyq2008的专栏 - CSDNBlog
- 什么是COM组件 - liming0658的专栏 - CSDNBlog
- access_flags - raphaelxia的专栏 - CSDNBlog
- 框架 - Pascal的专栏 - CSDNBlog
- SQLServer2000数据类型 - jiangxianfu的专栏 - CSDNBlog
- java Date总结 - pengyajie的专栏 - CSDNBlog
- 解析“extern” - keen的专栏 - CSDNBlog
- Android快速入门 - jesun的专栏 - CSDNBlog
- CString 操作指南 - pinping1314的专栏 - CSDNBlog
- 常见内存错误 - iu_81的专栏 - CSDNBlog
- 什么是VML
- 什么是vml
- 什么是VML
- 史上最简单的Hibernate入门简介 - 飞鸟的专栏 - CSDNBlog
- extjs和struts、json的整合 - taelons的专栏 - CSDNBlog
- [Web2Py]simplejson的定制 - limodou的专栏 - CSDNBlog
- 我对C++ VTable 的理解 - theCFan的专栏 - CSDNBlog
- OpenGL开发库的介绍 - Teddy_Xiong的专栏 - CSDNBlog
- spring bean的配置
- java多线程设计模式
- IFRAME的背景透明
- h:outputText输出HTML标签
- 自动缩略图
- 什么是vml - chenyq2008的专栏 - CSDNBlog
- 在FirFox下正常而在IE下不显示的问题
- 取字符串
- 加解密
- CMMI的22个关键过程域
- seam 的一个层次关系图
- 最大化/最小化/关闭窗口代码集锦
- 双击打不开硬盘
- Real Player播放器代码