gpt4 book ai didi

javascript - Javascript::Processing.js动画未加载

转载 作者:行者123 更新时间:2023-12-03 01:55:12 25 4
gpt4 key购买 nike

我有一个供用户输入的表格:

  <form>
<textarea onfocus="clearContents(this);" id="chat" cols="50" rows="5"> </textarea>
<button type="button" onclick="animate_song();">talk</button>
</form>

我的想法是让输入能够动态触发音频和动画文件:
<audio id="audio" src=" "></audio>

<canvas id="animaton" data-processing-sources=" "></canvas>

<script src="scripts/processing.min.js"></script>
<script src="scripts/soundEngine.js"></script>

我将音频和动画引擎都放在下面的同一函数中。
(正在触发音频播放。)
function animate_song(){

var id = Song.prototype.lyricsIntersect(input);

document.getElementById("animation").setAttribute(
"data-processing-sources", 'sketches' + '/' + id + '.' + 'pde');

var playback = 'http://127.0.0.1:8000/audio' + '/' + id + '.wav';

var request = new XMLHttpRequest();
request.open("GET", playback, true);
request.responseType = "blob";

request.onload = function() {
if (this.status == 200) {
var audio = document.getElementById("audio");
var src = URL.createObjectURL(this.response);
audio.src = src;
audio.load();
audio.play();
}
}
request.send();
};

但是只有预加载到 html文档中时,此函数才能加载动画,如下所示:
   <canvas data-processing-sources="sketches/song.pde"></canvas>

为什么会这样,我做错了什么?

最佳答案

处理lib会自动查找<canvas>,在这种情况下,它找不到源。因此,必须在设置Processing.loadSketchFromSources属性的函数末尾使用<canvas>方法。

   function animate_song(){

var id = Song.prototype.lyricsIntersect(input);

var sketch = 'http://127.0.0.1:8000/sketches' + '/' + id + '.pde';

var request = new XMLHttpRequest();
request.open("GET", sketch, true);
request.responseType = "blob";

request.onload = function() {
if (this.status == 200) {
var animation = document.getElementById("animation");
var src = URL.createObjectURL(this.response);
animation.src = src;
animation.setAttribute("data-processing-sources", 'sketches' + '/' + id + '.' + 'pde');
}
}
request.send();

Processing.loadSketchFromSources('animation', ['sketches' + '/' + id + '.' + 'pde']);
}

关于javascript - Javascript::Processing.js动画未加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36228181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com