这现在工作正常,如何在没有数组的情况下完成(仅使用侦听器),我需要将代码更改为没有数组但具有相同的功能。
这是Javascript代码。它是一个简单的绘图应用程序。
$(document).ready(function(){
var x;
var y;
var canv = $("#myCanvas")[0];
var ctx = canv.getContext("2d");
var lines = new Array();
$("#myCanvas").click(function(event)
{
x = event.pageX - $("#myCanvas").offset().left;
y = event.pageY - $("#myCanvas").offset().top;
ctx.fillStyle = "#" + $("#barvaPolnila").val();
ctx.strokeStyle = "#" + $("#barvaCrte").val();
ctx.lineWidth = $("#sirina").val();
fill = $("input[name=polni]").is(":checked");
width = $("#dolzina").val();
shape = $("input[@name='lik']:checked").val();
if (shape == 'krog') {
ctx.beginPath();
ctx.arc(x, y, width, 0*Math.PI, 2*Math.PI);
if(fill)
ctx.fill();
else
ctx.stroke();
} else if(shape == "kvadrat") {
ctx.rect(x, y, width, width);
if(fill)
ctx.fill();
else
ctx.stroke();
} else {
if(lines[0] !== undefined) {
ctx.moveTo(lines[lines.length-1][0], lines[lines.length-1][1]);
ctx.lineTo(x, y);
ctx.stroke();
} else
ctx.beginPath();
lines.push([x, y]);
}
});
$("#skrij").click(function() {
gumb = $(this);
nadzornaPlosca = $("#nadzornaPlosca");
nadzornaPlosca.slideToggle(400, function() {
if($(this).is(":visible")) {
gumb.attr("value", "-");
} else {
gumb.attr("value", "+");
}
});
});
$("#zakljuci").click(function() {
if(lines[0] !== undefined) {
ctx.moveTo(lines[lines.length-1][0], lines[lines.length-1][1]);
ctx.lineTo(lines[0][0], lines[0][1]);
ctx.stroke();
if($("input[name=polni]").is(":checked")) {
ctx.beginPath();
for(i = 0; i < lines.length; i++) {
ctx.lineTo(lines[i][0], lines[i][1]);
}
ctx.closePath();
ctx.fill();
}
}
lines = new Array();
});
$("input[name=lik]").change(function() {
lines = new Array();
});
$("#brisi").click(function() {
ctx.clearRect(0, 0, canv.width, canv.height);
})
});