obj.points.value = "100,100 200,250 300,400 500,800";

解决方案 »

  1.   

    直接写point不要get set之类的,注意这里的point是相对的,移动的时候很容易出错
      

  2.   

    去下载 美洲豹think in vml
    里面介绍的蛮详细的
      

  3.   

    to hbhbhbhbhb1021(天外水火(我要多努力)) 
    这个很成问题....
    取出的point都是pt,要和px换算,
    目前我是按3:4换算
    和屏幕分辨率有关吗?不同分辨率下表现不同?
      

  4.   

    美洲豹的那个教程写得还是有些少,但是很简明易懂
    也可以看看风云舞的VML那个,不过他那个功能比较多,要看一阵才能完全看明白
    赋值的时候用replace直接替换会好一点
      

  5.   

    两本都看过,美洲豹的的确简单些,入门快
    不过现在很少用到vml了,偶尔客户要求表现力强的时候,才会考虑
    这个玩意儿,手册太少,太不全面了
    就连msdn上对points的描述都没法用
    http://msdn.microsoft.com/workshop/author/vml/SHAPE/PREDEF/polyline_points.asp
    上面是这样写的:
    Script Syntax 
    element.points="expression"
    expression=element.points靠!
    另外
    "赋值的时候用replace直接替换会好一点"
    不解考虑统一用pt赋值....
      

  6.   

    可以把point当成一个字符串替换啊,replace(/(\d+)/,function(a,b){return})这种
      

  7.   

    难度不在于points的赋值替换,在于px和pt的换算
    例如
    <v:polyline points="630,330 630,530 480,530" 
    在js取值的时候就会变成
    472.5pt 247.5pt 等等.....因为牵扯到polyline的即时拖动换算,要把pt和event.clientX值相互换算,很麻烦....
      

  8.   

    无趣的vml,讨厌的单位换算,结贴了~~~~~~
      

  9.   

    其实做拖动的时候比较简单,不用换算,直接增加一个属性记录坐标数据处理初始
    obj.points.value = event.clientX + ',' + event.clientY;
    obj.setAttribute("pointsXY",event.clientX + ',' + event.clientY)移动
    pts = obj.getAttribute("pointsXY") + ' ' + event.clientX + ',' + event.clientY;
    obj.setAttribute("pointsXY",pts);
    obj.points.value = pts;