javascript - 关于 Canvas 上的 JavaScript 的查询
问题描述
我无法找出问题所在。我无法在画布上打印“你好”这个词,但我的代码似乎是合乎逻辑的。我已经尝试了 30 分钟来解决问题。
var words = ["buddha", "canoe", "dice", "elephant"];
var canvas;
var ctx;
//var timer;
var getrandomphoto = -1;
function play() {
canvas = document.getElementById("myCanvas");
ctx = canvas.getContext("2d");
ctx.font = "20px Arial";
ctx.fillStyle = "red";
ctx.fillText = ("hello", 100, 100);
// getrandomphoto= getrandomnumber();
// document.getElementById("hk").src= words[getrandomphoto]+".jpg" ;
}
function getrandomnumber() {
var random_num = Math.random() * words.length;
var random_int = Math.floor(random_num);
return random_int;
}
canvas {
border: 1px solid black;
}
#message {
color: red;
}
<img id="hk" src=".jpg" alt="no photo" width="200" /></img>
<br/>
<br/>
<canvas id="myCanvas" height="200" width="500"></canvas>
<br/>
<button onclick="play()">Play</button>
<button onclick="moveleft()">←</button>
<button onclick="moveright()">→</button>
<p id="message">Press Play</p>
<p>Plate X-coordinate: <span id="plateX"></span>
<p>Word X-coordinate: <span id="wordX"></span>
<p>Distance: <span id="dist"></span>
解决方案
您的问题是这ctx.fillText
是一个函数,但您没有使用任何参数调用它。因此,您需要使用参数调用它,而不是将其设置为("hello", 100, 100)
:
ctx.fillText("hello", 100, 100);
请参阅下面的工作示例:
<!DOCTYPE html>
<html>
<head>
<style>
canvas {
border: 1px solid black;
}
#message {
color: red;
}
</style>
<script>
var words = ["buddha", "canoe", "dice", "elephant"];
var canvas;
var ctx;
//var timer;
var getrandomphoto = -1;
function play() {
canvas = document.getElementById("myCanvas");
ctx = canvas.getContext("2d");
ctx.font = "20px Arial";
ctx.fillStyle = "red";
ctx.fillText("hello", 100, 100); // change ctx.fillText = ("hello", 100, 100) to ctx.fillText("hello", 100, 100)
getrandomphoto= getrandomnumber();
document.getElementById("hk").src= words[getrandomphoto]+".jpg" ;
}
function getrandomnumber() {
var random_num = Math.random() * words.length;
var random_int = Math.floor(random_num);
return random_int;
}
</script>
</head>
<body>
<img id="hk" src=".jpg" alt="no photo" width="200" /></img>
<br/>
<br/>
<canvas id="myCanvas" height="200" width="500"></canvas>
<br/>
<button onclick="play()">Play</button>
<button onclick="moveleft()">←</button>
<button onclick="moveright()">→</button>
<p id="message">Press Play</p>
<p>Plate X-coordinate: <span id="plateX"></span>
<p>Word X-coordinate: <span id="wordX"></span>
<p>Distance: <span id="dist"></span>
</body>
</html>
推荐阅读
- google-chrome - 在 WSL Ubuntu 上运行“google-chrome”作为 --headless --no 沙箱会产生多个错误 - 如何在 WSL 中使用无头截屏?
- c - 在计算文本文件程序的字符时出现未定义的行为?
- python - 两个张量之间的Pytorch差异
- lua - 使用lua更改属性名称的xml标记
- postgresql - 使用 AWS Aurora PostgreSQL 数据库集群连接到哪个终端节点进行读/写操作
- php - 按 SKU 数字对 WooCommerce 产品进行排序 (1.2.3.4.5.6.......)
- python - 如何使用 python 和 matplotlib 为矩形内的颜色填充设置动画?
- azure - 我们如何在 Azure 应用程序洞察中显示数据库查询
- sql - 插入包含基于同一行的计算列的行
- mongodb - 测试容器中的 Mongo