p5.j​​s实例模式中未定义全局可清除属性

时间:2017-04-13 14:20:53

标签: javascript p5.js

显然g.image被视为未定义,而g.s4.wg.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 undefinedif (g.image[i]!=p1.color(0)){

我要求解释为什么会发生这种情况(以及如何解决这个问题的建议),而不是我要求解决方法。

编辑:似乎在p1.setup()中定义g.image会导致相同的错误。

0 个答案:

没有答案