一、前言

Scratch作为全球K12教育No.1级工具,其优点举不胜举,但时至今日,问题也不少。本文结论主要针对我的WIN7 32位环境下的Version 3.11.1,但是据我使用过的从3.2到今天最新的3.11.1版本几乎全部存在类似问题。个别处将专门说明。

二、问题1:设计时刻角色显示有时不正常

设计视图下显示存在问题:有时有些角色不显示,这非常不方便初始设计。因为本博客工具目前不支持视频,所以,在此仅用文字加图片说明。
Scratch 3.X中的部分错误汇总_第1张图片

上图给出的是我的一个小游戏中的大舞台视图下的界面。再来看一下游戏中的几个角色:
Scratch 3.X中的部分错误汇总

最后一个角色“角色3”是一条比较长的水平线,但是,在图形编辑器(角色编辑器)下如何调整此角色大小,设计视图下就是不显示,我多次试用过“显示”与“隐藏”等积木的单击式单独调试,不起作用。另外,经试验,也不是层次遮挡引起的问题。

无奈,我想到切换到像素模式,一般可以成功显示出来。

原因估计:很有可能是软件设计中屏幕刷新方面存在问题。

【补充】经进一步分析发现,在适量绘图状态绘制的水平线或者是垂直线,其宽度或者高度为0。此时,切换成位图状态,则宽度或者高度不再为0,再切换回矢量状态,则显示正常!

三、问题2(可能是多线程带来的问题)

首先,请看下面代码:

Scratch 3.X中的部分错误汇总_第2张图片

问题出在声音播放一句,有关声音播放Scratch中共提供了两种播放方式:

Scratch 3.X中的部分错误汇总_第3张图片

有关这两个方式,网络上有非常多的解释,几乎都一样。结合Scratch技术,我们可以把第一句解释为同步播放,第二种理解为异步播放。
即是说:第一个语句是当现在的声音文件播放结束后后面的可能的代码块才执行。而第二个语句则是当前声音播放后后面的可能的代码块会继续执行,不会等声音文件播放结束才执行。

那么,问题来了,上面的图形代码中使用哪一个播放语句呢?

答案是:后者,而不是前者,也不是二者皆可!

分析来看,上面结论相当复杂而奇怪?!

但是,有如下图所示的运行时截图为证。

当使用第一个同步声音播放积木块时,运行时有如下截图:

Scratch 3.X中的部分错误汇总_第4张图片

因为不好瞬间抓图(没有使用视频录制),所以看起来有些悬殊。其实是,使用第一块积木时挡板精灵失去了正常拦挡下落的小球并使之正常反弹的功能——小球直接沿原来的方向前进并最终下落到地板上!

当使用第二个异步声音播放积木块时,一切正常,挡板精灵能够正常拦挡下落的小球并使之正常反弹!
Scratch 3.X中的部分错误汇总_第5张图片

四、注释的问题

注释是帮助自己后期分析代码或者提供给别人阅读代码的快捷途径,Scratch也提供了相应的支持。但遗憾的是,当角色中存在很多组代码时,给一组代码中的可能是多块积木添加注释,但是再经界面重新整理后,注释布局变得混乱,需要自己重新手动调整,让人极不满意。另外一个问题是,当我在背景这个特殊角色中的积木块中添加注释时,经常出现再次打开项目后注释莫名其妙消失的状况。

【注】这个结论在3.11.1中刚刚测试结束,偶尔还是如此!只是偶尔!例如,某角色有多组脚本,其中至少有一组中的至少有一块积木存在注释(内容不管多少)。保存并关闭此项目,再次打开该项目时也出现原来的多组项目重叠显示,只好再次使用右键菜单弹出的“整理积木”命令再次重新安排!我的机器配置算是比较低的:联想笔记本WIN7 32位+4G内存。

【补】刚刚打开前些时间调试的一个小游戏,又出现了上述杂乱现象,截图如下:

Scratch 3.X中的部分错误汇总_第6张图片

五、可能偶尔打开文件不起作用

当前已经打开了一个项目,再想使用菜单命令“文件”-“从电脑中上传”(也就是一般的打开本地文件的命令)时,不时出现第一次点击本地的新项目后不起作用,而需要再次重复运行一下这个打开命令的情况。我经常遇到这种莫名其妙的情况!

六、小结

我想使用本文继续记录下使用Scratch编程非常大的问题(BUG),并供朋友们深入研究之用。