工作区里的其它几件事
积木怎么写、怎么找,别的文档已经讲过。这一篇收录工作区上剩下的几件事:打开大作品时的 加载进度、把写好的一段积木保存起来复用、把脚本复制给别的角色,以及缩放平移和新建变量 时的作用域选择。
打开大作品时的加载进度#
一个两万块积木的作品,如果一次性全部构建出来,编辑器会卡住好几秒,期间没有任何绘制, 也无法判断还要等多久。因此积木是分批放入的,同时显示进度。

工作区左下角那条显示的是积木块数,不是脚本数。脚本之间的规模差距太大(这一段三块, 下一段五千块),按脚本数报进度会迅速冲到九成然后停住不动。
这一条只在当前页超过 500 块时出现;一帧就装完的角色不需要闪一下进度条。
特别长的脚本会先排队#
超过 600 块的单条脚本是另一种情况:放入它就会造成一次长停顿。所以它被单独排队,等 工作区空闲下来(大约 0.7 秒没有操作)再放入。在那之前,它应在的位置上显示一张卡片:

- 还没轮到它:「长脚本待放置 N 块」
- 正在放:「正在放置长脚本… N 块」
卡片固定在这段脚本自身的坐标上,跟随工作区一起滚动缩放。滚动到它附近等于优先放入: 当前正在查看的那一段会被提到队首;直接点卡片效果相同。
正在拖动积木时不放入任何积木,避免打断操作。
右键替换成同类积木#
右键工作区里的积木,选择「替换为 …」即可在兼容的同类积木之间切换,例如 > 换成 <
或 =、加法换成减法、向右旋转换成向左旋转、说话换成思考。菜单只列出已支持的无损替换组,
不会任意把不同形状或不同参数数量的积木互换。
原有输入值、嵌入的报告块、影子默认值、前后连接、注释和代码框归属会保留;整次替换算一步撤销。 积木栏里的模板、影子块、锁定的积木或代码框,以及只读工作区不提供此操作。
把一段积木存进资源库#
写好的一段脚本可以保存起来,以后从资源库里拖出来复用。右键那段积木的任意一块:

选「添加到资源库」,起个名字:

保存的是这一块以及它下面和里面的全部积木,所以右键最上面那块即保存整段。名字默认 填写首块积木上的文字。
保存之后它出现在「资源」面板的片段里:

条目上写着有几块积木,右边详情里渲染的是真实积木,并显示这段有多大、是否被使用过。
拿回来用#
三条路径,任选其一:
| 怎么做 | 结果 |
|---|---|
| 把片段从资源库拖进工作区 | 落在松手的位置 |
| 详情里的「放进工作区」 | 放进当前这个工作区 |
| 详情里的「放进角色…」 | 选一个角色放进去,那个角色的工作区不需要打开 |

左边是资源库里的「转圈跑」,右边是拖进工作区之后的样子。
也可以一次选中多个条目一起拖动,其中非片段的条目(图片、声音)会被忽略。片段记录了 自己用到哪些扩展,放入前缺少的扩展会先自动安装。
自制积木的定义无法保存(会提示「自制积木的定义还不能存成片段」),因为定义带有一个 在角色内必须唯一的名字,原样放回会产生两个同名定义。调用块不受限制。
把一段积木导出成图片#
右键那段积木,菜单底下有「导出积木为 SVG」和「导出积木为 PNG」。导出的是这一块以及 它下面和里面的全部积木,和存片段一样。文件名取首块积木上的文字。
两种格式的区别只有一处,但很关键:
| 格式 | 能做什么 |
|---|---|
| SVG | 图里另外带着这段积木的原始数据 |
| PNG | 只有画面 |
所以把导出的 SVG 文件拖回工作区,那段积木会原样长出来,落在松手的位置。一次拖好几个 文件也可以,它们依次落下、互相错开一点。拖进去的那段和片段走同一条路:缺少的扩展先装、 撞名的自制积木定义就地改名、整段算一次撤销。
不是本编辑器导出的 SVG 拖进来不会有反应(会提示「这张 SVG 里没有积木」)。
SVG 直接用浏览器打开就能看到那块积木 —— 它是一份独立的图,字体、颜色都写在文件里,不 依赖编辑器。
把脚本复制给别的角色#
把一段积木从工作区里拖出来,在角色列表里的另一个角色上松手,那个角色就得到一份:

指针所在的那一行会高亮,表示松手后会落在哪里。
- 是复制,不是移动:原来那一份留在原地。
- 舞台那一行同样可以接收。
- 拖回角色自己那一行无效,脚本本来就在那里。
- 复制过去的脚本落在那个角色最后打开的那一页上(从未打开过时落在它的第一页)。
缩放和平移#
| 操作 | 结果 |
|---|---|
| 滚轮 | 上下滚动工作区 |
Shift + 滚轮 |
左右滚动 |
Ctrl + 滚轮 |
以指针为中心缩放 |
| 拖工作区空白处 | 平移 |
| 触屏两根手指 | 捏合缩放 + 一起拖平移(一根手指仍然是拖积木) |
右下角还有三颗按钮:

从上到下是放大、缩小、复位;复位把缩放比例调回初始档位,并把脚本居中。
初始比例是 0.675,可以缩到 0.3、放大到 3 倍。缩放没有键盘快捷键(目前可改键位的 只有布局切换和全局搜索那几条)。
新建变量时,先确定它的作用域#
完整说明见变量与列表:改名、删除、云变量的实际支持情况、 多场景下值的归属。这里只说新建时的作用域选择。
在积木栏里点「建立一个变量」或「建立一个列表」,除了命名,还要选择它的可见范围:

| 选项 | 意思 |
|---|---|
| 全局变量 | 所有场景共用 |
| 仅本场景 | 只在这个场景里有(默认) |
| 仅本角色 | 只有这个角色能用 |
左边那三个小图是同一套记号:上面的容器表示范围,下面那条表示这份值属于谁。 「仅本场景」是一排屏里只有第一块底下有条,「仅本角色」是一排角色卡片里只有第一个底下有条, 换场景和换角色都看不见它,两张图体现的是同一种对称。全局那一档换成地球,因为「两块屏 两条」和「两块屏一条」在这个尺寸下难以分辨。
几点说明:
- 上面那块橙色的就是即将建立的那块积木,名字直接写在它身上。
- 在舞台上「仅本角色」是灰的,因为舞台上的变量只能是全局的。
- 重命名变量时没有这一段(改名不改范围);新建广播也没有。
- 名字重复时当场提示(「已经有一个叫「得分」的变量了」),不会等到点确定。