VML模拟Rose画流程图代码

作者:小贩 来源:51js 时间:2008-09-02 10:58:00 

图形由json格式加载,可以灵活配置。

下一步是完善用户的操作,做这个感觉还是蛮有意思的。呵呵。

截图:

部分源码:


<script type="text/javascript">
gSoft.$("tt").value = "";
var selectCategory = 0;
gSoft.$("firstNode").onclick
= gSoft.$("endNode").onclick
= gSoft.$("status").onclick
= gSoft.$("route").onclick
= gSoft.$("control").onclick
//= gSoft.$("polyLine").onclick
= function(){
 selectCategory = parseInt(this.category);
}
gSoft.$("sharpArea").onmousedown = function(){
 event.cancelBubble = true;
 if(selectCategory<=0) return;
 //this.setCapture();
 var getSharp = function(){
  var sharp = null;
  switch(selectCategory){
   case 1:
    //sharp= demo[3];
    //sharp.index = 3;
    break;
   case 2:
    
    break;
   case 3:
    sharp= new gSoft.flow.roundRect({left:event.x,top:event.y,name:""});
    break;
   case 4:
    //sharp= demo[0];
    //sharp.index = 0;
    sharp= new gSoft.flow.line({from:{x:event.x,y:event.y},to:{x:event.x+100,y:event.y+100}});
    //sharp.move([{x:event.x,y:event.y},{x:event.x,y:event.y}])
    break;
   case 5:
    break;
   case 6:
    //sharp= demo[1];
    //sharp.index = 1;
    break;
   default:
    break;
  }
  return sharp;
 }
 var sharp = getSharp();
 if(sharp){
  //gSoft.$("tt").value = sharp;
  sharp.draw();
 }
 /*if(sharp){
  if(sharp.index==0||sharp.index==1){
   sharp.move([{x:event.x,y:event.y},{x:event.x,y:event.y}])
  } else if(sharp.index==2||sharp.index==3){
   sharp.move({left:event.x,top:event.y});
  }
  gSoft.$("tt").innerHTML = [event.x,event.y].join(",");
 }
 //移动
 this.onmousemove = function(){
  var sharp = sharp || getSharp();
  if(sharp.index==0){
   sharp.setTo({x:event.x,y:event.y});
  } else if(sharp.index==1){
   sharp.move([{x:sharp.points[0].x,y:sharp.points[0].y},{x:event.x,y:event.y}])
  } else if(sharp.index==2||sharp.index==3){
  //gSoft.$("tt").value =event.x+":"+event.y+","+sharp.left+":"+sharp.top;
   var width = Math.abs(event.x - sharp.left);
   var height = Math.abs(event.y - sharp.top);
   sharp.setSize({width:width,height:height});//alert(sharp.outerHTML)
  }
 };
  //松开
 this.onmouseup =  function(){
  this.releaseCapture();
  this.onmousemove = null;
  if(sharp){
   var cloneSharp = sharp.clone();
   //gSoft.$("tt").value =cloneSharp;
   sharp.hidden();
  }
 };*/
 
}

var data =[
 {
  id:1,
  type:1,
  name:"节点1",
  left:20,
  top:20
 },
 {
  id:2,
  type:1, 
  name:"节点2",
  left:50,
  top:180
 },
 {
  id:3,
  type:1, 
  name:"节点3",
  left:100,
  top:300
 },
 {
  id:4,
  type:2,
  name:"路由1",
  from:1,
  to:2
 },
 {
  id:5,
  type:2,
  name:"路由2",
  from:2,
  to:3
 },
 {
  id:6,
  type:3,
  name:"控制1",
  route:4
 },
 {
  id:7,
  type:3,
  name:"控制2",
  route:5
 },
 {
  id:8,
  type:1,
  name:"节点4",
  left:50,
  top:420
 },
 {
  id:9,
  type:2,
  name:"路由3",
  from:3,
  to:8
 }/*,
 {
  id:11,
  type:1,
  name:"节点5",
  left:200,
  top:20
 },
 {
  id:10,
  type:2,
  name:"路由4",
  from:1,
  to:11
 }*/
];
var flow = new gSoft.flow(data);
flow.draw();
</script>

完整VML流程图源码下载地址:VML-Rose流程图.rar (6.20 KB)

 

标签:vml,流程图,代码
0
投稿

猜你喜欢

  • mysql如何跨时区迁移数据

    2010-03-25 10:26:00
  • asp通过数组给您的文件列表排序

    2007-10-22 13:45:00
  • (小技巧)复制消息对话框的内容

    2008-10-21 10:51:00
  • 用FSO操作 xml

    2008-09-03 12:26:00
  • Yahoo!网站性能最佳体验的34条黄金守则——JavaScript和CSS

    2008-05-29 13:34:00
  • 关于CSS学习——写给初学者

    2008-07-25 19:17:00
  • Dreamweaver4探谜系列(2)

    2010-05-13 12:08:00
  • 网页设计进阶之一 (步骤和大局观)

    2008-08-23 10:39:00
  • oracle 查询表名以及表的列名

    2009-07-26 09:33:00
  • SQL语句删除2条重复数据一条保留一条

    2012-07-11 15:51:44
  • ASP+SQLServer2000 经验积累

    2008-02-03 15:16:00
  • 如何用ASP创建日志文件

    2008-03-10 17:27:00
  • mysql proxy问题

    2009-02-27 15:54:00
  • ASP UTF-8编码生成静态网页的函数

    2011-03-07 11:24:00
  • XPath详解,总结

    2009-04-17 14:09:00
  • Web标准在中国

    2008-11-26 11:27:00
  • 数据库安全管理的三个经验分享

    2009-04-01 15:49:00
  • WEB前端开发经验总结之实战篇

    2008-06-12 12:49:00
  • WEB2.0网页制作标准教程(10)自适应高度

    2008-02-19 19:21:00
  • 教你怎样在Oracle数据库中高速导出/导入

    2009-02-04 16:59:00
  • asp之家 网络编程 m.aspxhome.com