最近想做一个在页面上涂鸦的东西:一个小说浏览得站点,我想用户在浏览得时候可以一边看一边用鼠标在上面画线,或者写字,(就是一副图片),还可以保存所写内容到当地。不知道该如何实现。
用java吧应该很简单,但是我基础不好,我是做c#的,我想用c#做成dll行吗?该如何实现?请高手指点。

解决方案 »

  1.   

    贴一段java得,抛砖引玉
    <html xmlns:v="urn:schemas-microsoft-com:vml">
    <head>
    <title>画个图</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <STYLE>
     v\:* { BEHAVIOR: url(#default#VML) }
    body {
     margin-left: 0px;
     margin-top: 0px;
     margin-right: 0px;
     margin-bottom: 0px;
     cursor:url(pen_i.cur);
    }
    .p1{cursor:url(pen_i.cur)}
    </STYLE>
    <SCRIPT LANGUAGE="JavaScript">
    //作者坚信科学技术是第一生产力,努力向技术更高峰攀登。决定了就要去做,做就要做好!
    var flag  = 0;
    var ind   = 0; //曲线段计数
    var indNb = 0; //曲线段内部坐标计数
    var point = new Array();
    var xian  = "";
    function microsoftMouseMove() {
     if ((window.event.x != document.all.x.value || window.event.y != document.all.y.value) && flag==1) {
      document.all.x.value = window.event.x;
      document.all.y.value = window.event.y;
      var tx = event.clientX + document.body.scrollLeft;
      var ty = event.clientY + document.body.scrollTop;  //tx=window.event.x+ document.body.scrollLeft;
      //ty=window.event.y+document.body.scrollTop;
      point[ind][indNb] = tx + "," + ty; //记录鼠标x,y坐标
      xian += point[ind][indNb] + " ";  indNb += 1; //点数累加
     }
    }function msDown() {
     xian = "";
     xian = "<v:PolyLine style='POSITION:absolute;Z-INDEX:1;WIDTH:1;HEIGHT:1;TOP:0;LEFT:0' filled='false' Points='"
     point[ind] = new Array();
     indNb = 0; //新线段开始,点数清零
     var tx = event.clientX + document.body.scrollLeft;
     var ty = event.clientY + document.body.scrollTop;  //tx=window.event.x+ document.body.scrollLeft;
      //ty=window.event.y+document.body.scrollTop;
      point[ind][indNb] = tx + "," + ty; //记录
      xian  += point[ind][indNb] + " ";
     indNb += 1; //点数累加
     flag = 1;
    }function msUp() {
     flag = 0;
     ind += 1; //线段数累加
     if (xian != "") {
      xian += "'/>";
      newPoint = document.createElement(xian);
      group1.appendChild(newPoint);
      parent.document.all.txt.value += xian + "\n";
     }
    }function printXd() {
     lin = point.length;
     str = "";
     for (i=0; i<lin; i++) {
      ct  = point[i].length;
      str += "<v:PolyLine style='POSITION:absolute;Z-INDEX:1;WIDTH:5;HEIGHT:5;TOP:0;LEFT:0' filled='false' Points='"
      for (j=0; j<ct; j++) {
       str += point[i][j] + " ";
      }
      str += "'/>\n";
     }
    }
    </SCRIPT>
    </head>
    <body bgcolor="#fef4d9" onmousemove="microsoftMouseMove()" onmousedown="msDown()" onmouseup="msUp()" onselectstart="return false;">
    <div id=test style="display:none;">
     <input type="text" name="x" size="4"><input type="text" name="y" size="4">
    </div>
    <v:group ID="group1" style="WIDTH:200px;HEIGHT:175px;TOP:0;LEFT:0" coordsize="200,200"></v:group>
    </body>
    </html>这个怎么画出来以后位置不太对呀。
      

  2.   

    试一试SVG吧!====CSDN 小助手 V2.5 2005年11月05日发布====
    CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
    界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
    下载:http://szlawbook.com/csdnv2
      

  3.   

    怎么写呢?
    web上怎么绘图?
      

  4.   

    如果是web
    我一直用vml,感觉还不错
    你可以看看vml极道教程
    网上可以载到
    或者看看这个网站
    一个老外的
    很不错
    http://www.walterzorn.com/
      

  5.   

    上面那段java 控制的画线为什么画不准?
    请高手解决
      

  6.   

    vml为什么画不准?
    请看下面的代码:
    <HTML xmlns:v><head>
    <SCRIPT>
    <!--
    function statusreport() {
      var tempx = event.clientX + document.body.scrollLeft;
      var tempy = event.clientY + document.body.scrollTop;
      status='在整个页面中的X, Y坐标 : ('+tempx+', '+tempy+') ; 在当前窗口中的X, Y坐标 : ( '+event.clientX+', '+event.clientY +')';
    }
    //-->
    </SCRIPT><STYLE>
    v\:*{behavior:url(#default#VML);}
    </STYLE>
    </head><BODY onmousemove="statusreport();">
    <v:Polyline points='100 100 200 100 '/>
    直接保存成test.htm运行,就可以看到vml实际点和用java测试出来的点是不准得,
    为什么呀
      

  7.   

    楼主的代码是用javascript写的,不是java。这是有本质区别的。
    个人认为用C#写比较不合算,因为你所有的事件处理都是在服务器端完成的,时间和资源开销太大,而且不能保存到客户端,不符合你的要求。
    像你贴的js的代码是在客户端运行的,可以读写客户端的文件。
      

  8.   

    恩,javascript呵呵
    客户端运行的东东
    里面的vml得坐标点怎么和用java得到的不一样呀
      

  9.   

    帮我看看呀,怎么才能确定java得到的位置和用vml画出来的位置是重合得呢?