2017-01-11 35 views
1

我与processing.js一个初学者,我有一个项目,该项目是这样的:宽/高不改变processing.js

的test.html我:

<html> 
<head> 
    <meta charset="utf-8"> 
    <title>Test</title> 
</head> 
<style> 
    body { 
     margin: none; 
     padding: none; 
    } 
</style> 
<body> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/processing.js/1.6.3/processing.min.js"></script> 
    <canvas data-processing-sources="Test.pde"></canvas> 
</body> 
</html> 

Test.pde我:

void setup() 
{ 
    size(600,600); 
    PFont fontA = loadFont("sans-serif"); 
    textFont(fontA, 14); 
}; 

println(width); 

void draw(){ 
    background(20, 20, 20); 
}; 

什么width小号应该是600,因为我在“size”功能中设置了“600 by 600”。我在Firefox浏览器上运行它,但我也在Safari上获得了相同的结果。

+0

如果将所有代码放在一个'.pde'文件中会发生什么? –

+0

如果宽度仍在同一个文件中,并且只有该文件在HTML中被引用,则该宽度仍然会打印为100。 –

+0

我无法重现您的问题。当我运行你的代码时,它工作正常。你能否把一个[Code Pen](http://codepen.io/)放在一起来证明这个问题? –

回答

0

想想println()声明何时发生。考虑何时调用setup()函数。

当您的代码第一次被读取时,您是定义setup()函数,但您实际上并没有运行它。然后您打印出width变量,尚未设置。然后你定义draw()函数。

之后,处理框架为您调用setup()函数,并开始每秒调用draw()函数60次。

换句话说,你的代码的行为应该是如何表现的。

如果你想使用width变量,你必须这样做size()功能已经从您的setup()函数调用。