网络编程
位置:首页>> 网络编程>> JavaScript>> VML模拟Rose画流程图代码

VML模拟Rose画流程图代码

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

标签:vml,流程图,代码

图形由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)

 

0
投稿

猜你喜欢

  • 这篇论坛文章(赛迪网技术社区)主要介绍了一些特别有用但文档中没有介绍的sql server DBCC命令,详细内容请参考下文:以下是一些sq
  • div+css实现圆角边框,在网络上查看了一下,很多都是实现圆角的矩形的方法,我在这里介绍的是实现圆角矩形边框的方法。用代码说明问题:<
  • MySQL使用于认证目的的用户名,与Unix用户名(登录名字)或Windows用户名无关。缺省地,大多数MySQL客户尝试使用当前Unix用
  • <SCRIPT language="JavaScript"><!-- Beginfunction mo
  • 笔者认为,在创建索引时要做到三个适当,即在适当的表上、适当的列上创建适当数量的索引。虽然这可以通过一句话来概括优化的索引的基本准则,但是要做
  • 大家平时见到google的广告太多了,但有没有兴趣知道一下它的运行过程呢?下面我们一起来看看这个广告代码的执行过程,以及其中的一些精彩内容。
  • documentFragment 是一個無父對象的document對象.他支持以下DOM2方法:appendChild, cloneNode
  • 3月27日,淘宝网获得了由国际权威机构G-CEM颁发的2008年度亚洲区在线客户体验大奖,这是全球互联网企业首次获得此殊荣。如何在让买家更方
  • 学习目的 学会SQL中的占位符用法 在鲸鱼这几天忙死了,好几天没写了,真对不起各位。这几天让XHTML闹得不开心,虽然以前也知道这个,但没太
  • 本文通过实际业务系统中调整的一个案例,试图给出一个常见CPU消耗问题的一个诊断方法.大多数情况下,系统的性能问题都是由不良SQL代码引起的,
  • 利用oracle的dbms_random包结合rownum来实现,示例如下,随机取499户:select * from ( select *
  • 最近关于浏览器的最重要的事情就是IE的极光0day漏洞了,这个漏洞导致包括Google在内的多家美国公司受到黑客的攻击,当然也有很多网站被黑
  • 因为写js经常需要用到访问样式,我们常用的做法是通过 DOM.style.XXX来读写样式信息的。可是DOM.style这种写法只能访问&l
  • 如何对设计进行评判,一定有很多答案,有利有弊。问100位设计师,会得到100种回答。用线上PV、UV等数据说话,更多受产品属性、运营动作影响
  •  var getWindow = function(obj) { var&nbs
  • 在Asp中如何得到所有表单的名称跟对应的值。其实,这个问题很简单,但是可能还是有很多人不知道该怎么做,所以特地写下来,仅供参考。在Asp程序
  • 我一般看书喜欢做笔记,这份笔记不知道是什么时候看的什么书做的,也忘了是否是摘自其他地方,总之一份汇总,应该适合初学者,对于Javascrip
  • 1、为什么淘宝的手机频道页面,竟然会有笔记本、数码相机、随身听,甚至是游戏之类的栏目,而且还有一个“数码·生活”栏目是包括以上这些设备的综合
  • Access允许您在数据库表中包含附件。通过利用微软的对象链接和嵌入(OLE)技术,您可以将照片、图表、文档及其他文件存储在您的Access
  • 一、数据库远程管理技术 对于中小型应用,比如一个网站的建设和维护,这种大型应用平台就显得有些尾大不掉,开销也过于庞大。曾经在互联网技术和Ja
手机版 网络编程 asp之家 www.aspxhome.com