小学生系列之二:涂鸦板

一、功能描述

  1. 在画布上绘制图画;

  2. 设置画笔的粗细及颜色;

  3. 拍一张照片,并显示在屏幕上,在照片上涂鸦。

  4. 清除图画。

二、界面设计

如图 1所示,这一次我们添加完组件后,要为组件改名,改为有意义的名字。组件的命名及属性设置见下表。

图 1涂鸦板项目的设计视图

三、组件清单及属性设置

组件类型

命名

属性

属性值

屏幕

Screen1

标题

涂鸦板

水平对齐

居中

画布

画布1

宽度、高度

充满

水平布局

水平布局1

宽度

充满

数字滑动条

数字滑动条1

宽度

充满

最大值

30

最小值

1

滑块位置

2

按钮

红色、绿色、蓝色

显示文本

背景颜色

红绿蓝

宽度、高度

充满

拍照

显示文本

拍照

擦除

显示文本

擦除

照相机

照相机1

--

四、认识代码块

1、画布的拖动事件

当用户手指在画布上连续拖动时,会触发画布的拖动事件。如图 2所示,事件代码块中保存着7个值,它们的含义也标注在图中。

图 2画布拖动事件处理程序

讲解要点:

  • 理解坐标:如图 3所示,画布坐标系原点位于画布左上角,水平方向向右为正,垂直方向向下为正,这与数学中标准的平面直角坐标系有差别。

  • 所谓画线,并非绘制一条完整的曲线,而是将一个个微小的线段连缀起来;当画笔的宽度足够大时,可以看出曲线的转弯处留有空白。

  • 这个事件中带有7个值:起点x、y坐标、邻点x、y坐标、当前x、y坐标及拖到精灵,在实践处理程序中,可以取得这些值,可以将它们理解为局部变量,这些值在事件处理程序之外无效。

图 3理解画布坐标系

2、事件的唯一性

如图 4所示,为了提高编写代码效率,我们复制了红色按钮的点击事件处理程序,图中事件块左上角出现了警告标记,说明这样的代码是非法的。在项目中,一个按钮组件只能有一个点击事件处理程序,其他组件的事件处理程序亦然。

图 4一个按钮组件只允许有一个点击事件处理程序

3、相机拍照功能

图5中代码块的作用是打开手机中已有的拍照应用,我们自己创建的应用并不具备拍照功能。

图 5照相机组件的拍照功能

4、照相机的拍照完成事件

图6中的事件块中同样携带了一个值——图片地址,它对应于照片存放在手机中的文件路径。从这里得知,App Inventor的应用可以访问手机中的文件,只需给出路径即可,不过App Inventor只能处理文本文件。

图 6携带了照片地址的拍摄完成事件块

5、滑块位置改变事件

如图 7所示,这又是一个携带了值的事件处理程序,滑块位置介于最小值与最大值之间,是一个比例值。这个值有可能是小数。

图 7数字滑动条的滑块位置改变事件

五、操作技巧

1、复制代码

如图 8所示,在代码块上点击右键,会弹出快捷菜单,其中第一个选项就是复制代码块,你可以尝试其他选项的功能。

图 8复制代码的操作方法

2、发现更多颜色

如图 9所示,点击颜色块,可以打开一个调色板,其中有更多的颜色可供选择。

图 9点击颜色块可以发现更多的颜色

六、课堂提问:

对于小学生来说,如何理解平面直接坐标系?你有哪些好的比喻,让学生理解这件事:确定平面上一点的位置需要两个值。

七、课堂练习:

利用加速度传感器来清除画布。

八、课后作业

1、尝试添加更多的颜色按钮;

2、上传一张图片,并设为画布的背景图片。

附:全部代码

图10涂鸦板项目的全部代码

(0)

相关推荐