VML绘图板②脚本--VMLgraph.js、XMLtool.js
脚本
*************
* 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
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) 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
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
node[i].setAttribute("fillcolor") = color1.fillcolor;
}
gradientRefresh();
}
function gradientPoint(v) {
if(gradientX gradientX = xo - 508 - parseInt(v.style.left);
n = xo - 508 - gradientX;
if(n 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
}
}
if(node)
buffer += endElement(node,debug);
return buffer;
}
/***** 以下三个函数请根据需要自行修改 *****/
// 遍历xml对象--节点开始
function onElement(Element,debug) {
var buffer = (debug ? " n = Element.attributes.length
if(n>0) { // 若该节点有参数
for(var i=0;i
}
buffer += debug ? ">" : ">";
return buffer;
}
// 遍历xml对象--节点结束
function endElement(Element,debug) {
return (debug ? "" : "") + Element.nodeName + (debug ? ">
" : ">");
}
// 遍历xml对象--节点数据
function onData(Element) {
return Element.nodeValue
}

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

L'automatisation et la planification des tâches jouent un rôle essentiel dans la rationalisation des tâches répétitives dans le développement de logiciels. Imaginez qu'il y ait un script Python qui doit être exécuté toutes les 5 minutes, par exemple pour obtenir des données d'une API, effectuer un traitement de données ou envoyer des mises à jour périodiques. L’exécution manuelle de scripts aussi fréquemment peut prendre du temps et être sujette aux erreurs. C'est là qu'intervient la planification des tâches. Dans cet article de blog, nous explorerons comment planifier l'exécution d'un script Python toutes les 5 minutes, garantissant qu'il s'exécute automatiquement sans intervention manuelle. Nous discuterons de différentes méthodes et bibliothèques qui peuvent être utilisées pour atteindre cet objectif, vous permettant d'automatiser efficacement les tâches. Un moyen simple d'exécuter un script Python toutes les 5 minutes à l'aide de la fonction time.sleep() consiste à utiliser tim

Cutting est un outil de montage vidéo doté de fonctions d'édition complètes, d'une prise en charge de la vitesse variable, de divers filtres et effets de beauté, ainsi que de riches ressources de bibliothèque musicale. Dans ce logiciel, vous pouvez éditer des vidéos directement ou créer des scripts de montage, mais comment faire ? Dans ce tutoriel, l'éditeur présentera la méthode d'édition et de création de scripts. Méthode de production : 1. Cliquez pour ouvrir le logiciel d'édition sur votre ordinateur, puis recherchez l'option « Script de création » et cliquez pour ouvrir. 2. Dans la page du script créatif, saisissez le « titre du script », puis saisissez une brève introduction au contenu du tournage dans le plan. 3. Comment puis-je voir l'option « Description du storyboard » dans le plan ?

Dans le monde numérique en évolution rapide d'aujourd'hui, être capable d'automatiser les tâches informatiques peut augmenter considérablement la productivité et la commodité. L'une des tâches consiste à éteindre l'ordinateur, ce qui peut prendre beaucoup de temps si cela est effectué manuellement. Heureusement, Python nous fournit un ensemble d'outils puissants pour interagir avec le système et automatiser ces tâches. Dans cet article de blog, nous explorerons comment écrire un script Python pour éteindre facilement votre ordinateur. Que vous souhaitiez planifier un arrêt automatique, lancer un arrêt à distance ou simplement gagner du temps en évitant un arrêt manuel, ce script vous sera utile. Importation des modules requis Avant de commencer à écrire le script, nous devons importer les modules nécessaires afin d'interagir avec le système et d'exécuter la commande d'arrêt. Dans cette section, nous importerons le module os (qui

Comment exécuter le fichier .sh sur le système Linux ? Dans les systèmes Linux, un fichier .sh est un fichier appelé script Shell, utilisé pour exécuter une série de commandes. L'exécution de fichiers .sh est une opération très courante. Cet article explique comment exécuter des fichiers .sh dans les systèmes Linux et fournit des exemples de code spécifiques. Méthode 1 : utiliser un chemin absolu pour exécuter un fichier .sh Pour exécuter un fichier .sh dans un système Linux, vous pouvez utiliser un chemin absolu pour spécifier l'emplacement du fichier. Voici les étapes spécifiques : Ouvrez le terminal

1. Qu'est-ce que auto-py-to-exeauto-py-to-exe est un outil graphique utilisé pour regrouper des programmes Python dans des fichiers exécutables. Cet article explique principalement comment utiliser auto-py-to-exe pour terminer le packaging du programme Python. auto-py-to-exe est basé sur pyinstaller. Par rapport à pyinstaller, il possède une interface graphique supplémentaire et est plus simple et plus pratique à utiliser. 2. Pour installer auto-py-to-exe, nous devons d'abord nous assurer que notre python. l'environnement est supérieur ou égal à 2.7 Puis saisissez dans cmd : pip install

Le redémarrage de votre ordinateur est une tâche courante que nous effectuons souvent pour résoudre des problèmes, installer des mises à jour ou appliquer des modifications au système. Bien qu'il existe de nombreuses façons de redémarrer votre ordinateur, l'utilisation d'un script Python offre automatisation et commodité. Dans cet article, nous allons explorer comment créer un script Python capable de redémarrer votre ordinateur avec une simple exécution. Nous aborderons dans un premier temps l’importance du redémarrage de votre ordinateur et les avantages que cela apporte. Nous approfondirons ensuite les détails d’implémentation du script Python, expliquant les modules nécessaires et les fonctionnalités impliquées. Tout au long de cet article, nous fournirons des explications détaillées et des extraits de code pour garantir une compréhension claire. Importance du redémarrage de votre ordinateur Le redémarrage de votre ordinateur est une étape de dépannage de base qui peut

Nous avons conçu ce didacticiel de script Windows PowerShell pour les débutants, que vous soyez un passionné de technologie ou un professionnel cherchant à améliorer vos compétences en matière de script. Si vous n'avez aucune connaissance préalable des scripts PowerShell, cet article commencera par les bases et sera adapté à vos besoins. Nous vous aiderons à maîtriser les étapes d'installation d'un environnement PowerShell et vous guiderons à travers les principaux concepts et fonctionnalités des scripts PowerShell. Si vous êtes prêt à en savoir plus sur les scripts PowerShell, embarquons ensemble dans ce passionnant voyage d'apprentissage ! Qu’est-ce que WindowsPowerShell ? PowerShell est un système de commande hybride développé par Microsoft

Par rapport à tous ceux qui ont entendu des mots tels que lignes de production automatisées et bureaux automatisés, les machines peuvent effectuer diverses tâches par elles-mêmes sans intervention humaine, ce qui améliore considérablement l'efficacité du travail. Il existe différents scripts d'automatisation dans le monde de la programmation pour effectuer différentes tâches. En particulier, Python est très adapté à l’écriture de scripts automatisés car sa syntaxe est concise et facile à comprendre et il dispose d’une riche bibliothèque d’outils tiers. Cette fois, nous utilisons Python pour implémenter plusieurs scénarios d'automatisation, qui peuvent être utilisés dans votre travail. 1. Lire automatiquement les actualités Web Ce script peut capturer le texte des pages Web, puis le lire automatiquement par la voix. C'est un bon choix lorsque vous souhaitez écouter des actualités. Le code est divisé en deux parties. La première consiste à explorer le texte de la page Web via le robot d'exploration et la seconde consiste à lire le texte via l'outil de lecture.
