作为我的第一个代码的一部分,我试图用随机生成的圆圈(星星)制作一个数组。
这是发生TypeError的行。
$(document).ready(function() {
//Canvas
var canvas = $("#canvas")[0];
var ctx = canvas.getContext("2d");
var w = $("#canvas").width();
var h = $("#canvas").height();
var stars = [];
我查看了我的代码并定了星星。
$(document).ready(function() {
//Canvas
var canvas = $("#canvas")[0];
var ctx = canvas.getContext("2d");
var w = $("#canvas").width();
var h = $("#canvas").height();
var stars = [];
function init() {
createStars();
drawStars();
}
init();
function createStars() {
for (var i=0; i<=4; i++) {
stars[i].x = Math.floor(Math.random() * w);
stars[i].y = Math.floor(Math.random() * h);
}
}
function drawStars() {
for (var i=0; i <= 4; i++) {
ctx.beginPath();
ctx.arc(stars[i].x, stars[i].y, 10, 0, 2 * Math.PI);
ctx.stroke();
}
}
});
剩下的代码很好但是可能有助于在这里查看其他可能出错的地方。
{{1}}
这是我的第一个程序,所以我不完全确定调试过程。提前谢谢。
答案 0 :(得分:1)
private final Uri uri = MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI;
public Cursor getandroidPlaylistcursor(Context context) {
ContentResolver resolver = context.getContentResolver();
final String id = MediaStore.Audio.Playlists._ID;
final String name = MediaStore.Audio.Playlists.NAME;
final String[] columns = { id, name };
return resolver.query(uri, columns, null, null,name + " ASC");
}
数组已定义,但是start
对象在那里?您需要明确地创建这些对象:
stars[i]
或更简洁的语法:
function createStars() {
for (var i=0; i<=4; i++) {
stars[i] = {};
stars[i].x = Math.floor(Math.random() * w);
stars[i].y = Math.floor(Math.random() * h);
}
}
答案 1 :(得分:1)
function createStars() {
for (var i=0; i<=4; i++) {
stars[i] = {
x: Math.floor(Math.random() * w),
y: Math.floor(Math.random() * h)
};
}
}
已定义但不是星号[0],即您在for循环中访问的元素。
你的循环应该是这样的
stars