电信主站 网通分站
购买流程 付款方式 常见问题 在线提问 续租服务 购物车
用户名: 密 码: 忘记密码?
首 页
域名注册
虚拟主机
双线主机
服务器租用
VPS主机
企业邮局
代理专区
客服中心
虚拟主机行业资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:西部数码->资讯中心-> 在线教程-> PHP
VML绘图板②脚本--VMLgraph.js、XMLtool.js-PHP教程,XML应用
作者:网友供稿 点击:20
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 
脚本
*************
* vmlgraph.js
*************
var xo=0;
var yo=0;
var ox=80;
var oy=20;
var dx=0;
var dy=0;
var drawkey = false;
var itemid = 0;
var shapeitemnum = 0;
var shapeitemx = 0;
var shapeitemy = 0;
var curveitemnum = 0;
var nodedelete = false;
var toolbarnum = 2; // 预置的工具编号
var gradientx = -1;

function cursor(k) {
  xo = event.clientx - ox;
  yo = event.clienty - oy;
  if(k && xo>=0 && yo>=0)
    oxy.innerhtml = xo+","+yo;
  else
    oxy.innerhtml = "";
  if(drawkey) {
    paint();
    view.innerhtml = tree(canvas.documentelement,0);
  }
}

function setovercolor(v) {
  if(! nodedelete) return;
  v.mycolor = v.strokecolor;
  if(v.strokecolor == "red")
    v.strokecolor=#000000;
  else
    v.strokecolor=#ff0000;
}
function setoutcolor(v) {
  if(! nodedelete) return;
  v.strokecolor = v.mycolor;
  view.innerhtml = tree(canvas.documentelement,0);
}
function deletenode(v) {
  if(! nodedelete) return;
  var id = v.id;
  for(i=0;i<canvas.selectnodes("/*//*").length;i++) {
    var node = canvas.selectnodes("/*//*")[i];
    if(node.getattribute("id") == id) {
      canvas.documentelement.childnodes[0].removechild(node);
      view.innerhtml = tree(canvas.documentelement,0);
      return;
    }
  }
}

function setelement(node) {
  node.setattribute("id") = itemid;
  node.setattribute("mycolor") = "#";
  node.setattribute("onmouseover") = "setovercolor(this)";
  node.setattribute("onmouseout") = "setoutcolor(this)";
  node.setattribute("onclick") = "deletenode(this)";

  var subobjfield = canvas.createelement("v:stroke");
  subobjfield.setattribute("color") = color1.fillcolor;
  subobjfield.setattribute("dashstyle") = dashstyle.dashstyle;
  node.appendchild(subobjfield);
  if(textbox.style.visibility == "visible" && txt.value.length) {
    var subobjfield = canvas.createelement("v:path");
    subobjfield.setattribute("textpathok") = "true";
    node.appendchild(subobjfield);
    var subobjfield = canvas.createelement("v:textpath");
    subobjfield.setattribute("on") = "true";
    subobjfield.setattribute("string") = txt.value;
    subobjfield.setattribute("style") = "font:normal normal normal 16pt arial black";
    node.appendchild(subobjfield);
  }
  canvas.documentelement.childnodes[0].appendchild(node);
}

function mouse_down() {
  drawkey = true;
  dx = xo;
  dy = yo;
  itemid++;
  if(toolbarnum != 7) shapeitemnum = 0;
  switch(toolbarnum) {
    case 3:
      var objfield = canvas.createelement("v:line");
      objfield.setattribute("from") = xo+","+yo;
      objfield.setattribute("to") = xo+","+yo;
      return setelement(objfield);
    case 4:
      if(curveitemnum == 0) {
        curveitemnum = 1;
        var objfield = canvas.createelement("v:curve");
        objfield.setattribute("from") = xo+","+yo;
        objfield.setattribute("to") = xo+","+yo;
        objfield.setattribute("control1") = xo+","+yo;
        objfield.setattribute("control2") = xo+","+yo;
        var subobjfield = canvas.createelement("v:fill");
        subobjfield.setattribute("opacity") = 0;
        objfield.appendchild(subobjfield);
        return setelement(objfield);
      }
      return;
    case 9:
      var objfield = canvas.createelement("v:polyline");
      objfield.setattribute("points") = xo+","+yo+" "+xo+","+yo;
      var subobjfield = canvas.createelement("v:fill");
      subobjfield.setattribute("opacity") = 0;
      objfield.appendchild(subobjfield);
      return setelement(objfield);
    case 7:
      if(shapeitemnum == 0) {
        var objfield = canvas.createelement("v:shape");
        objfield.setattribute("style") = "width:500; height:309";
        objfield.setattribute("path") = "m "+xo+","+yo+" l "+xo+","+yo;
        shapeitemx = xo;
        shapeitemy = yo;
      }else {
        objfield = canvas.documentelement.childnodes[0].lastchild;
        objfield.setattribute("path") = objfield.getattribute("path") + " "+xo+","+yo;
        return;
      }
      shapeitemnum++;
      break;
    case 5:
      var objfield = canvas.createelement("v:rect");
      break;
    case 6:
      var objfield = canvas.createelement("v:roundrect");
      objfield.setattribute("arcsize") = 0.2;
      break;
    case 8:
      var objfield = canvas.createelement("v:oval");
      break;
    case 10:
      s = "";
      s = tree(canvas.documentelement,1);
      view.innerhtml = s;
      return;
    defaule:
      drawkey = false;
      return;
  }
  if(objfield) {
    if(toolbarnum != 7)
      objfield.setattribute("style") = "left:"+xo+"; top:"+yo+"; width:0; height:0;";
    var subobjfield = canvas.createelement("v:fill");
    subobjfield.setattribute("opacity") = gradientbar.opacity;
    subobjfield.setattribute("angle") = gradientbar.angle;
    subobjfield.setattribute("type") = gradientbar.type;
    subobjfield.setattribute("color") = gradientbar.color.value;
    subobjfield.setattribute("color2") = gradientbar.color2.value;
    subobjfield.setattribute("colors") = gradientbar.colors.value;
    subobjfield.setattribute("focusposition") = gradientbar.focusposition;
    objfield.appendchild(subobjfield);
    return setelement(objfield);
  }
  return;
}

function mouse_up() {
  drawkey = false;
  if(curveitemnum > 0) curveitemnum++;
  if(curveitemnum > 3) curveitemnum = 0;
  if(toolbarnum == 7) {
    if(math.abs(xo - shapeitemx) < 2 && math.abs(yo - shapeitemy) < 2) {
      shapeitemnum = 0;
      element = canvas.documentelement.childnodes[0].lastchild;
      var regerp = / [0-9]+,[0-9]+$/
      var str = element.getattribute("path");
      element.setattribute("path") = str.replace(regerp," x e");
      view.innerhtml = tree(canvas.documentelement,0);
    }
  }
}

function paint() {
  element = canvas.documentelement.childnodes[0].lastchild;
  var x0,y0,x1,y1;
  x0 = math.min(dx,xo);
  y0 = math.min(dy,yo);
  x1 = math.max(dx,xo);
  y1 = math.max(dy,yo);
  var box = "left:"+x0+"; top:"+y0+"; width:"+(x1-x0)+"; height:"+(y1-y0)+";";
  switch(toolbarnum) {
    case 4:
      if(curveitemnum ==2) {
        element.setattribute("control1") = xo+","+yo;
        element.setattribute("control2") = element.getattribute("to");
        break;
      }
      if(curveitemnum ==3) {
        element.setattribute("control2") = xo+","+yo;
        break;
      }
    case 3:
      element.setattribute("to") = xo+","+yo;
      break;
    case 7:
      var regerp = /[0-9]+,[0-9]+$/
      var str = element.getattribute("path");
      element.setattribute("path") = str.replace(regerp,xo+","+yo);
      break;
    case 5:
    case 6:
    case 8:
      var regerp = /left.+height:[0-9]+;/
      var str = element.getattribute("style");
      element.setattribute("style") = str.replace(regerp,box);
      break;
    case 9:
      var regerp = / [0-9]+,[0-9]+$/
      var str = element.getattribute("points");
      element.setattribute("points") = str+" "+xo+","+yo;
      break;
    defaule:
      break;
  }
  
}

function init() {
  tool_box_refresh();  // 工具栏初始
  view.innerhtml = tree(canvas.documentelement);  // 绘图区初始
  color.innerhtml = tree(tools.selectnodes("*/colorbar")[0]);  // 颜色选择初始
  linebox.innerhtml = tree(tools.selectnodes("*/linebox")[0]);  // 线型选择初始
  gradientbox.innerhtml = tree(tools.selectnodes("*/gradient")[0]);  // 充填选择初始
}

// 绘制工具栏
function tool_box_refresh() {
  var buffer = "";
  var i;
  for(i=0;i<tools.selectnodes("*/toolbar").length;i++) {
    var node = tools.selectnodes("*/toolbar")[i];
    var id = node.getattribute("id");
    node.childnodes[0].setattribute("onclick") = "tool_box_select("+id+",this.title)";
    var node1 = node.selectnodes("*/v:rect")[0];
    if(id == toolbarnum) {
      node1.setattribute("fillcolor") = "#ffcccc"
      node1.setattribute("strokecolor") = "#ff0000"
    }else {
      node1.setattribute("fillcolor") = "#ffffff"
      node1.setattribute("strokecolor") = "#000000"
    }
    buffer += tree(node.childnodes[0]);
  }
  toolbox.innerhtml = buffer;
}

// 工具选择
function tool_box_select(v,t) {
  var key = toolbarnum;
  toolbarnum = v;
  tool_box_refresh();
  hooke();
  if(v == 7) {
    if(key == 7 && shapeitemnum > 0) {
      element = canvas.documentelement.childnodes[0].lastchild;
      var str = element.getattribute("path");
      element.setattribute("path") = str + " x e";
      view.innerhtml = tree(canvas.documentelement,0);
      shapeitemnum = 0;
    }
  }
  if(v == 10)
    if(textbox.style.visibility == "hidden")
      textbox.style.visibility = "visible";
    else
      textbox.style.visibility = "hidden";
  nodedelete = false;
  if(v == 1) {
    nodedelete = true;
    view.innerhtml = tree(canvas.documentelement,0);
  }
}

// 颜色选择
//var setcolorkey = color1;
function setcolor(c) {
  var setcolorkey = color1;
  setcolorkey.fillcolor = c;
}

function gradientcolor(v) {
  v.fillcolor = color1.fillcolor;
  gradientrefresh();
  return;
  var m = tools.documentelement.selectnodes("/*/gradient//v:shape").length;
  var node = tools.documentelement.selectnodes("/*/gradient//v:shape");
  for(i=0;i<m;i++) {
    if(node[i].getattribute("id") == v.id)
      node[i].setattribute("fillcolor") = color1.fillcolor;
  }
  gradientrefresh();
}
function gradientpoint(v) {
  if(gradientx < 0)
    gradientx = xo - 508 - parseint(v.style.left);
  n = xo - 508 - gradientx;
  if(n < 8) n = 8;
  if(n > 108) n = 108;
  v.style.left = n;
  gradientrefresh();
}
function anglepoint(v) {
  angle.style.left = math.floor((xo-516)/25)*25+8;
  gradientrefresh();
}
function opacitypoint(v) {
  opacity.style.left = math.floor((xo-516)/25)*25+8;
  gradientrefresh();
}
function settype(v) {
  if(v.style.bordercolor == "black")
    v.style.bordercolor = "red";
  else
    v.style.bordercolor = "black";
  gradientrefresh();
}
function setgradientx() {
gradientx = -1;
}

function gradientrefresh() {
  var m = (parseint(gradient4.style.left)-parseint(gradient1.style.left));
  var n1 = (parseint(gradient2.style.left)-parseint(gradient1.style.left))/m*100;
  var n2 = (parseint(gradient3.style.left)-parseint(gradient1.style.left))/m*100;
  gradientbar.color.value = gradient1.fillcolor;
  gradientbar.color2.value = gradient4.fillcolor;
  if(type3.style.bordercolor == "black")
    gradientbar.colors.value = ",";
  else
    gradientbar.colors.value = n1 + "% " + gradient2.fillcolor + "," + n2 + "% " + gradient3.fillcolor;
  if(type1.style.bordercolor == "black")
    gradientbar.type = "solid";
  else
    gradientbar.type = "gradient";
  if(type2.style.bordercolor == "red")
    gradientbar.type = "gradientradial";
  n1 = (parseint(focus1.style.left)-8)/m*100;
  n2 = (parseint(focus2.style.left)-8)/m*100;
  gradientbar.focusposition.value = n1 + "%," + n2 + "%";
  gradientbar.angle = (parseint(angle.style.left)-8) * 3.6;
  gradientbar.opacity = (parseint(opacity.style.left)-8)/m
}

*************
* xmltool.js
*************

// 传送xml文档到服务器
function savexml()
{
  var xmlhttp = new activexobject("microsoft.xmlhttp");
  xmlhttp.open("post","server.php",false); // 使用asp时用server.asp
  xmlhttp.setrequestheader("contrn-type","text/xml");
  xmlhttp.setrequestheader("contrn-charset","gb2312");

  xmlhttp.send(tree(canvas.documentelement));
  var s = xmlhttp.responsetext;
  minview.innerhtml = s.replace(/width:500;height:300/,"width:120;height:72")
  if(xmlhttp.responsetext.indexof("error:")!=-1) {
    alert(xmlhttp.responsetext);
  }
}

// 遍历xml对象,解析xml的核心函数集
function tree(element,debug) {
  var buffer = "";
  var node = "";
  if(element.nodetype != 3) {
    node = element;
    buffer += onelement(element,debug);
  }
  if(element.nodetype == 3)
    buffer += ondata(element);
  if(element.haschildnodes) {
    for(var i=0;i<element.childnodes.length;i++) {
      buffer += tree(element.childnodes(i),debug);
    }
  }
  if(node)
    buffer += endelement(node,debug);
  return buffer;
}

/***** 以下三个函数请根据需要自行修改 *****/
// 遍历xml对象--节点开始
function onelement(element,debug) {
  var buffer = (debug ? "<" : "<") + element.nodename;
  n = element.attributes.length
  if(n>0) {  // 若该节点有参数
    for(var i=0;i<n;i++)
      buffer += + element.attributes(i).name + =\" + element.attributes(i).value + ";
  }
  buffer += debug ? ">" : ">";
  return buffer;
}

// 遍历xml对象--节点结束
function endelement(element,debug) {
  return (debug ? "</" : "</") + element.nodename + (debug ? "><br>" : ">");
}

// 遍历xml对象--节点数据
function ondata(element) {
  return element.nodevalue
}

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关主题
文章页数:[1] 
Google
热门文章
·Windows下的PHP5.0安装配制详解-PHP教程,PHP安装
·PHP在XP下IIS和Apache2服务器上的安装-PHP教程,PHP应用
·最近忙于FTP,好站多多!有好多好东东哦!不敢独享!-PHP教程,PHP基础
·PHP 5.0 Pear安装方法-PHP教程,PHP安装
·PHP开发利器-PRADO 1.6(4)-PHP教程,PHP应用
·Sun Sparc Solaris 2.6 Apache-1.3.12+MySQL-3.23.5+PHP-3.0.15 安装记-PHP教程,PHP应用
·php5学习笔记(转)-PHP教程,PHP应用
·APACHE安装笔记-PHP教程,PHP安装
·PHP.MVC的模板标签系统(四)-PHP教程,PHP应用
·PHP.MVC的模板标签系统(二)-PHP教程,PHP应用

最新文章
·PHP源码-利用 QQWry.Dat 实现 IP 地址高效检索
·Php高手带路--问题汇总解答[2]
·PHPQQ编程(2):取QQ在线状态
·php5手动最简安装方法
·福利彩票幸运号码自动生成器
·PHP开发利器-PRADO 1.6
·在Apache 服务器上启用PHP支持
·Windows2000_pro下安装Apache+PHP4+My
·php文件上传的实现
·PHP开发框架的现状和展望




版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
  打印  刷新  关闭
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 虚拟主机 | 资讯中心 | 友情链接 | 网站地图

版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2006 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86262244 86263048 86263408 86263960 86264018 86267838
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028-86264041 财务QQ:点击发送消息给对方635483282
售前咨询QQ:点击发送消息给对方2182518 点击发送消息给对方241975952 点击发送消息给对方275026793 点击发送消息给对方408235859
售后服务QQ:点击发送消息给对方17708515 点击发送消息给对方307742704 点击发送消息给对方287976517 点击发送消息给对方363783715
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号