在《用 scratch 实现一个简单的计算器》这个系列的博文中,我们实现了一个计算器的虚拟键盘,并实现了按键绑定与防抖。接下来博主想实现一个能够计算复杂算式的计算器,比如能够求解:1+2*3-5/6+(20*4-10)
这样的复合算式。除了能够支持虚拟键盘输入之外,还希望能够运用到Scratch中的“询问并等待”这块积木,实现在输入框中将所需的算式一次性输入。
模板下载
这里提供了已经布局好的计算器的模板文件,按“k”可使用问答的方式以支持全键盘输入,输入回答并回车后退回普通模式:
关于按键绑定的回顾
Scratch批量绑定并检测按键输入
Scratch 利用开关量实现按键防抖
利用Scratch制作一个简单的计算器之数据处理
全局变量“inputSwitch”
实现虚拟按键绑定的时候,我们在克隆体中放置了一块无限循环的“重复执行积木”,克隆体们会不厌其烦的去监听鼠标以及按键操作,并及时做出响应。但当我们等待用户输入回答时,我们希望克隆体能把手头的工作都放一放,所以我们设置了一个全局变量“inputSwitch”,当这个变量为0时,我们启用虚拟键盘,当这个变量为1时,我们就暂停虚拟键盘动作的监听。
博主在这里设置了一个键盘图标的按钮,绑定了按键“k”,当“k”被按下,数据处理积木会删除掉inputText内的所有内容,弹出输入框等待用户输入,顺手把“inputSwitch”修改成了1。
数据处理部分关于按键“k”的相关积木如上;
等待用户提交回答之后,我们把用户的“回答”设置为inputText的新值,同时把“inputSwitch”恢复为0,这样虚拟键盘的功能就恢复正常了。