我正在尝试在ACE编辑器中播放用户输入。收集了增量队列之后,我试图遍历该队列并显示更改的延迟。
这是一些稍微简化的代码:
// 'queue' is queue of delta objects
var i = 0;
function playbackLoop() {
// setTimeout( function() {
editor.getSession().getDocument().applyDeltas([queue[i]]);
i++;
if(i < queue.length)
playbackLoop();
// }, 250);
}
该代码有效-就像这样,它为我提供了用户键入内容的完美副本。
当我取消注释setTimeout的行时,在回放时,编辑器中的光标每250ms移动一次,但没有字符出现。因此,我得出的结论是setTimeout干扰了applyDeltas。
我猜applyDeltas依赖于一些隐藏的内部,但是我不知道它们可以是什么。
谢谢!
最佳答案
队列中的增量可能有问题吗?
http://jsbin.com/ojijeb/320/edit在这里工作正常。只需编辑并按重播