2016-09-11 11 views
1

こんにちは、jquery ajaxリクエストとPHPコードを使用してprocessing.jsスケッチに画像を表示しようとしていますが、ここでスケッチに送る画像はJSですコード:Jqueryを使用してPHPからprocessing.jsの画像を表示する方法

<script type="text/javascript"> 
    function send() { 
     //var s; 
     function setPath(imgPath) { 
      var s = imgPath; 
      var processingInstance; 
      processingInstance = Processing.getInstanceById('canvas'); 
      processingInstance.change(s); 
     } 
     var variable = 5; 
     $.ajax({ 
      method: "POST", 
      tupe: "POST", 
      url: "take.php", 
      data: ({val: variable}), 
      success: function (data) { 
       setPath(data); 
      }, 

     }); 


    } 
</script> 

これは私の処理コードです:

String pic; 
PImage img; 

void setup(){ 
    size(200,200); 
    background(150); 
    img = loadImage(pic); 
} 

void draw(){ 

    image(img,50,50,width/2,height/2); 
} 
void change(String val){ 
    pic = val; 
    println(pic); 

} 

そして、私のPHPコード:

<?php 

if ($_POST) { 
    $temp = $_POST['val']; 
    if ($temp == 5) { 
     $img = "images.jpg"; 
     echo $img; 
    } 
} 
?> 

私はコードを実行し、スケッチの結果を印刷するとき私は "images.jpg"の結果を得るが、誰も何をするか知っているキャンバスに表示されますか?

答えて

1

setup()関数は、スケッチの最初に1回だけ呼び出されることに注意してください。

あなたのpic変数は値なしで始まり、loadImage()関数に渡します。あなたはimg変数に返された値(おそらく壊れた画像になるでしょう)を保存します。

change()関数では、pic変数を更新しますが、img変数は更新しません。 pic変数を変更しただけであっても、画像が魔法のようにあなたのために読み込まれたわけではありません。あなたは特にそれを自分で行う必要があります。

は、それはこのようになります:

void change(String val){ 
    pic = val; 
    img = loadImage(pic); 
} 

実際には、おそらく完全にpic変数を取り除くことができます。

これには、指定されたパスにあるイメージファイルも必要であることに注意してください。

+0

ええ、今日ももう一度文書を読んでいただきありがとうございます。私はそれを見ました。私はまだプログラマーではありませんが、私はある日になると愚かな疑惑のために残念ですが、時には 'setup()'のようなものが一日中放浪して、なぜ地獄のコードが動かないのですか?再度、感謝します! –

+0

@ミミチャン問題はありません。あなたの質問は愚かではなく、すべてのプログラマーがどのように感じているかを正確に感じるように思えます! –

関連する問題