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

Why are constants not defined when using p5.js in instance mode?

本文关键字:定义 常量 js p5 实例 模式 为什么      更新时间:2023-09-26

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

这里是全局模式代码,它工作得很好:

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');

我在这里错过了什么想法?

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

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

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

p.textAlign(p.CENTER);

您还必须对其他变量(如mouseXmouseY)执行此操作。