1 回答
TA贡献1825条经验 获得超6个赞
这是因为范围的问题。在回调函数doodleArea内部,范围不是组件范围 ( this)。这里这是未定义的,我们无法访问未定义的isRectangleMode。可能的解决方案是:
在 .ts 中修改createCanvas()下面给出的代码:
private createCanvas() {
const doodleArea = s => {
s.setup = () => {
let canvas = s.createCanvas(s.windowWidth - 440, s.windowHeight - 200);
canvas.parent("doodle-area");
s.draw = () => {
if (this.isRectangleMode) {
console.log("Rectangle");
}
s.stroke(0);
if (s.mouseIsPressed === true) {
s.line(s.mouseX, s.mouseY, s.pmouseX, s.pmouseY);
}
};
s.keyPressed = () => {
if (s.key === 'c') {
window.location.reload();
}};};
};
this.p5Init = new p5(doodleArea);
}
以下是相同的示例代码:
https://stackblitz.com/edit/angular-s-p5-angular?file=src%2Fapp%2Fapp.component.ts
https://angular-s-p5-angular.stackblitz.io
希望这会有所帮助。
添加回答
举报
