我使用R Shiny开发网页并且还包含自己的R代码。R Shiny和p5.js
我使用p5.js(https://p5js.org/)在网页中显示游戏。
在官方网页上说我有一个HTML和P5 JavaScript代码连同JavaScript库。如果我运行HTML,也就是说,单击右键并按下chrome来显示,我可以看到已启动的示例(https://p5js.org/get-started/),没有发生。
这是HTML代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<!--<meta name="viewport" content="width=device-width, initial-scale=1">-->
<script language="javascript" type="text/javascript" src="libraries/p5.js"> </script>
<script language="javascript" type="text/javascript" src="sketch.js"></script>
<!-- this line removes any default padding and style. you might only need one of these values set. -->
<style> body {padding: 0; margin: 0;} </style>
</head>
<body>
</body>
</html>
当我做闪亮一样,从运行R-Studio中的代码,我没有得到任何东西。我已将JavaScript文件存储在www文件夹中,因为它应该是这样,我当前知道我的HTML称为JavaScript,因为我在p5 javascript文件中设置了警报,但在安装和绘制方法之外。问题是,即使加载了警报,似乎没有调用setup和draw方法,显然,它们不会加载画布。我知道它们没有被调用,因为我在setup方法中调用了一个警告,该方法直接运行HTML文件,但是如果我从R-Studio运行相同的文件,则不会。
这是JavaScript代码P5:
alert("GOOD1");
function setup() {
alert("GOOD2");
createCanvas(640, 480);
}
function draw() {
if (mouseIsPressed) {fill(0);}
else {fill(255);}
ellipse(mouseX, mouseY, 80, 80);
}
我使用的下一行代码
... ,tabItem(tabName = "tabProcessing", htmlOutput("processingMasterThesis") ...
附加到标签“processingMasterThesis”我相应的闪亮加载HTML页面在server.R中的HTML文件的URL,因为它应该是这样的问题不在这里。
为什么可能是这个原因?如果我直接调用HTML文件以在浏览器中加载,但如果我从R-Studio执行操作,那么这起作用,为什么?
您是否在JavaScript控制台中遇到任何错误? –
嗨@Kevin Workman,谢谢你的回答。当我尝试加载网页时出现此警告:'主线程上的同步XMLHttpRequest已被弃用,因为它对最终用户的体验有不利影响。如需更多帮助,请查看https:// xhr.spec.whatwg.org /。在我的JavaScript文件中,我不直接使用这个请求调用,但也许p5js库在内部执行。这似乎是问题在这里,但如果它是这样的,为什么我从RStudio网页(我实际从RStudio运行的是ui.R文件)运行时出现此错误,而不是当我加载HTML文件右键点击? – EaglesAzul
我已经解决了这个问题。首先,我必须在p5js文件中创建一个可以从HTML引用的变量,例如canvas = createCanvas(640,480);.一旦我声明了全局变量,我只需告诉它的父项,让我们说myCanvas.parent(“divCanvas”);.在此之后,您只需创建一个闪亮或纯粹的html代码,如下所示:#THE UI ,tags $ html(tags $ body( tags $ head(tags $ script(src =“app/libraries/p5.js “)) ,tags $ head(tags $ script(src =”app/sketch.js“)) ,tags $ div(id ='divCanvas') )) – EaglesAzul