appinventor软件开发文档.docx

上传人:新** 文档编号:564711559 上传时间:2024-03-13 格式:DOCX 页数:16 大小:289.95KB
返回 下载 相关 举报
appinventor软件开发文档.docx_第1页
第1页 / 共16页
appinventor软件开发文档.docx_第2页
第2页 / 共16页
appinventor软件开发文档.docx_第3页
第3页 / 共16页
appinventor软件开发文档.docx_第4页
第4页 / 共16页
appinventor软件开发文档.docx_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《appinventor软件开发文档.docx》由会员分享,可在线阅读,更多相关《appinventor软件开发文档.docx(16页珍藏版)》请在金锄头文库上搜索。

1、浙江师范大学本科生课程论文封面课程名称:Android手机程序开发论文名称:软件开发文档学院 数理与信息工程学院专业通信工程学号14900110姓名王晓洁任课教师熊继平成绩评阅教师签名浙江师范大学数理信息学院木琴实验目的使用单一的声音组件来播放不同的音频文件,使用Clock组件来计算并实现两个音符之 间的延退,在创建一个过程时做判断,创建能够自我调节的过程;学习列表的高级应用,包 括添加、删除及读取项。如图,这个应用可以做到:1. 通过触摸屏幕上的彩色按钮播放八个不同的音符;按“播放”按钮,回放之前弹奏的音符;2. 按“重置”按钮清除之前弹过的音符,以便输入新曲。图1木琴的用户界面实验过程一、

2、设计组件创建键盘用户界面中包含了低音C到高音C的打掉五声(七音符)音阶的八个音符键盘,本节 将创建这样的音乐键盘。首先创建前八个木琴键,用按扭来实现,设置Text属性,Width属性,Hight属性,Backgroundcolor属性,使其效果如图2,昱示隐藤组件季可很组件音效1 HB1S1图2组件设计貌件列表iOftKtt0 - Screen 1Screen 1按钮1技由2应用说明核爆3按帽4水平对齐按用5居左按翅6按钮7垂直对芥按取8居上e E水平布局】AppNameUplaybunonxylophoneHresetbunon甘景颜色甘计肘的白邑背杲囹片无关眸湖i以认效果囹标至念名副隙mu

3、ain jpg.开屏Z嵋素材S(认为果3.wavSW/JTo2.wav不设方向6.wav5.wav8 wav7 wav信宜示添加Sound组件我们要弹奏美妙的音符,就需要创建一个声音组件,设置最小间隔属性为0,这个不要 忘记咯,是为了弹奏要多快有多快,我己开始没有设,默认值是半秒钟,就会有很大延迟。 下载l.wav到8.wav,并加载到项目。声音与按钮的连接Buttonl被点击时,播放1 .wav,切换到编辑块,这时候如果能有一个调用的过程会更加方 便,然后当每一个按钮被点击是,就调用过程,播放对应的音频。则进行如下设置定义过程执行语句 疫.酬顾就1 为匕简合并文本* number当被点击 执

4、行调用痕版成皿numbernumber -.wav当魅遍国.被点击 执行调用曲血number图3创建过程来演奏仅仅这样在测试时会失望,第一次按键时会出现错误。因为系统是在程序运行后才加载声音, 这个过程需要时间。所以我们需要在程序启动时立刻加载声音。图4应用启动时加载声音经过这些步骤我们就可以弹奏出一些简单的曲子了 ! 记录并回放音符为了实现回放功能,需要记录弹奏的音符并加以保存。除了要记录弹奏的音高(声音文件), 还要记录两个音符之间的时间长度。我们需要维护两个列表,每弹奏一个音符,两个列表中都会各自添加一条记录:notes:包含与演奏的音符相对应的声音文件名,按照演奏顺序排列;times:

5、记录音符演奏时的时间点。我们可以从Clock组件中得到计时信息,因此也可以用来正确地设定音符的回放速度。添加组件在设计器中添加一个Clock组件及“播放”和“重置”按钮,按钮放在HorizontalArrangement 中。记录音符及时间回到块编辑器中,为组件添加正确的行为。我们需要维护两个列表:notes与times,每次用 户按下一个按钮,就向列表中添加一项:1. 从Variables抽屉中拖出一个initialize global name to块来定义一个新的变昂:;单击“name”将变量命名为“notes”;2. 打开Lists抽屉,拖动-个make a list块,将其放置在变量

6、notes的插槽中;这样就定义了一个名为“notes”的空列表。重复上述步骤定义另一个变量,命名为“times”。 块的样子初始化全局变量为I。创建列表图5创建列表块的功能每演奏一个音符,需要保存两项数据:声音文件名(保存到notes列表),以及演奏瞬间的 时刻(保存到times列表)。用Clockl.Now块来记录时刻,它返回当前时刻的时间值(例如,2011年3月 12日上午8时33分14秒),精确到亳秒。这些数据可以通过Soundl.Source和Clockl.Now块获得,将分 别被添加到notes及times列表中,如图5所示。定义过程 执行语句Playnotenumber设 娼成也通

7、M 为合并文本添加列表项列表 K |global notes item添加列表项列表 取item源文件global times图6将演奏声音添加到列表中当用户按下“重置按钮时,我们希望清空这两个列表。由于用户看不到清空带来的任何变 化,因此添加一个Soundl.Vibrate块,通过振动来告知用户按键生效了,这种设置对用户来说是非常友好的。图9-12显示了这一功能用到的块。resetbutton当执行设I被点击global notes global times 为为创建列表I创建列表I调用|.霰动8毫秒数图9-12为用户的“重置”操作提供反馈音符的回放作为一个思想实验,先来考虑如何实现音符的回

8、放,而暂时忽略回放速度。我们可以(但不 会)通过创建图9-13中的那块来实现这个暂时的目标:初始化全局变Eq为(3当 执行当 执行playbutton或如果global notesglobal countMa调用.被点击求列表长度列表取则设Q定义讨特执行语句设瓯心为迭择列表取 中索引值为取的列表顶(取global countglobal countglobal notesglobal notes global countOB求列表长度列表取global countplayBackNote 块的功能这是计算机科学中一个非常重要的概念:强大的递归。为了更好地了解递归的工作原理,我们来一步一步地探究

9、,当用户演奏了三个音符(l.wav、3.wav和6.wav),然后按下“播放”按钮时,都发生了什么。PlayButton.Click首先判断列表 中是否保存了音符:由于notes列表长度30,列表不空,因此设定count等于1,并调用PlayBackNote:1. 在第一次调用 PlayBackNote 时,count= 1:Soundl.Source被设置为在notes中的第1项,即l.wav;调用 Soundl.Play,播放 l.wav;由于count值(1)小于notes的长度(3),因此count递增为2,并再次调用PlayBackNote;第二次调用 PlayBackNote 时,

10、count=2:Soundl.Source被设置为notes中的第2项,即3.wav:调用 Soundl.Play,播放 3.wav;由于count (2)小于notes的长度(3),因此count递增为3,并再次调用PlayBackNote;2. 第三次调用 PlayBackNote 时,count=3:App Inventor编程实例及指南本文档使用 看云构建-154-Soundl.Source被设置为notes中的第3项,即6.wav;调用 Soundl.Play,播放 6.wav;由于count (3)不小于notes的长度(3),因此跳出if块,回放结束。实验结果实现木琴弹奏,回放,

11、重置的功能。改进下面是一些可供探讨的备选方案:目前,在回放过程中,没有对用广点击ResetButton做任何限制,这将导致程序的崩溃 (错误提示:select list item: Attempt to get item number 4 of a list of lengh 0)修改PlayButton.Click, ih ResetButton在回放期间禁用,回放完成后再重新启用。将PlayBackNote 中的if块改为ifelse块,并在“else”中重新启用ResetButtono类似问题也发生在PlayButton上,用户可以在回放过程中再次点击该按钮。(想象一下 会发生什么。)在

12、PlayButton.Click中禁用PlayButton,并将其Text属性改为“播放中,并像ResetButton 一样,在PlayBackNote的ifelse块中重新启用该按钮,并重置Text属性。实验感想编写一个能白我调用的过程不仅是可能的,有时也是必要的。这种强大的技术称为递归。 在编写递归过程时,一定要确保为程序的退出设定一个基本条件,它的重要性远大于为自我 调用设定条件,否则程序将陷入无限循环。本实验加深了我对列表的认识,列表(Lists)可以为程序提供存储功能,可以在列表中 保存用户的操作记录,并在以后对存储内容进行提取和再处理。经过老师建议,我将按键调 整到适合弹奏的排列方

13、式,还将按键播放声音的延迟取消,从而可以加快弹奏速度。这三个实验让我们对MITAPP Inventor这个平台有了基本的认识,并领略到程序的魅 力,对经后的学习更加感兴趣。基于加速度传感器的计步器实验目的:利用加速度传感器实现计步器的功能。实验过程一、组件设计组避计图g迎计季可授组件第件列表 a Saeeii,图像1 。磁3 e E水平布局】-标釜2文本输 入卷1 8啊水平布后2 start 可姻】 *翎 it reset加 iSISftlBSl*SA1玉命名tHJ?素材ttSISffSSi slwalk png kitty png haowanwalk png meow mp3 上简文件图1

14、界面设计ta件属性Screen!应用说用水平为弁居上, AppName acceleratess色粉色 背景图片I 无.关屏动画 箍做效果 图彼walkpno. 开屏动画 砌泗 屏毒方向不设方向 允林幼二、相关代码二、相关代码11全局变量“step 用来讪录行走步数。2定义过程将标签1的文本设置为步数值。1定义过程施薄执彳:亍语句 设.金专为1取(L_global step 3核心算法3核心算法当加速度传感器被晃动时,step加1.并且调用过程。最后有一个清除步数的功能。初始化全局变量ggn为 o我的过程global step T定义过程 执行语句global step实验感想第一次接触这样拼图类的代码编写方法,感觉很有趣,适合青少年起步学习,不 枯燥。这个APP虽然功能简单,但是要做到精确计步却不容易。在算法上有很 大需要改进。基于蓝牙的手机通信软件实验目的:根据App Inventor 2提供的两个蓝牙通信组件:蓝牙客户端、蓝牙服务器,将这两个组件配 合使用,实现简单的即时通信功能。实验过程:一、组件设置蛆件民性

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号