以文本方式查看主题 - 计算机科学论坛 (http://bbs.xml.org.cn/index.asp) -- 『 SVG/GML/VRML/X3D/XAML 』 (http://bbs.xml.org.cn/list.asp?boardid=21) ---- Svg脚本编程简介(一) (http://bbs.xml.org.cn/dispbbs.asp?boardid=21&rootid=&id=13493) |
-- 作者:卷积内核 -- 发布时间:1/12/2005 4:20:00 PM -- Svg脚本编程简介(一) 本文主要介绍SVG的脚本编程,并分别给出放大、缩小,查询,鼠标事件等实例。 一、 SVG简介 SVG,全称为Scalable Vector Graphics(可伸缩矢量图形)。它是W3C制定的、用矢量描述图形的XML应用标准。它有着许多的优点,比如可扩充性(scalable),动态的,交互性强。SVG支持无极放大,对SVG图片进行任意比例的放大都不会损害图片的显示(没有太多的失真),其他诸如BMP,JPEG格式的图片都不支持无级放大。SVG有动画元素,只要在SVG文件中嵌入SVG动画元素就可以实现动画效果了。同时SVG也定义了丰富的事件,包括鼠标事件和键盘事件,只要对SVG进行相关的脚本编程就可以实现SVG文件的交互操作。 SVG带有许多基本的图形元素,只要通过组合基本图形元素就可以构建出SVG文件。 二、 SVG脚本编程 在SVG中,可以通过脚本编程来实现一些比较复杂的交互操作。SVG用<script>元素来在SVG文档中插入脚本,它的功能几乎和HTML中的<script>标记一样。其一般格式为: <script type=”text/JavaScript”> <![CDATA[ <!—这里插入脚本程序段--> ]]> </script> <script>有两个属性,type=”content-type”,这里指明所用的script语言的类型。默认情况下script采用的语言是JavaScript语言。Xlink:href=”<uri>”指明引用外部脚本文件的url。下面的例子演示了SVG中的鼠标事件。 <svg width="400" height="200"> <script><![CDATA[ function showmsg() { alert("you had clicked the green rect"); } ]]></script> <g id="rect1"> <rect id="rectangle" onclick="showmsg()" x="50" y="50" width="100" height="50" style="fill:green"/></g> </svg> 在文本中输入上面代码,用IE打开,然后用鼠标点击绿色的矩形,将会提示“你点击了矩形”的信息。 所以如果要实现对SVG的脚本编程,只需要在相关的元素上增加事件处理函数(onclick="showmsg()"),然后在<script>标记中实现相关函数就可以了。 另外时间处理函数的实现除可以放在SVG的<script>标记中外,也可以放在SVG嵌入的父HTML文件中,这样的话也可以方便的实现SVG和HTML的数据交换。例如下面的例子。 Svg文件:1.svg <svg width="400" height="200"> <g id="rect1"> <rect id="rectangle" onclick="showmsg()" x="50" y="50" width="100" height="50" style="fill:green"/></g> </svg> HTML文件:a.html <html><head><title>SVG事件</title> <script language=javascript> <!— function showmsg() { Alert("you had clicked the green rect "); }
//--> </script> <body > <embed name="id1" pluginspage=”http://www.adobe.com/svg/viewer/install/” align="top" src="1.svg" height="200px" width="200px" type="image/svg+xml"> </body> </html> 当你打开a.html文件后,你会发现效果跟上面的例子一样。 SVG支持的事件有很多,比较常用的有onclick,onmousedown,onmouseup,onmouseout,onmousemove,onload等等。更多的事件请查看: http://www.w3.org/TR/SVG/interact.html (另一部分为http://www.csdn.net/Develop/read_article.asp?id=26677) |
-- 作者:_phoenix -- 发布时间:4/12/2005 11:57:00 PM -- 谢了. |
-- 作者:henrybenben -- 发布时间:4/13/2005 9:22:00 PM -- thanks:) |
-- 作者:ljb622 -- 发布时间:4/27/2005 5:46:00 PM -- 不知道你是否知道如果用C++语言作为脚本,实现某个操作例如点击鼠标右键显示一些内容,是否能实现。谢谢。 |
-- 作者:zzzzzz2 -- 发布时间:5/11/2005 12:48:00 PM -- 有C++ 的脚本语言吗?我怎么没有听说过啊? 现在在Web中使用Javascript已经是大势所趋了,VBScript在Web上比JavaScript少。 |
-- 作者:suming -- 发布时间:5/13/2005 4:26:00 PM -- 试了,弹出的框框说对象错误。没说那句:you had clicked the green rect 这到底是咋回事啊? |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
45.898ms |