将功能导出到 Scratch 中的块时滞后

Lag when exporting functionality into a block in Scratch

我是新手。

我在 sprite 中有这段代码,它按预期工作,没有明显的滞后:

但是,当我将闪烁“导出”到 'flicker' 块时,它有一个非常讨厌的滞后:

为了轻松“感受”延迟,我创建了一个特殊的精灵,代码如下:

这个球很流畅地移动,直到(每5秒)出现闪烁效果并停止1秒左右。

谁能告诉我发生这种情况的原因以及如何预防?

项目页面为here

如有任何帮助,我们将不胜感激。

首先要指出的是,当我启动 your project 时并没有出现该问题。 我在 2 种不同操作系统的 3 种不同设备上的 5 种不同网络浏览器中进行了尝试,每次,球都一直在移动。

但是,我可以通过在'flicker'块中启用'Run without screen refresh'来解决这个问题,如下所示:

  • Right-click 在红色 'define flicker' 方块上。
  • 从上下文菜单中,select 'Edit'。
  • 在 'make a block' 对话框中,选中复选框 'Run without screen refresh',然后单击“确定”。

我怀疑 'Run without screen refresh' 拥有所有处理能力,有效地阻止了任何其他(并发)脚本。

我的猜测是,您已经通过关闭 'Run without screen refresh' 自行解决了问题。

一般来说,'Run without screen refresh' 是减少速度至关重要的脚本延迟的好方法。但是永远不要在带有'wait'或'forever'块的脚本中使用它,否则会导致滞后。