Javascript HTML画布函数

Javascript HTML画布函数,javascript,canvas,Javascript,Canvas,我一直在写一些HTML画布代码,以使景观。代码将无法正确执行。我的语法错误是什么?谢谢你,本杰明 var canvas = document.getElementById("mycanvas"); var ctx = canvas.getContext("2d"); var llocation = 600; var length = 360; var linewidth = 2; var testInt = length/(linewidth*2); var wColour = "#994c00

我一直在写一些HTML画布代码,以使景观。代码将无法正确执行。我的语法错误是什么?谢谢你,本杰明

var canvas = document.getElementById("mycanvas");
var ctx = canvas.getContext("2d");
var llocation = 600;
var length = 360;
var linewidth = 2;
var testInt = length/(linewidth*2);
var wColour = "#994c00";
function isEven(value) {
if (value%2 == 0)
    return true;
else
    return false;
}
for(i=0;i<testInt+1;i++){

    if(isEven(i)==true){
        var wColour = "#994c00";
    }
    else if(isEven(i)==false){
        var wColour = "#B87333";
    }

    ctx.beginPath();
    ctx.strokeStyle = wColour;
    ctx.lineWidth = linewidth;
    ctx.rect(llocation,300,length,250);
    ctx.stroke();
    ctx.closePath();
    var llocation = llocation + linewidth;
    var length = length - (linewidth*2);
}
var canvas=document.getElementById(“mycanvas”);
var ctx=canvas.getContext(“2d”);
风险分配=600;
变量长度=360;
var线宽=2;
var testInt=长度/(线宽*2);
var wColour=“#994c00”;
函数isEven(值){
如果(值%2==0)
返回true;
其他的
返回false;
}

对于(i=0;ijavascript的位置和顺序很重要。在最简单的级别上,javascript代码是按照它在页面上出现的顺序执行的。这意味着如果您有一个函数
function foo()
在文件
foo.js
中,并尝试从上面加载文件的脚本调用它
foo.js
它将失败,因为函数尚未加载

为了最安全的方法,请将所有代码放在页面底部,紧靠关闭
标记之前,将包含函数的文件放在调用函数的代码上方

您访问的元素也是如此。如果您在上面的脚本中访问canvas元素,而canvas元素位于文档中,那么它将失败,因为canvas元素尚未加载且不存在

或者,您可以使用document on load事件来启动代码。这将确保已为代码加载和解析了所有内容

document.addEventListener("load",function(){
    // your code
});

控制台中是否有错误?加载资源失败:net::ERR_FILE_NOT_FOUNDNote*当我删除有问题的函数时,最后一个函数drawGround不再工作。其他两个函数将执行。--我将添加html页面代码。我设法找出问题不在于文件的链接。我将删除html文件并保留主程序。我实际上刚刚发现函数的顺序不是问题。对不起!更新的代码中只有语法。谢谢!没问题,很高兴你把它整理好了。顺便说一句,当我第一次阅读你的问题时,我注意到你的页面顶部有Javascript。只是想让你知道把代码放在<代码之外>head
body
将您的浏览器置于所谓的怪癖模式,这将影响代码的性能和页面布局。最好将脚本保留在正确的位置。谢谢,我现在仍然不知道其中的代码语法错误。如果这就是所有代码,那么您将丢失函数
isEven()
使用
如果(i%2===0){
测试偶数
%
表示剩余。同时从底部两行中删除变量。变量已经存在,并且变量标记将导致错误。此外,在
ctx.closePath()之前还有
ctx.stroke()
Close path应该出现在stroke之前,或者它什么都不起作用。如果没有所有的代码,我们很难判断。您应该使用开发工具。在浏览器上点击F12或转到设置,然后找到“开发工具”然后找到
console
选项卡以查看控制台。刷新页面将显示错误。单击错误右侧的页面和行号,它将在出现错误的行上显示源代码。