Javascript-canvas-drawImage不起作用
Javascript - canvas - drawImage does not work
本文关键字:不起作用 Javascript-canvas-drawImage 更新时间:2023-09-26
我读过所有其他类似的帖子,但我不明白为什么我有这个问题。
我在页面上有一个画布(#canvas)和一个图像(hero.png),在正文末尾加载了一个JS文件。在JS代码中。。。
这项工作:
var game = {};
game.canvas = document.getElementById('canvas');
game.ctx = game.canvas.getContext("2d");
game.draw = function(){
game.ctx.drawImage(game.hero, 200, 200);
}
game.hero = new Image();
game.hero.src = "hero.png";
game.hero.onload = game.draw;
这不起作用:
var game = {};
game.canvas = document.getElementById('canvas');
game.ctx = game.canvas.getContext("2d");
game.hero = new Image();
game.hero.src = "hero.png";
game.hero.onload = game.draw;
game.draw = function(){
game.ctx.drawImage(game.hero, 200, 200);
}
什么也没有出现。控制台中没有错误。为什么?
谢谢!
在定义函数之前,您可以先调用函数,但只能使用以下语法:
function draw()
{
//COde here
}
通过编写
game.draw = function(){};
您为对象定义了一个方法,但没有定义JavaScript函数:这就是为什么在定义它之前不能调用它:)
在您的第二块代码中,您定义了
game.hero.onload = game.draw;
当game.draw未定义时,因此您的加载未定义,并且在加载完图像后不会发生任何事情。
game.draw
在第二个示例中赋值时未设置,您正在将未定义的值复制到hero.onload
中。
一种解决方法是将要调用的函数封装在匿名函数中,然后从那里调用您的函数:
game.hero.onload = function(){ game.draw(); };
请记住,如果hero
在game.draw
的定义完成之前加载,则此代码将失败。
相关文章:
- 为什么这个 .push 不起作用?(JavaScript)
- document.createelement不起作用(javascript)
- Chrome 中表格的 CSV 导出不起作用 - JavaScript/AngularJS
- 如果语句不起作用 - JavaScript
- 为什么我的动态更改链接不起作用?(Javascript)
- RPS 函数不起作用(JavaScript)
- 计时器间隔不起作用 Javascript
- 通过返回 false - 不起作用(javascript)来阻止链接打开
- Eval 不起作用 - JavaScript
- Android 浏览器 .click() 不起作用 javascript
- 为什么这段代码不起作用?Javascript
- jsFiddle显示正确,但一旦在本地运行就不起作用(Javascript)
- 带有html的Navigator不起作用javascript
- 从文本文件中提取内容不起作用 JavaScript
- 从查询字符串中获取参数;不起作用..Javascript
- regex手机验证不起作用-javascript
- if和else语句不起作用(javascript)(html)
- 更改字体大小的复选框不起作用-Javascript
- 为什么这个基本的 if 语句不起作用?JavaScript
- Timer 不起作用/ JavaScript/ innerHTML null