首页 > 解决方案 > 为什么在 p5.js 中没有 setup() 时 mousePressed() 不能工作?

问题描述

在 p5 编辑器中,我试图创建一个不需要画布的简单示例,因此我删除了 setup() 和 draw() 函数。我意识到如果至少调用 setup() 函数,mousePressed() 将无法工作。我可以注释掉 createCanvas() 和 mousePressed() 工作得很好。关于为什么会发生这种情况的任何想法?

var luckyNum;

function mousePressed(){
  luckyNum = int(random(0, 100));
  createP("Your lucky number is " + luckyNum + "!");
}

标签: mouseeventdom-eventsp5.js

解决方案


mousePressed()功能可以在没有的情况下正常工作draw(),但它确实需要setup().

这是一个例子:

function setup() {
  // empty
}

function mousePressed() {
  background(random(255));
}

我不确定这是为什么。它可能与一些仅在 p5.js 检测到函数时才会发生的内部初始化有关setup()

您可能会考虑切换到纯 JavaScript,因为您似乎不需要很多 p5 功能。您可以将点击侦听器附加到<body>您的页面并从那里创建一个<p>元素。


推荐阅读