现在遇到了一个头疼的问题:
我用vml画在浏览器上(IE,遨游)画多边形,本来是用v:polyline来话的,但是考虑到这个封闭比较难解决,于是就考虑用v:shape来画,因为它可以自动闭合,但是就有问题了。 下面的是用前者画的,虽然不封闭,但是基本上符合要求,
<HTML xmlns:v="urn:schemas-microsoft-com:vml">
<HEAD>
<TITLE> 多边形 </TITLE> <script language="javascript">
var flag=0;
var point=" ";
function down(event)
{
var obj=document.getElementById("mainpane");
var x =event.clientX-17;
var y = event.clientY-12; var polyline=document.getElementById("poly");
var fill=document.createElement("v:fill");
fill.opacity=".15";
poly.appendChild(fill);
if(flag==0)
{
point += x +","+ y;
flag = 1;
}
else
{
point += ","+x +","+y;
polyline.points.value = point; }
}
document.oncontextmenu = function()
{
return false;
}
</script>
</HEAD>
<style>
v\:* { BEHAVIOR: url(#default#VML) }
#mainpane
{
width:800px;
height:800px;
border:1px
outset blue;
left:10px;
top:10px;
background:#cc99FF;
}
</style>
<BODY >
<div id="mainpane" style="left:0px;top:0px" onclick="down(event);">
<v:polyline id=poly filled="t" fillcolor="#119" strokecolor="red" strokeweight="3px" style="position:absolute"/>
</div> </BODY>
</HTML>
但是如果改为后者画法,就什么也出不来,代码如下
<HTML xmlns:v="urn:schemas-microsoft-com:vml">
<HEAD>
<TITLE> 多边形 </TITLE> <script language="javascript">
var flag=0;
var path=" ";
function down(event)
{
var obj=document.getElementById("mainpane");
var x =event.clientX-17;
var y = event.clientY-12; var polyline=document.getElementById("polyVml");
var fill=document.createElement("v:fill");
fill.opacity=".15";
poly.appendChild(fill);
if(flag==0)
{
path +="m " + x +","+ y " l " ;
flag = 1;
startX=x;
startY=y;
}
else
{
path += " "+x + "," + y + "x e";
polyline.path.value= path;
}
}
document.oncontextmenu = function()
{
return false;
}
</script>
</HEAD>
<style>
v\:* { BEHAVIOR: url(#default#VML) }
#mainpane
{
width:800px;
height:800px;
border:1px
outset blue;
left:10px;
top:10px;
background:#cc99FF;
}
</style>
<BODY >
<div id="mainpane" style="left:0px;top:0px" onclick="down(event);">
<v:shape id=polyVml coordsize="50,50" filled="t" fillcolor="#119" strokecolor="red" strokeweight="3px" style="position:absolute display:none top:0px left:0px width:50px height=50px"/>
</div>
</BODY>
</HTML>
这两个不是很相似吗,就是一点的区别,但是,我却搞不定,希望大家看一下,帮我解决一下。 如果还有能力的,帮小弟解决一下,双击鼠标左键,如何让画法停止,同时图形也小时,等待下次可以重新画。主要使用在浏览地图的查询功能上。 万分感激!!!
我用vml画在浏览器上(IE,遨游)画多边形,本来是用v:polyline来话的,但是考虑到这个封闭比较难解决,于是就考虑用v:shape来画,因为它可以自动闭合,但是就有问题了。 下面的是用前者画的,虽然不封闭,但是基本上符合要求,
<HTML xmlns:v="urn:schemas-microsoft-com:vml">
<HEAD>
<TITLE> 多边形 </TITLE> <script language="javascript">
var flag=0;
var point=" ";
function down(event)
{
var obj=document.getElementById("mainpane");
var x =event.clientX-17;
var y = event.clientY-12; var polyline=document.getElementById("poly");
var fill=document.createElement("v:fill");
fill.opacity=".15";
poly.appendChild(fill);
if(flag==0)
{
point += x +","+ y;
flag = 1;
}
else
{
point += ","+x +","+y;
polyline.points.value = point; }
}
document.oncontextmenu = function()
{
return false;
}
</script>
</HEAD>
<style>
v\:* { BEHAVIOR: url(#default#VML) }
#mainpane
{
width:800px;
height:800px;
border:1px
outset blue;
left:10px;
top:10px;
background:#cc99FF;
}
</style>
<BODY >
<div id="mainpane" style="left:0px;top:0px" onclick="down(event);">
<v:polyline id=poly filled="t" fillcolor="#119" strokecolor="red" strokeweight="3px" style="position:absolute"/>
</div> </BODY>
</HTML>
但是如果改为后者画法,就什么也出不来,代码如下
<HTML xmlns:v="urn:schemas-microsoft-com:vml">
<HEAD>
<TITLE> 多边形 </TITLE> <script language="javascript">
var flag=0;
var path=" ";
function down(event)
{
var obj=document.getElementById("mainpane");
var x =event.clientX-17;
var y = event.clientY-12; var polyline=document.getElementById("polyVml");
var fill=document.createElement("v:fill");
fill.opacity=".15";
poly.appendChild(fill);
if(flag==0)
{
path +="m " + x +","+ y " l " ;
flag = 1;
startX=x;
startY=y;
}
else
{
path += " "+x + "," + y + "x e";
polyline.path.value= path;
}
}
document.oncontextmenu = function()
{
return false;
}
</script>
</HEAD>
<style>
v\:* { BEHAVIOR: url(#default#VML) }
#mainpane
{
width:800px;
height:800px;
border:1px
outset blue;
left:10px;
top:10px;
background:#cc99FF;
}
</style>
<BODY >
<div id="mainpane" style="left:0px;top:0px" onclick="down(event);">
<v:shape id=polyVml coordsize="50,50" filled="t" fillcolor="#119" strokecolor="red" strokeweight="3px" style="position:absolute display:none top:0px left:0px width:50px height=50px"/>
</div>
</BODY>
</HTML>
这两个不是很相似吗,就是一点的区别,但是,我却搞不定,希望大家看一下,帮我解决一下。 如果还有能力的,帮小弟解决一下,双击鼠标左键,如何让画法停止,同时图形也小时,等待下次可以重新画。主要使用在浏览地图的查询功能上。 万分感激!!!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货