VML编程之------VML语言入门《VML极道教程》原著:沐缘华

《VML极道教程》原著:沐缘华
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:如何达到精通?建议每学一个标记、属性、语句等,以后建议能用键盘默写出来(即记在脑子里,不看例子,能直接写出正确的标记、实现自己需要的效果),只要你肯勤学勤练,这并不困难。
2:VML语言入门 - 如何编写、保存、运行VML程序
VML的编写:
VML是一种类似HTML的标记语言,它最简单的开发工具其实就是记事本,好点的开发工具就是HTML编辑器(主要能够适时、迅速的在浏览器浏览VML效果)。我比较推荐“网络程序员伴侣(Lshdic)2005”简称LD5,你可以在www.GOOGLE.com或www.baidu.com中搜索找到它的下载地址。这个软件有很多辅助功能(动态提示、语法加亮、编程铺助输入、适时浏览)等实用功能,特别适合进行网络程序的编辑和开发。不过你现在是学习阶段,就算下载了它,我只建议你只用它的“适时浏览”功能(即在编码器内写完VML标记,按下F1键即能自己创建HTM浏览文件,在浏览器运行,比较剩时剩力)。
VML文件的保存、运行VML程序
以前说过,VML是跟HTML、CSS、DHTML、JS等等网页设计语言搀杂在一起的,所以VML文件其实就是一个HTML文件。比如你用记事本写完了VML代码,你可以直接另存为xxx.htm或xxx.html文件放在电脑硬盘的任一个地方,然后找到它双击打开,就会在浏览器中看到运行效果。你如果用LD5或其他HTML编辑工具,则直接在其核心编码器内写好VML语句,然后通过该软件提供的“在浏览器运行查看”功能,迅速的打开浏览器浏览,比较节省时间
3:VML语言入门 - VML网页文件的基本格式
以下代码是VML网页文件的标准格式
<HTML xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office">
<HEAD>
<STYLE>
v\:* { behavior: url(#default#VML);}
o\:* { behavior: url(#default#VML);}
</STYLE>
<TITLE>网页的标题</TITLE>
</HEAD>
<BODY>
 
</BODY>
</HTML>
我们可以简写成
<HTML xmlns:v>
<HEAD>
<META http-equiv='Content-Type' content='text/html;charset=gb2312'>
<Meta name='Gemeratpr' content='网络程序员伴侣(Lshdic)2005'>
<TITLE>网页的标题</TITLE>
<STYLE>
v\:*{behavior:url(#default#VML);}
</STYLE>
</HEAD>
<BODY>
 
</BODY>
</HTML>
很显然,跟HTML网页的结构很类似,以上标记的意思你可以理解为如下(//符号后是解释)
<HTML xmlns:v> //关键语句,指明该网页创建一个名为 v 的XML名域命名空间
<HEAD> //网页声明部分,被<head></head>包围的语句可以是一些网页信息、资源定义语句
<META http-equiv='Content-Type' content='text/html;charset=gb2312'> //说明网页使用的编码,text/html表示该页是HTML网页,gb2312表示网页编码为“简体中文(GB2312)”
<Meta name='Gemeratpr' content='网络程序员伴侣(Lshdic)2005'> //说明网页使用的开发工具
<TITLE>网页的标题</TITLE>
<STYLE> //所包含的内容是CSS样式表的定义语句
v\:*{behavior:url(#default#VML);} //关键语句,指明XML名域“v”引用的数据是VML标记语言
</STYLE>
</HEAD>
<BODY> //网页正文部分
 
//这里即是网页的正文部分(被<body></body>标记包围),以后我们就是在这里编写各种VML标记(线、圆形、矩形)等。当然也支持在这里编写HTML标记、JS或VBS脚本
 
</BODY>
</HTML> //网页结束语句
而至于xmlns:o="urn:schemas-microsoft-com:office:office"名域命名,则是引用office相关的标记处理扩展(例如歪斜效果等)。但我觉得学习它没有太高的意义(它主要为了修饰vml图形,但那些修饰标记的大多数我看起来根本是为office艺术设计的,在WEB页中没有意义、甚至不起作用,就个歪斜效果我还比较喜欢,但跟vml的填充、立体等效果处理则相形见拙),因为就vml本身而言以相当健全了。所以我不会讲述有关它的标记,而是让你充分精通vml! 4:VML语言入门 - VML网页文件格式的自由性 我说过,VML语言跟HTML很类似,不仅指的他们都是标记语言。更重要的是VML语句同样不区分大小写、属性可以是 value=参数值 或 value='参数值' 或 value="参数值"。编写起来感觉相当自由,精通了VML以后,你会不分VML、HTML般的编辑网页! 5:VML语言入门 - 第一个VML网页实例
<HTML xmlns:v>
<HEAD>
<META http-equiv='Content-Type' content='text/html;charset=gb2312'>
<Meta name='Gemeratpr' content='网络程序员伴侣(Lshdic)2005'>
<TITLE>hello vml!!!</TITLE>
<STYLE>
v\:*{behavior:url(#default#VML);}
</STYLE>
</HEAD>
<BODY>
<b>第一个VML实例(2个OVAL圆形,1个roundrect圆矩形):</b><p>
<v:Oval fillcolor='red' style='width:100;height:150'/>
 
<v:oval strokecolor=blue style="position:absolute;z-index:2;left:300;top:100;width:100;height:150"></v:oval>
 
<v:ROUndREct FILLCoLOr=green strokecolor=blue style=position:absolute;z-index:3;left:350;top:200;width:100;height:150;color:white;font-size:25px;>
包含<b>内容</b>
</v:roundrect>
 
</BODY>
</HTML>
请你务必仔细分析上边的代码,不难看出编写VML标记的高度自由性(大小写、与HTML结合、与CSS结合……)。不但支持传统HTML的2D顺序输出结构(一个对象紧跟一个对象),以及3D输出(通过CSS的样式修改position:absolute;[使对象以3D形式绝对定位]left:350;[定义对象距离页面左边多少像素]top:200;[定义对象距离页面上边多少像素]z-index:3;[定义对象的3D高度]) 6:VML语言入门 - 最简形式 其实上面的简单实例,不必非要输入那么多的代码,如果只为了测试、运行、学习VML代码,我们最简可以写成以下形式
<HTML xmlns:v>
<STYLE>v\:*{behavior:url(#default#VML);}</STYLE>
<BODY>
 
<b>第一个VML实例(2个OVAL圆形,1个roundrect圆矩形):</b><p>
<v:Oval fillcolor='red' style='width:100;height:150'/>
 
<v:oval strokecolor=blue style="position:absolute;z-index:2;left:300;top:100;width:100;height:150"></v:oval>
 
<v:ROUndREct FILLCoLOr=green strokecolor=blue style=position:absolute;z-index:3;left:350;top:200;width:100;height:150;color:white;font-size:25px;>
包含<b>内容</b>
</v:roundrect>
无必要的标签,可以不要,只有需要在一一追加 7:VML语言入门 - 名域自由命名 你也许会问,只有用“v”做为VML标记的名域么?当然不是,你完全可以使用其他名称,只要名称格式英文、或英文+数字的格式,例如
<HTML xmlns:fyw>
<STYLE>FYw\:*{behavior:url(#default#VML);}</STYLE>
<BODY>
 
<b>第一个VML实例(2个OVAL圆形,1个roundrect圆矩形):</b><p>
<fyw:Oval fillcolor='red' style='width:100;height:150'/>
 
<FYW:oval strokecolor=blue style="position:absolute;z-index:2;left:300;top:100;width:100;height:150"></fyw:oval>
 
<Fyw:ROUndREct FILLCoLOr=green strokecolor=blue style=position:absolute;z-index:3;left:350;top:200;width:100;height:150;color:white;font-size:25px;>
包含<b>内容</b>
</fYW:roundrect>
而且同样不区分大小写,不过我仍然建议尽量使用“小写”(打字节省时间),以及名域命名为“v”(好写好记)
 
1:VML标记
VML是通过XML标记来描述矢量图形的,所以必须遵循一定规则,请看下面的几种标记写法
1:图形不包含内容,可以直接使用/>号结束
<HTML xmlns:v><STYLE>v\:*{behavior:url(#default#VML);}</STYLE><BODY>
<v:oval fillcolor='red' style='width:100;height:150'/>
2:或者使用</名域名:标记名>的形式表示VML图形描述标记的结束
<HTML xmlns:v><STYLE>v\:*{behavior:url(#default#VML);}</STYLE><BODY>
<v:oval fillcolor='red' style='width:100;height:150'></v:oval>
2:VML标记通用属性说明 和HTML标记的通用属性(如:id、name、class、title、style)等一样,VML标记也有自己的通用属性、支持HTML的通用属性、支持CSS的样式定义。通过这些属性,我们可以修饰VML图形(如线、圆形)的形状、大小、颜色、内容、边框,以及定义鼠标样式、编程用的ID索引、提示标题等等 3:VML标记特有的通用属性(非HTML、CSS所有) - 参考表 VML特有通用属性使用范例:
<HTML xmlns:v><STYLE>v\:*{behavior:url(#default#VML);}</STYLE><BODY>
<v:oval strokeweight='5' strokecolor='red' fillcolor=yellow style='width:100;height:150'></v:oval>
<v:oval stroked=false fillcolor=yellow style='width:100;height:150'/>
属性名默认值值类型/范围用途
strokeweight0.75pt=1pxnumber描述图形的边框粗度
strokecolorblackcolor描述图形的边框颜色
strokedtrueboolean描述图形是否使用边框
fillcolorwhitecolor描述图形的背景颜色
filledtrueboolean描述图形是否使用背景
printtrueboolean描述图形是否允许被打印机打印
coordsize1000,1000Vector2D暗示图形与容器空间的大小比例
coordorigin0 0Vector2Dcoordinate at top-left corner of element
wrapcoordsnullstringoutline to use for tight text wrapping
4:VML标记支持的HTML通用属性 - 参考表 HTML通用属性使用范例:
<HTML xmlns:v><STYLE>v\:*{behavior:url(#default#VML);}</STYLE><BODY>
<v:oval href='http://www.microsoft.com' title='提示标题' target='_blank' fillcolor=red style='width:100;height:150'/>
属性名默认值值类型/范围用途
idnullstring定义元素的标识索引(多用于DHTML编程)
classnullclassname定义元素使用的CSS样式类
stylenullCSS string描述图形的CSS样式表
titlenullstring定义图形的提示标题(鼠标靠近后的帮助提示)
hrefnullstring定义图形链接的URL地址
target_self_self/_blank/_top定义图形以何种形式打开链接
contentEditablefalseboolean描述图形内容是否允许用户编辑
dirltrltr/rtl描述图形内容以哪种方向输出
disabledfalseboolean描述图形能够响应用户事件触发
5:VML标记支持的CSS通用属性 - 参考表 其实,VML元素几乎支持所有CSS样式定义,有些HTML元素不支持的像(rotation,旋转样式),VML却支持。由于CSS2样式属性太多,这里不一一写出了,只提及一些常用、好用的样式标记。如需要了解更多有关CSS的资料,请打开LD5、或下载一本由苏小雨编著的CSS手册,内容较专业、全面。 CSS通用属性使用范例:
<HTML xmlns:v><STYLE>v\:*{behavior:url(#default#VML);}</STYLE><BODY>
<v:oval fillcolor="rgb(255,0,0)" style='position:absolute;left:50;top:150;width:200;height:100;cursor:crosshair;z-index:5000'/>
<v:oval fillcolor="#0000ff" style='position:absolute;left:150;top:250;width:200;height:100;cursor:move;rotation:60;z-index:2000'/>
<v:rect fillcolor="green" style='position:absolute;left:400;top:150;width:200;height:100;cursor:help;rotation:120;zoom:2.5;color:red'>已经被缩放2.5倍</v:rect>
属性名可用值/可用值范围用途
width0-9999描述宽度
height0-9999描述高度
positionstatic absolute fixed relative描述如何定位输出
left0-9999描述距离页面位置左
top0-9999描述距离页面位置上
z-index0-9999描述3D位置
cursorauto crosshair hand move help wait text……描述鼠标形状
zoom0-99描述缩放比例
cliprect(上 右 下 左)描述裁剪对象
border0-99 style color描述边框
displayblock none inline list-item描述显示或隐藏
overflowvisible auto hidden scroll描述滚动条
colorcolorstring描述文本内容颜色
font-size0-999描述文本内容字号
filterxray flipv fliph invert alpha(opacity=num)描述滤镜效果
rotation(0-9999)%360描述旋转度
flipx y描述反转或颠倒图形
………………
6:要重视通用属性 以上提及的VML通用属性以及范例,不难发现通用属性的重要性,通用属性也是VML元素属性中最重要的属性、最容易使用的属性。不过这里的“通用”你不要理解为“所有的VML元素都支持”,那是不正确的。像今后我们要学的VML标记line(线),就不支持fillcolor、filled,因为它是“线短”只有边框、没有背景,所以不支持背景描述。“通用”你可以理解为常用的、绝大多数VML图形均可用的“通用属性”。
 

转载于:https://www.cnblogs.com/GeneralXU/archive/2007/05/27/761416.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/424015.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第一百三十期:14种常见编程语言的优缺点及应用范围

C语言是一门通用计算机编程语言&#xff0c;应用广泛。面向过程的&#xff0c;数据与算法分开。它的重点在于算法和数据结构。1972年由美国贝尔实验室在B语言的基础上设计出。 作者&#xff1a;编程小新 C 概述:C语言是一门通用计算机编程语言&#xff0c;应用广泛。面向过程…

文本生成模型

文本生成目前&#xff08;2019年&#xff09;还没有确定的可工程化的用途。 主要模型有&#xff1a;Variational Auto Encoder (VAE)和Generative Adversarial Networks (GAN) 这个对我来说是新的内容&#xff0c;需要再次消化。

设计模式学习笔记一——开篇

毕业的前段时间从定王台买了两本书《设计模式&#xff1a;可复用面向对象软件的基础》和《.NET框架程序设计》&#xff0c;两本很经典的书。工作后两本书都曾看过一部分&#xff0c;第一本不愧堪称设计模式经典之作&#xff0c;书写得很好&#xff0c;但是对于没有面向对象设计…

第一百三十一期:2019年容器使用报告:Docker 和 Kubernetes 王者地位不倒!

近日&#xff0c;容器创业公司 Sysdig 发布了 2019 年容器使用报告。这是 Sysdig 第三年发布容器年度使用报告&#xff0c;与之前不同的是&#xff0c;今年的调查结合了更多的数据源&#xff0c;并深入挖掘了 Kubernetes 的使用模式。 作者&#xff1a;高效开发运维 近日&…

Flask 路由映射对于双斜线的处理 //a//b

例子 from flask import Flask import time from tornado.wsgi import WSGIContainer from tornado.httpserver import HTTPServer from tornado.ioloop import IOLoopapp Flask(__name__)app.route(//abc//a) def index():# time.sleep(5)return OKapp.route(/abc//a) def in…

⼤规模⽆监督预训练语⾔模型与应⽤(上)

文章目录1 单词作为语言模型的基本单位的缺点2 character level modeling3预训练句子向量3.1 skip-thought3.2 InferSent3.3 句子向量评价数据集4 预训练文档向量5 ELMO1 单词作为语言模型的基本单位的缺点 单词量有限&#xff0c;遇到没有见过的单词只能以UNK表示。 模型参数…

第一百三十二期:MySQL系列:一句SQL,MySQL是怎么工作的?

当我们在mysql窗口或者数据库连接工具中输入一句sql后&#xff0c;我们就可以获取到想要的数据&#xff0c;这中间MySQL到底是怎么工作的呢&#xff1f; 作者&#xff1a;Java架构学习交流 对于MySQL而言&#xff0c;其实分为客户端与服务端。 服务端&#xff0c;就是MySQL应…

转一个无聊的爱情故事:如果有个女生为你哭

这是很早以前看到的一篇文章&#xff0c;偶尔看到&#xff0c;突然很多往事一下子全涌了出来&#xff0c;原来我曾以为忘却了的&#xff0c;却深藏在心中&#xff0c;永远无法抹去。假如你的生命里有这样一个女孩&#xff0c;她既不漂亮&#xff0c;也不温柔&#xff0c;但她很…

Visual Studio 2005 Tip:编辑项目文件

原文参考自&#xff1a;http://blogs.msdn.com/shawnfa/archive/2006/04/26/582326.aspx很多时候我们需要手动修改VS的项目文件&#xff08;.csproj/.vbproj&#xff09;&#xff0c;这时大多数人会简单的使用记事本&#xff08;notepad&#xff09;打开并编辑。虽然这没什么不…

transformer bert GPT(未完)

原文标题&#xff1a;⼤规模⽆监督预训练语⾔模型与应⽤&#xff08;中&#xff09; 文章目录1 transformer1.1 encoder部分1.1.1 Attention定义1.1.2 Multi-head Attention1.1.3 position-wise feed-forward networks1.1.4 positional encoding1.1.5 残差链接1.1.6 layer norm…

spring mvc学习(42):restful的编辑功能实现

上图是目录结构&#xff0c;本节是有问同学的&#xff0c;当好好总结 pom.xml <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://maven.apache.org/POM/4.0.…

韩国首尔公交车站将被指定为禁烟场所

中新网东京7月3日电 韩国首尔市所有公交车站将从今年9月份起被指定为禁烟场所。 据韩联社报道&#xff0c;首尔市方面2日表示&#xff0c;9月份起将把禁烟车站从5月30日开始运营的钟路2街中央车路车站等市内6处公交车站扩大到市内全部公交车站。 首尔市负责人对扩大禁烟车站的…

那些年用过的Redis集群架构(含面试解析)

引言 今天&#xff0c;我接到了高中同学刘有码面试失利的消息。 他面试的时候&#xff0c;身份是某知名公司的小码农一枚&#xff0c;却因为不懂自己生产上Redis是如何部署的&#xff0c;导致面试失败&#xff01; 人间惨剧&#xff0c;莫过于此。 接到他面试失利的消息&#x…

再谈BERT

三次讲到了BERT。第一次是nlp中的经典深度学习模型(二)&#xff0c;第二次是transformer & bert &GPT&#xff0c;这是第三次。 文章目录1 关于预训练模型1.1预训练概念1.2 再谈语言模型1.3 ELMo1.4 GPT2 BERT2.1 BERT特点2.2架构2.3 预训练任务2.3.1 masked language …

第一百三十三期:MySQL锁会不会,你就差看一看咯

本文章向大家介绍MySQL锁详细讲解&#xff0c;包括数据库锁基本知识、表锁、表读锁、表写锁、行锁、MVCC、事务的隔离级别、悲观锁、乐观锁、间隙锁GAP、死锁等等&#xff0c;需要的朋友可以参考一下。 作者&#xff1a;php自学中心 本文章向大家介绍MySQL锁详细讲解&#xff…

[导入][你必须知道的.NET]第十回:品味类型---值类型与引用类型(下)-应用征途...

摘要: 本文将值类型和引用类型的讨论从应用示例角度来进一步做以延伸&#xff0c;可以看作是对前两回的补充性探讨。我们从类型定义、实例创建、参数传递、类型判等、垃圾回收等几个方面来简要的对上两回的内容做以剖析&#xff0c;并以一定的IL语言和内存机制来说明&#xff0…

云开发新能力,支持 HTTP 调用 API

今天来上班打开电脑&#xff0c;总感觉微信开发文档哪里有点不太一样&#xff0c;研究了半天原来是云开发又多了神级功能——HTTP API&#xff01; HTTP API是什么&#xff1f;简单来说就是通过云开发HTTP API&#xff0c;可以不需要通过微信小程序或云开发控制台&#xff0c;就…

mac下pip install 安装只能选择python2.7的问题

mac自带python2.7。 我用brew install安装过python3:brew install python3 我安装了anaconda3。因为它自带了很多包。所以我无论是用pycharm编程还是jupyter notebook一直都用的是anaconda3带的python。 后来发现用pip install 安装的包&#xff0c;在pycharm工程中用不了。更有…

第一百三十四期:MySQL分页查询方法及优化

在MySQL中&#xff0c;分页查询一般都是使用limit子句实现&#xff0c;limit子句声明如下&#xff1a;LIMIT子句可以被用于指定 SELECT 语句返回的记录数。 作者&#xff1a;青芽草 分页查询方法&#xff1a; 在MySQL中&#xff0c;分页查询一般都是使用limit子句实现&#x…

One2One主键关联的实现

主键关联&#xff0c;产生主键的是A类&#xff0c;与A相同主键的是B类 主键对应的A类&#xff0c;hbm.xml文件与.cs文件均无任何特别&#xff0c;与单表相同 与A相同的主键B类&#xff0c; Hbm.xml文件&#xff1a; <id name"Id"column"ID"type"Gu…