Изображение не обновляется в setInterval - PullRequest
0 голосов
/ 12 декабря 2018

Я использую ядро ​​IJavascript под ноутбуком Jupyter.Я работаю на Mac OSX 10.10.5 с помощью Google Chrome для отображения ноутбука, установленного с помощью стандартной установки Anaconda.IJavascript был установлен с помощью 'sudo npm install -g ijavascript'.

Я пытаюсь использовать canvas для рендеринга простой анимации из двух изображений с помощью команды setInterval ... Я могу проверить, правильно ли обновляется интервальная команда, используяconsole.log, но само изображение не обновляется.См. Код ниже:

var THREE = require('three');
var jsdom = require('jsdom');
var dom = new jsdom.JSDOM(`
<!doctype html>
<html>
    <head>
        <title>Jupyter-Test</title>
    </head>
    <body>
        <canvas id="canvas">
    </body>
</html>
`)
var width = 500;
var height = 500;

var canvas = dom.window.document.querySelector('#canvas');
var png1 = fs.readFileSync("assets/img/test1.png").toString("base64")
var png2 = fs.readFileSync("assets/img/test2.png").toString("base64")

var $d = $$.display("test")

var n=0;
setInterval(function() {
    $d.png([png2,png1][n++ % 2]);
    console.log(n)
},1000);

"Display Animation"

Вывод представляет собой статическую визуализацию изображения, на которое ссылается png2, за которым следует 1 2 3 4 5 ..., который непрерывно печатается каждую секунду.Таким образом, функция интервала срабатывает правильно, но изображение не обновляется, как можно было бы ожидать.

...