appinventor飞机大战案例_第一个AppInventor 开发案例 Hello Kitty(下)
文中有些地方摘自微博名为老巫婆的好心老师的翻译教程《App
Inventor编程实例及指南》。博文地址:http://blog.sina.com.cn/s/articlelist_1646365593_0_1.html
感谢前辈为我们都做的探索工作,让我的App
Inventor学习之旅得以顺利进行!
Step3:添加猫叫声(喵呜~)
图1-添加Sound组件
从Media(多媒体)组件面板中将Sound组件拖入至屏幕,如上图所示,不管你拖至哪里,它始终会落在屏幕的下方(非可视区),非可视组件在应用中发挥特定作用,但不会显示在用户界面中(也就是在手机屏幕上是看不到的)。
接下来设置Sound1的Source属性为meow.mp3,Source属性为meow.mp3,同猫咪图片一样,需要从电脑中加载声音文件meow.mp3。加载完成后,Media列表中将出现kitty.png与meow.mp3两个文件。如下图所示:
图2-Media列表
Step4:添加组件行为
到现在为止,我们才刚刚完成准备工作,接下来,我们要设置组件的行为,也就是当我们触摸屏幕的时候,喵星人会发出萌萌的声音。现在使用块编辑器来实现点击Button产生猫叫声的功能。单击设计器右上角的“Blocks”按钮切换到块编辑器。在块编辑器窗口中,可以为组件设定行为:做什么以及何时做。此处是让小猫按钮在用户点击它时播放声音。如果把组件比作菜谱中的原料,那么块(Blocks)则相当于烹饪过程说明。
图3-块编辑器
在块编辑器窗口的左侧,“Blocks”标题下面,可以看到许多分属不同类别的按钮,其中包括了我们在设计器中创建的所有组件:Screen1、Button1、Label1以及Sound1,点击它们就像打开抽屉,将看到一组适用于该组件的可选程序块(Blocks)。点击Button1打开抽屉,显示了与Button有关的程序块,可以用它们来设置Button的行为,最上面的Block就是Button1.Click,如下图所示:
图4-Button组件的相关行为(类似于Java里的方法)
单击标有Button1.Click的块并将其拖到工作区。注意,Button1.Click这个块上包含了when。凡是包含when的块都被称为事件处理程序,用来定义当组件上发生了某种特定事件时,应用该做什么。在本例中,当用户点击猫咪(其实是按钮)时发生了有趣的事情,如下图所示。下面我们将在程序中添加一些块,来响应发生的事件。
图5-定义“Button.Click”块来响应用户的点击事件
在块编辑器中点击Sound1打开抽屉,拖出“call
Sound1.Play”块(之前将Sound1的Source属性设置为meow.pm3)。注意,块“call
Sound1.Play”的形状恰好可以嵌入Button1.Click块中标有“do”的缺口。App
Inventor的这种设置,确保只有特定的块可以组合在一起,这样确保了连在一起的块可以协同工作。标有call的块用来定义组件的行为。在本例中,这两个块结合在一起,构成一个单元,如图1-9,两个块连接到一起时,你会听到“啪”的一声。
图6-当按钮按下播放声音
上面的程序块的意思:当按钮(猫咪)被按下,播放猫叫的声音,有没有觉得编程很巧妙呢?到这里,小伙伴们感激测试一下你的app吧!逗逗它吧!“喵呜~喵呜~”至此,一个简单的“HelloKitty”就做好啦!赶紧将app发送给你的朋友分享一下你的喜悦啦!什么?What?还不会打包?好吧,且往下看~
Step5:打包成app
图7-打包成app
在Build中选择第二个选项,暂时不管第一个选项,生成apk文件,然后将其发送给你的谁谁谁(想给谁就给谁吧!)接下来就是安装,运行,一个萌萌的喵星人app就这样诞生了!
Step6:添加震动效果(提升逼格的节奏)
进入块(Blocks)编辑器,单击Sound1打开抽屉;
图8-Sound1抽屉中的程序块
选择call Sound1.Vibrate块,将其拖动到when Button1.Click 块内,置于call
Sound1.Play块下,恰好与原来的块吻合;如果不吻合,可尝试拖动它,使call
Sound1.Vibrate块顶部的凹陷恰好与call Sound1.Play块底部的凸起相对。
图9-单击事件引起震动
接下来在millisecs(毫秒)的缺口处插入一个数字块,如果想让手机振动半秒钟,则输入一个“500”的数字块。打开Math(数学)抽屉,其中的第一个块是“0”,这就是数字块,下图所示。
图10-Math抽屉
将第一个蓝色块拖入工作区,并将其中的0改为“500”,按回车键结束,并将其插入至millisecs之后
图11-程序块组图
测试下你的喵喵,看看伴随着声音是不是还有震动呀?
Step7:摇一摇(帅到没朋友的节奏)
现在来添加最后一项,在Android设备上实现一个很酷的功能:摇晃设备时发出猫叫声。为此要用到AccelerometerSensor(加速度传感器)组件,它可以检测到设备的摇晃或移动。
在设计器中,展开组件面板中的传感器(Sensors)分类,拖出一个AccelerometerSensor(加速度传感器)组件。不必介意把它放到哪里,像任何非可视化组件一样,无论你把它放在预览窗口的什么地方,它都会落到预览窗口底部的“非可视组件”区域。
图12-添加加速传感器
摇晃设备的事件需要与单击按钮事件分开处理。这意味着需要一个新的事件处理程序。进入块编辑器,打开AccelerometerSensor1抽屉,拖出AccelerometerSensor1.Shaking块。
图13-添加加速传感器的振动事件
将Sound1.Play块插入AccelerometerSensor1.Shaking插槽,如下图所示(当加速传感器振动时,调用sound组件的播放声音功能,简单来讲就是当手机摇晃时,播放猫叫的声音),摇一摇你的手机,感受一下~
图14-当传感器振动的时候,播放猫叫的声音
HelloKitty应用中所有的应用块:
图15-HelloKitty中的所有应用块
上面的应用块显示了整个程序的逻辑:屏幕被按下和手机被摇晃是两个独立的动作,当两个事件发生的时候会引发一些动作(播放声音,震动);当按钮被按下时会同时调用两个动作(播放猫叫声和屏幕震动),当手机被摇晃时调用的是猫叫声。
至此,一个完整的HelloKitty就成型啦!呼呼~教程写到手酸,今天的课就到这吧,下次继续!欢迎大家关注我的微信公众号“云端微课”可以定期观看视频教程,并获得相关资源。
appinventor飞机大战案例_第一个AppInventor 开发案例 Hello Kitty(下)相关推荐
- php网站开发案例教程ppt,php网站开发案例教程》课件.ppt
php网站开发案例教程>课件.ppt 还剩 178页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: PHP ...
- java飞机大战绪论_一个超级完整的java飞机大战(包括音效和奖励)
[实例简介] 比较完整的飞机大战,里面的解析很清楚,很适合用来当大作业或者学习之用 [实例截图] [核心代码] shootgame └── shoot game ├── 123.png ├── aix ...
- java飞机大战编程_[源码和文档分享]Java飞机大战游戏设计与实现
1 概述 本次Java课程设计是做一个飞机大战的游戏,应用Swing编程,完成一个界面简洁流畅.游戏方式简单,玩起来易于上手的桌面游戏.该飞机大战项目运用的主要技术即是Swing编程中的一些窗口类库. ...
- java飞机大战护盾_全民飞机大战无敌护盾使用方法分享
全民飞机大战中有很多无敌护盾,无敌护盾大家都知道,我敢说有的人不会用无敌护盾,这里肯定有人嘲笑我,谁不会用,那么简单,也就你不会吧,其实我以前是不会的,最近才学会怎么正确的使用无敌护盾,现在小编我给大 ...
- python飞机大战概要设计_飞机大战游戏开发文档(Android版)
飞机大战游戏 开发文档 (Android版) 课程名称:飞机大战游戏 课程类型:Android游戏编程精彩内容,尽在百度攻略:https://gl.baidu.com 姓名:苏均灿 学号:131342 ...
- python飞机大战概要设计_飞机大战概要设计文档 4改
飞机大战概要设计 文档规格说明书 1. 引言部分 1.1目的 该文档描述的是飞机大战的概要设计,主要内容包括飞机大战功能简介等. 本文档预期的读者包括全体小组成员及指导教师. 1.2 范围 1.2.1 ...
- python飞机大战概要设计_飞机大战详细设计文档 第三次修改
飞机大战详细设计说明书 1. 引言部分 本部分主要说明项目背景和术语定义等. 1.1编写目的 本部分阐明编写详细设计说明书的目的,指明读者对象. 该文档的目的是描述设计飞机大战的每个模块的细节,包括模 ...
- java飞机大战流程图_飞机大战说明文档
JIANGXI AGRICULTURAL UNIVERSITY精彩内容,尽在百度攻略:https://gl.baidu.com 科技月月评设计报告 精彩内容,尽在百度攻略:https://gl.bai ...
- python飞机大战概要设计_飞机大战大学课程设计初稿.doc
毕业设计(论文) 题 目: 基于安卓平台的飞机大战游戏 学 院: 计算机科学学院 专业班级: 计算机科学与技术10级2班 指导教师: 黄国兵 职称:高级工程师 学生姓名: 赵兵 学 号: 410090 ...
最新文章
- Spring Boot 打包不同环境配置与 Shell 脚本部署
- docker启动elasticsearch失败--jvm内存不足解决方案
- Lesson 16.6Lesson 16.6 复现经典架构:LeNet5 复现经典架构 (2):AlexNet
- ASP.NET Core【在线教育系统】功能要求
- 分布式架构的负载均衡算法
- Day1 了解web前端
- 解决 MyEclipse 的耗内存卡死的办法
- iOS UIFont 字体名称大全,图解及使用方法
- Android基础学习一(整理,从零开始)
- odoo-OPENERP仓库各类知识详解
- html中引入字体包
- 传输栅输入端异常导通
- Torch not compiled with CUDA enabled 解决办法
- Java电商订单_Java电商项目学习(十) 订单管理模块开发
- 数学建模养老保险问题matlab,全国大学生数学建模竞赛C题 企业退休职工养老金制度的改革...
- Gherkin语法详解之Scenario outline(四)
- android 4.4 flac,如何在Android中将音频原始转换为FLAC
- C++数论之Legendre定理的运用:因子和阶乘
- 20条职场潜规则!小心那些城府很深的人(建议收藏)
- Understanding OpenStack Authentication: Keyston...