立方设计 | 实现一个计数器

你希望实现这样一个计数器:

四次点击,一个组件

首先从组件库里点击文本组件拾取,双击屏幕中央以放置在屏幕中间:

移动鼠标,组件的大小会随着鼠标位置改变。支持预先定义「网格」,来避免取到类似于 16.3724px 的大小。大小合适时单击,表示确认:

从组件库里点击圆形组件拾取,单击屏幕中央,向左移动一段距离,组件的位置会随鼠标位置改变。同样支持预先定义网格,防止取到不规范的位移大小。位置合适时单击,表示确认:

移动鼠标,调整组件大小,满意后确认:

支持设置组件各项属性数值。可设置的数值从组件库 API 爬取,实时渲染真实效果。

一个问题,一项状态

写好了组件排列,你将目光从 UI 视图移动到状态视图:

你问自己,「成品页面里是否有能变动的部分」,得到的答案是「中间显示的数字能变」,因此在 State 中加入 count 字段表示中间的数字:

你问自己 count 固定的情况下,「成品页面里是否还有能变动的部分」,得到的答案是没有,这说明你已经写好了状态!

四次点击,一次状态绑定

为了将 count 状态同步到 UI 视图,你首先在状态视图点击 count 的「输出端子」:

然后切换到「纵切视图」,选择 UI 视图:

最后在 UI 视图选择目标组件的目标变量的「输入端子」:

写事件就像绑状态

你希望点击按钮之后,count 能改变。因此你首先选择按钮框,然后点击 + 来添加事件:

默认事件是 onTap,即点击事件,正合你意。因此你直接点击右侧立方体编辑事件:

你进入到一个和状态绑定时很相似的「纵切视图」,但注意到另一张视图并不是 UI 视图,而是「新状态视图」:

这里「新状态」就是点击按钮之后状态会变成的样子。

例:清零按钮

假如你希望点击按钮之后数字清零,你可以把新状态视图设置成这样:

例:啥也不做的按钮

假如你希望点击按钮后新状态 count 等于旧状态 count,你当然可以不加点击事件。但你也可以先切换到旧状态视图,点击 count 的输出端子:

你希望使其决定新状态 count,所以你切换到新状态视图,点击 count 的输入端子:

例:减一按钮

事实上,你希望新状态 count 等于旧状态 count - 1。你灵光一现,决定在旧状态层和新状态层之间创建一个「减一层」:

在减一层,你输入了你所期望的公式:

然后你把一切连接起来,便大功告成:

花絮

我本来想把软件叫 CuCl2(氯化铜),因为软件的特色是立方(Cube),人要用两只手(2 Claws)做设计,但似乎太过谜语人,故作为花絮放在这里。