p5js定位画布Uncaught Type Error

时间:2017-02-20 18:21:52

标签: javascript canvas p5.js

我不确定我在这个问题上做错了什么。我正在使用OpenProcessing并尝试将canvas元素放在容器中,但我遇到了Uncaught TypeError,无法读取属性“id”

我正在复制https://github.com/processing/p5.js/wiki/Positioning-your-canvas

中的相同代码
if (Session["UserLanguage"]!=null && Session["UserLanguage"].ToString() == "english")
{      
  //your code
}
else
{

}

这是我的代码......

function setup() {
    var cnv = createCanvas(100, 100);
    var x = (windowWidth - width) / 2;
    var y = (windowHeight - height) / 2;
    cnv.position(x, y);
    background(255, 0, 200);
}

这是我草图的链接...... https://www.openprocessing.org/sketch/407956

2 个答案:

答案 0 :(得分:1)

它与OpenProcessing有关,因为你的代码在p5 editor(和本地)上运行得非常好。 createCanvas方法返回一个对象,因此调用它上面的id函数不应该像在OpenProcessing上那样返回“无法读取未定义”的属性'id'{{1可能没有返回任何东西,它应该根据p5 documentation.返回一个对象。

您可以尝试使用css定位画布,如p5 wiki中所述,添加使用flexible box layout的样式表,或尽可能不使用OpenProcessing。

答案 1 :(得分:0)

__call__函数没有返回任何内容。这与the P5.js reference中的内容不符,所以我理解你的困惑。

我的猜测是OpenProcessing使用稍微修改过的P5.js版本,因为它并不需要任何定位。画布始终位于屏幕中央。

如果您要继续使用OpenProcessing,那么我就不再担心自己定位画布了。或者我会搜索重新定位画布的现有草图,看看它们是如何做到的。

即使createCanvas()函数返回soemthing,我也不确定在这种情况下createCanvas()函数应该做什么。您发布的链接中没有任何内容使用该功能。尽管如此,如果我在本地运行它似乎工作正常。