2017-01-11 17 views
1

私はprocessing.jsと初心者です、私はこのように書きプロジェクトを持っているを変更しないは、幅/高さprocessing.js

<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 x 600"をセットアップのsize関数に入れたので、houldは600です。私はこれをFirefoxブラウザで実行していますが、Safariでも同じ結果が得られます。

+0

すべてのコードを1つの '.pde'ファイルに入れるとどうなりますか? –

+0

同じファイル内にあり、そのファイルだけがHTMLで参照されている場合、幅は100として印刷されます。 –

+0

問題を再現できません。あなたのコードを実行すると、うまく動作します。問題を示す[コードペン](http://codepen.io/)をまとめてください。 –

答えて

0

println()のステートメントがいつ起きているかを考えてください。 setup()関数が呼び出されたときを考えてみましょう。

setup()関数を定義していますが、実際にはまだ実行していません。width変数がまだ設定されていません。次に、draw()関数を定義します。

その後、Processingフレームワークでsetup()関数が呼び出され、draw()関数が毎秒60回呼び出されます。

言い換えれば、あなたのコードは、動作する方法を正確に実行しています。

あなたがwidth変数を使用したい場合は、size()機能があなたのsetup()関数から呼び出されてい後にそれをしなければなりません。