以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 SVG/GML/VRML/X3D/XAML 』  (http://bbs.xml.org.cn/list.asp?boardid=21)
----  请问高手,在svg文件中动态生成的svg图形如何保存?  (http://bbs.xml.org.cn/dispbbs.asp?boardid=21&rootid=&id=35191)


--  作者:sdhfll
--  发布时间:7/4/2006 11:18:00 AM

--  请问高手,在svg文件中动态生成的svg图形如何保存?
在svg中,我通过鼠标单击事件触发一个函数,生成一个矩形<rect>,现在如何保存这个矩形呢?下次再打开这个文件时,上次生成的矩形已经显示在页面中.另外这个生成的矩形是否可以通过某种方法保存在另一个svg中呢?请高手指点.
--  作者:daidaixiong
--  发布时间:7/5/2006 4:39:00 PM

--  
用printnode()应该可以吧
function SaveTheShape(evt)
      {
         rectshape=drawrect.childNodes;
         rectcount=rectshape.length;
         if(top.clipboardData)
         {
           mark="<?xml version=\"1.0\" encoding=\"ISO-8859-1\" standalone=\"no\"?>\r\n";
           mark+="<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.0//EN\"\r\n";
           mark+="  \"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd\">\r\n\r\n";
           mark+="<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns=\"http://www.w3.org/2000/svg\">\r\n\r\n";
           mark+="  <desc>The Painted Shapes</desc>\r\n";
           mark+="<g>\r\n";
           for(i=0;i<rectcount;i++)
           {
            mark+="\r\n  "+printNode(rectshape.item(i));
           }
           mark+="\r\n </g>";
           
         
           mark+="\r\n\r\n</svg>\r\n";
           top.clipboardData.setData("Text",mark);
           
         }
      }
rectshape=drawrect.childNodes--假设你画的矩形是包含在id为drawrect的<g id="drawrect">里面。
不过这样保存完了你得建一个空白文档,然后自己粘贴过去,不知道符合你要求不。
--  作者:vagerent
--  发布时间:7/24/2006 8:53:00 PM

--  
请高手们解决啊,狂顶!
--  作者:upc2neiep
--  发布时间:7/24/2006 9:36:00 PM

--  
要么存在数据库 要么就照楼上存为xml文件 我只能这么想了
--  作者:ncepuyuyu
--  发布时间:8/1/2006 11:31:00 AM

--  
存在数据库怎么还原呢?
如果我要动态画的图很复杂,包括点,线,文字,矩形,线之间关系复杂
要存在数据库中很复杂的,能不能直接存成svg文件呢
期待高手解答
--  作者:sdhfll
--  发布时间:8/1/2006 2:12:00 PM

--  
谢谢大家的帮助,大概思路是这样的:把生成的新节点放在一个确定的文档节点下,图形操作完后,把此确定节点内容(用到printNode),另外存到一个svg文件。
to  ncepuyuyu:
请问任意两个图形的连线你是怎么实现的?可以交流一下。各位大侠有知道的吗?也来交流交流。
--  作者:ncepuyuyu
--  发布时间:8/1/2006 5:25:00 PM

--  
大概明白你的意思了,谢谢sdhfll和其他人
任意两个图形连线我还没写代码.
能不能咱们代码共享啊,加我QQ好么173063526
--  作者:daidaixiong
--  发布时间:8/2/2006 8:46:00 AM

--  
用file= new ActiveXObject("Scripting.FileSystemObject"),好像是有file.createTextFile(),可以自动按照你指定的位置把svg图形文件保存下来。以前试过,应该可以吧。嘿嘿。
--  作者:upc2neiep
--  发布时间:8/9/2006 9:05:00 AM

--  
按照8楼的方法,我的怎么显示“automation 服务器不能创建对象” 或者“ActiveXObject 未定义”
--  作者:daidaixiong
--  发布时间:8/11/2006 2:31:00 PM

--  
哦, 这个问题我还真没注意过,不太清楚什么原因。你试试把svg嵌入到html中,然后再用这种办法,看看能行不能行。如果不行的话我还没想过是为什么,不好意思。
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms