注: .pde ファイルをインポートできることはわかっていますが、画面上でコードを実行する必要があるため、これは使用しません。
次の 3 回の試みは失敗しました。どちらが達成に近かったかはわかりませんし、望ましい結果が得られる限り、どちらも好みません。試みのいずれかを機能させたり、新しい試みを提案したりするのを手伝ってくれて、助けに感謝します。
1ST ATTEMPT) -getText
以下に記述された関数を使用しますが、結果の jscode 変数にコードではないテキストが含まれているため、処理インスタンスが機能しません。
function getText(n) {
var s = [];
function getStrings(n, s) {
var m;
if (n.nodeType == 3) { // TEXT_NODE
s.push(n.data);
}
else if (n.nodeType == 1) { // ELEMENT_NODE
for (m = n.firstChild; null != m; m = m.nextSibling) {
getStrings(m, s);
}
}
}
getStrings(n, s);
var result = s.join(" ");
return result;
}
var processingCode = getText(document.body)
processingCode.replace(/<[^>]+>¦&[^;]+;/g,'').replace(/ {2,}/g,' ');
var jsCode = Processing.compile(processingCode).sourceCode;
alert(jsCode);
var canvas = document.getElementById("mysketch");
var processingInstance = new Processing(canvas, jsCode);
....
<span class="sketch">
<canvas id="mysketch"></canvas>
</span>
2回目の試行) 上記と同じですが、タグを追加しましたid="all_processing_code"
が、テキストを取得する方法がわかりませんでした。これはうまくいきませんでした:
var processingCode = getText(document.getElementbyId(all_processing_code));
3RD ATTEMPT) getText を削除し、JQuery を使用text()
してコードを分離しようとしました。ただし、JS と Jquery を混在させるのに問題がありました。さまざまなことを試しましたが、どれもうまくいきませんでした。それを混合する適切な方法は何ですか?どのスクリプト タイプを使用すればよいですか? これは混乱しました。
<script type="text/jquery">
var processingCode = $('#all_processing_code').text();
//processingCode.replace(/<[^>]+>¦&[^;]+;/g,'').replace(/ {2,}/g,' ');
var jsCode = $.Processing.compile(processingCode).sourceCode;
alert(jsCode);
var canvas = $(#'mysketch');
var processingInstance = new $.Processing($('canvas'), $('jsCode'));
}
</script>