Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用GAS中的p5.js库引用特定的googlesheets单元格_Javascript_Html_Google Apps Script_P5.js - Fatal编程技术网

Javascript 如何使用GAS中的p5.js库引用特定的googlesheets单元格

Javascript 如何使用GAS中的p5.js库引用特定的googlesheets单元格,javascript,html,google-apps-script,p5.js,Javascript,Html,Google Apps Script,P5.js,我正在尝试使用GAS根据google表单中的值进行生成艺术(理论上,我可以更新并让脚本更改艺术)。但是,我遇到了如何在脚本中引用特定单元格的内容的问题,特别是在p5.js库的draw函数中,我在html文件中引用了该函数 这是我目前的密码 const MAX_HEIGHT=600; const MAX_WIDTH=600; 常数步长=16; 函数设置(){ createCanvas(最大高度、最大宽度); 中风(169251 215); 背景(“灰色”); 冲程重量(2); noLoop();

我正在尝试使用GAS根据google表单中的值进行生成艺术(理论上,我可以更新并让脚本更改艺术)。但是,我遇到了如何在脚本中引用特定单元格的内容的问题,特别是在p5.js库的draw函数中,我在html文件中引用了该函数

这是我目前的密码

const MAX_HEIGHT=600;
const MAX_WIDTH=600;
常数步长=16;
函数设置(){
createCanvas(最大高度、最大宽度);
中风(169251 215);
背景(“灰色”);
冲程重量(2);
noLoop();
var麻木;
var-add;
var val=SpreadsheetApp.openById(“1CLDLLWu8RWKYARJ6RPE7AVXRCODMH9FXLQADEGQ22K”).getSheetByName(“Sheet3”).getRange(“A1:A1”);
var x=val.getValue();
}
函数draw(){
设numb=30;
让加法=麻木+70;
三角形(x,250,add,190,numb,50);
}

P5.js示例
试试这个:

js:


在函数之后立即执行任何操作时都要小心,因为在发出命令和完成命令之间需要一段时间。

SpreadsheetApp.openById()只在Google服务器上运行,而不是在浏览器上运行。变量
x
看起来像函数
setup()
中的局部变量。要在另一个函数
draw()
中获取其值,需要将其声明为全局变量(如变量
STEP
</script>
const MAX_HEIGHT = 600;
const MAX_WIDTH = 600;
const STEP = 16;
var x;
function setup() {
  createCanvas(MAX_HEIGHT, MAX_WIDTH);
  stroke(169, 251, 215);
  background('grey');
  strokeWeight(2);
  noLoop();
  var numb;
  var add;
  google.script.return
  .withSuccessHandler(v => x=v;)
  .getXValue();
}
</script>
function getXValue() {
  return SpreadsheetApp.getActive().getSheetByName("Sheet3").getRange("A1").getValue();
}