画布/上下文问题

时间:2011-02-21 16:45:36

标签: javascript html5 canvas

我正在使用标签创建文档,但我遇到了问题。 我已将canvas和context声明为全局变量,并在初始函数中填充它们。这似乎部分工作,但某些函数(例如,一个调用画布宽度)给我错误:“无法在null上调用方法getAttribute”

这是因为我试过用这种方式设置文件吗?我在定义时尝试填充它们(就像它们可以用于局部变量一样),但这似乎产生了同样多的错误!

我正在声明变量:

var canvas = null;
var context = null;

将它们填充到与body onload链接的函数中,如下所示:

canvas = document.getElementById("imageDisplay");
context = canvas.getContext("2d");

我是否应该为每个使用它们的功能重新填充它们?

我昨天在另一段脚本中使用了几乎完全相同的方法,但工作得很好!我不明白我做错了什么!

由于

1 个答案:

答案 0 :(得分:-1)

您的问题可能是一个范围问题。

root或window javascript

var canvas;
var context;
canvas = document.getElementById("imageDisplay");
context = canvas.getContext("2d");

foo();

function foo

foo{
    canvas = document.getElementById("imageDisplay");//errors
    context = canvas.getContext("2d");
}

如果我的理解(javascript和你的问题都是正确的)画布没有定义,因为foo.canvas与window.canvas不同。您需要在foo中重新声明canvas和context,或者使用window.canvas和window.context,或者传入这些变量。我在javascript上有点新手所以希望其他人可以调解