Javascript JS:为什么不是';此变量是否可用于其他函数?
我正在尝试制作画布动画:Javascript JS:为什么不是';此变量是否可用于其他函数?,javascript,variables,undefined,Javascript,Variables,Undefined,我正在尝试制作画布动画: var context; var meter; var pin; function init() { var meter = new Image(); var pin = new Image(); var context = document.getElementById('canvas').getContext('2d'); meter.src = 'background.png'; pin.src = 'needle.png
var context;
var meter;
var pin;
function init() {
var meter = new Image();
var pin = new Image();
var context = document.getElementById('canvas').getContext('2d');
meter.src = 'background.png';
pin.src = 'needle.png';
context.drawImage(meter,0,0);
context.translate(275,297);
context.save();
setTimeout(startup,500);
}
function startup() {
var r=2; // set rpm here.
var i=r*36-27;
var angleInRadians = 3.14159265 * i/180; //converting degree to radian
context.rotate(angleInRadians); //rotating by angle
context.drawImage(pin,-250,-3); //adjusting pin center at meter center
context.restore();
}
您可以在以下位置看到脚本:
对于firebug,我得到一个错误,说上下文未定义,我认为这很奇怪
谢谢
亲切问候,,
Marius可能是因为您在init()函数中使用了“var”,这使得新的“context”变量成为该函数的局部变量,而不是向全局变量添加定义。因此,只要在init()函数中将“var”放在“context”之前,它就可以工作了。您也应该将var放在meter和pin前面。您在init()函数中将上下文定义为局部变量,因此全局范围的上下文变量始终为null。 更改行:
var context = document.getElementById('canvas').getContext('2d');
至
context = document.getElementById('canvas').getContext('2d');
您正在这里声明另一个局部变量context
,它仅在init
中有效。“外部”上下文
保持其未定义的值
。删除变量
,它将分配给外部上下文
var context = document.getElementById('canvas').getContext('2d');