java调用javascript svg_基于JavaScript及JAVA的SVG交互应用

本文介绍了基于JavaScript和JAVA的SVG交互应用方法,通过DOM初始化、事件监听器设置来实现SVG图形的动态变化。示例包括JavaScript处理鼠标和键盘事件,动态生成图形如渐开线,展现了SVG在互动应用中的潜力。
摘要由CSDN通过智能技术生成

69

cccef181dcb855a463b748e5ba701e10.png

科技资讯 SCIENCE & TECHNOLOGY INFORMATION

I T 技 术

1.引言

由万维网联盟W3C[1]推出的XML、SVG(Scalable Vec-tor Graphics)[2]及DOM(Document Object Model,文档对象模型规范)[3]是密切相关的技术。SVG是XML格式的二维向量图形技术,在网络地图、网络二维动画中有着广泛的应用潜力;DOM规范为处理存储在XML文档中的信息提供了一组标准编程接口,DOM规范中的DOM事件(DOM Event)可用来编写SVG交互应用程序;SVG标准中与DOM相关的专门说明为DOM技术在SVG中的应用奠定了基础。

作者所在的网络图形应用研究小组主要研究基于XML格式的SVG、X3D应用方法,对SVG动画进行过应用研究[7]。DOM技术及其应用是研究的重点内容之一,是实现复杂SVG交互应用的关键。论文介绍了应用JavaScript及JAVA语言的SVG交互应用方法,具体的实现也是基于SVG的DOM分析及处理。

2.基于JavaScript语言的SVG交互应用

人们可以在IE等网络浏览器上通过安装SVG插件观看与Flash动画类似的SVG动画及互动内容。由于JavaScript语言程序可直接在IE、Netscape网络浏览器上运行而无需安装软件,并且可直接插在SVG文档中或被SVG文档调用,因而人们常常通过编写JavaScript程序段实现复杂的、基于DOM的SVG交互应用。JavaScript程序在SVG中应用的主要步骤是:SVG文档的特定部位设置事件监听器,JavaScript通过初始化函数获取SVG的文档对象模型,由JavaScript的相应函数处理事件发生后的具体事项。

2.1SVG DOM初始化工作

SVG DOM初始化工作可以按下面的方式由JavaScript函数处理:

function init(evt) {……

var myTarget = evt.getTarget();

if( myTarget.getNodeType() != 9 ) // if notDOCUMENT_NODE

svgDoc = myTarget.getOwnerDocument();else

svgDoc = myTarget;//其它语句省略}

并在SVG文档中给出:

<svg width="400" height="300" onload="init(evt)">2.2事件监听器的设置和SVG DOM节点参数的改变

基于JavaScript及JAVA的SVG交互应用

陈曦

(汕头大学工学院 515063)

摘 要:分析了SVG基于DOM的互动应用原理。通过利用JavaScript编程动态生成渐开线的例子,介绍了基于JavaScript编程的SVG互动应用方法;通过JAVA编程控制SVG场景的变化,介绍了基于JAVA编程的SVG互动应用方法。关键词:SVG DOM JavaScript JAVA Batik中图分类号:TP391 文献标志码:A

事件监听器可设置在SVG文档中,如下面的例子,鼠标点击矩形的动作可传到名为change_attrib的JavaScript函数,并由此函数处理其余事项。

<rect id="rect" onclick="change_attrib(evt)" x="50"y="100" width="60" height="50"/>

假如需要使矩形的宽度尺寸为100,可给出下面两个语句:object=svgDoc.getElementById("rectangle");object.setAttribute("width","100");2.3鼠标事件

鼠标触发事件是SVG交互编程里面常常使用,如上面介绍的onclick点击事件。鼠标移进、移出形体时可自动触发mouseover、mouseout事件,此类事件可用于改变线段的宽度、改变形体的颜色等方面,以产生提醒、强调的作用。下面的语句通过具体的JavaScript函数的处理,可使圆变大变小。

<circle cx="150" cy="100" r="25" fill="red"onmouseover="enlarge(evt)"onmouseout="shrink(evt)"/>2.4键盘触发的事件

下面的语句通过具体的JavaScript函数的处理,可将键盘输入的内容显示在SVG图形中。

<g onkeypress="type(evt)">

<rect x="0" y="0" width="400" height="400"/>//其它SVG语句省略</g>

2.5JavaScript生成的高级事件

交互应用的难点在于如何将JavaScript函数结合鼠标、键盘事件,生成复杂的SVG图形,这里给出一个简单的例子:运行下面的HTML文档并点击圆,可由JavaScript函数根据渐开线方程自动生成一段渐开线。改变create函数for循环里的t的数值,可使生成的渐开线可长可短。经过简单的修改,可动态修改渐开线基圆半径。

这里给出的是名为01.svg的SVG文档。

<svg width="400" height="300" onload="init(evt)"><circle onclick="create()" cx="250" cy="200" r="50"fill="none" stroke="black" stroke-width="5" />

<path id="curve" fill="none" stroke="black" stroke-width="2" />

</svg>

这里给出的是HTML文档。<HEAD>

<EMBED src="01.svg"width=400 height=300></P><SCRIPT>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值