VML(矢量可标记语言)简介

  VML相当于IE里面的画笔,能实现你所想要的图形,而且结合脚本,可以让图形产生动态的效果。VML是微软1999年9月附带IE5.0发布的,在我认为, VML其实是Word和HTML结合的产物。可以将Word文档另存为HTML,其中的文本和图片可以很容易的转换,但如果是手绘制的图形在以往的IE里面就无法解释了,如果都转换成图形文件又不太现实。于是微软把Word里面的图形控件结合到IE里面,使IE也具备了绘图功能。
  VML的全称是Vector Markup Language(矢量可标记语言),矢量的图形,意味着图形可以任意放大缩小而不损失图形的质量,这在制作地图上有很大用途。

╭════════════════════════════╮
║                            ║
║  免费的学习、交流、源码、工具网站,欢迎大家访问!  ║
║  http://www.j2soft.cn/               ║
║  EMAIL:cuizm@163.com            ║
╰════════════════════════════╯

  VML的元素包括:SHAPE、LINE、POLYLINE、RECT、ROUNDRECT、OVAL、IMAGE、GROUP等,用这些对象,可以在WEB页面中通过JAVASCRIPT动态生成各种图形,如:数据图表、矢量地图等。

  刚开始学习的时候,看了帮助资料之后,觉得通过JAVASCRIPT动态生成各种图形很容易,但是真正使用的时候,遇到了各种问题,才知道,VML也不是那么好控制。其中遇到的最大的问题是加TEXTBOX文本对象(一般与矩形控件或者LINE控件结合,用TEXTBOX控件来做介绍)的时候,文字显示不出来。

  通过自己多次的试验,终于找到了动态生成TEXTBOX对象的方法,好东西不敢独享,特总结出来,与大家共勉。代码如下:

//新建一个VML圆角矩形结点
//aStrLeft:矩形左边坐标;aStrTop:矩形顶部坐标;aStrWidth:矩形宽度;
//aStrHeight:矩形高度;aStrID:结点ID;aStrText:结点内容;aStrAlt:结点提示;
function createItem (aStrLeft, aStrTop, aStrWidth, aStrHeight, aStrID, aStrText, aStrAlt)
{
    var strRoundRect = "<vml:roundrect title='" + aStrAlt + "' id='" + aStrID
        + "' fillcolor='#EEEEEE' style='LEFT: " + aStrLeft + "px; TOP:" + aStrTop
        + "px; WIDTH: " + aStrWidth + "; POSITION: absolute; HEIGHT: " + aStrHeight
        + ";vertical-align:middle;CURSOR:hand;TEXT-ALIGN:center;z-index:1'>"
        + "</vml:roundrect>";
    var strText = "<vml:textbox id='txt" + aStrID + "' onselectstart='return false;'>"
        + "</vml:textbox>";

    var objRoundRect = document.createElement (strRoundRect);
    var objText = document.createElement (strText);

    objText.innerHTML = aStrText;
    objRoundRect.insertBefore (objText);

    document.forms[0].insertBefore (objRoundRect);
}

//新建一个Line对象
//aStrSource:Line对象的缘;aStrObject:Line对象的目标;
//(即从哪到哪画一条直线)
function createLine (aStrSource, aStrObject)
{
    var strLine = "<vml:line source='" + aStrSource + "' object='" + aStrObject + "'>"
        + "</vml:line>";
    var strStroke = "<vml:stroke endarrow='Classic'></vml:stroke>";

    var objLine = document.createElement (strLine);
    var objStroke = document.createElement (strStroke);

    objLine.insertBefore (objStroke);
    document.forms[0].insertBefore (objLine);
    drawLine ();
}

  以上是创建圆角矩形结点(包括文字介绍)与直线对象的两个比较简单的方法。各详细的介绍,请查看下面的网站进行学习:

http://www.itlearner.com/code/vml/index.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
1章4节:VML语言入门 1:VML语言入门 - 极道学法 在我正式开始讲解、你正式开始学习VML语言以前,请务必遵循以下规则,可以达到最佳效果、极道学习方法。 1:如果你学过HTML、CSS或精通HTML、CSS,那么建议你把学VML的过程看做跟学HTML的过程是一样的,因为,根本就是大同小异。 2:从本章节和本章节以后的每一个章节,我会使用最简单、易懂、有效的语言讲解和分析。但这是不够的,重要的是,你一定要活学活用。毕竟就算是神剑,如果握在不会用它的人手中,只会糟蹋了这把剑。活学活用是你未来实战应用、独立开发的关键…… 3:建议学习时,开启Lshdic2005、或Editplus、或其他HTML/VML代码编辑器、甚至是记事本。每学会一个标记,就要综合以前学的标记、新学的标记,练习、写出不同的效果,如此才能加深你对该标记的理解、以后会很好的使用、更重要的是巩固以前所学的标记不至于学新忘旧。有基底的IT精英,可以边学、边分解FlashVml3.0所绘制图型的代码,但对于90%的人,我个人不推荐这么做。勤学勤练、VML语言功底是活学活用VML之基础…… 4:如何达到精通?建议每学一个标记、属性、语句等,以后建议能用键盘默写出来(即记在脑子里,不看例子,能直接写出正确的标记、实现自己需要的效果),只要你肯勤学勤练,这并不困难。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值