为什么在实例模式下使用p5.js时未定义常量?

时间:2016-10-11 04:51:03

标签: javascript p5.js

我可能在这里遗漏了一些非常明显的东西。我可以在全局模式下使用p5.js并使用textAlign的常量没有问题,例如中心。

这是全局模式代码,它可以正常工作:

function setup() {
  var canvas = createCanvas(720, 400);  
  canvas.parent('main_canvas');
};

function draw() { 
  textSize(32);
  textAlign(CENTER);
  text("word", 50, 50);
};

然而,当我尝试在实例模式中使用CENTER时,我得到:

Uncaught ReferenceError: CENTER is not defined:

以下是失败的实例模式代码:

var s = function (p) {
  p.setup = function() {
    p.createCanvas(720, 400);
  };

  p.draw = function() {
    p.textSize(32);
    p.textAlign(CENTER);
    p.text("word", 50, 50);
  };
};
var myp5 = new p5(s,'main_canvas');

关于我在这里缺少的任何想法?

1 个答案:

答案 0 :(得分:3)

在全局模式下,所有P5.js函数和变量都会添加到全局命名空间中。在实例模式中,所有P5.js函数和变量都会添加到传递给sketch函数的变量中(在您的情况下,是您的p变量)。

要使用CENTER变量,您必须通过p变量获取它。

换句话说,你需要这样做:

p.textAlign(p.CENTER);

您还必须使用其他变量执行此操作,例如mouseXmouseY