显然g.image
被视为未定义,而g.s4.w
和g.s4.h
不是
尽管他们都被定义在同一水平。
var g = {}
//g.* VARS
function setup() {
//ALL THE OTHER g.* VARS
g.w=int(windowWidth*0.95)
g.h=int(windowHeight*0.95)
g.viewDistance=int(g.w/6)
g.widgetHeight=int(g.h*0.25)
g.s1.w=g.w-2*g.viewDistance
g.s1.h=g.widgetHeight
g.s2.w=2*g.viewDistance
g.s2.h=g.s1.h
g.s3.w=g.s1.w
g.s3.h=g.h-g.widgetHeight
g.s4.w=g.s2.w
g.s4.h=g.s3.h
g.image = []
new p5(function (p1) {
"use strict";
p1.setup = function () {
p1.createCanvas(g.s1.w, g.s1.h);
//STUFF
};
p1.draw = function () {
//THE VARS THAT AREN'T g.*
for (var i=0;i<g.s4.w*g.s4.h;i++) {
if (g.image[i]!=p1.color(0)){
//STUFF
}
}
}
};
},
"sketch01");
我已将其缩减为重要位
Uncaught TypeError: Cannot read property '0' of undefined
在if (g.image[i]!=p1.color(0)){
行
我要求解释为什么会发生这种情况(以及如何解决这个问题的建议),而不是我要求解决方法。
编辑:似乎在p1.setup()中定义g.image会导致相同的错误。