appinventor軟件開發(fā)文檔_第1頁
appinventor軟件開發(fā)文檔_第2頁
appinventor軟件開發(fā)文檔_第3頁
appinventor軟件開發(fā)文檔_第4頁
appinventor軟件開發(fā)文檔_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

浙江師范大學本科生課程論文封面課程名稱: 手機d序開發(fā)論文名稱: 《軟件開發(fā)文檔》學 院 數(shù)理與信息工程學院 專 業(yè) 通信工程學號14900110姓 名 王曉潔任課教師 熊繼 成績評閱教師簽 名浙江師范大學數(shù)理信息學院基于加速度傳感器的計步器實驗?zāi)康模豪眉铀俣葌鞲衅鲗崿F(xiàn)計步器的功能。實驗過程一、組件設(shè)計圖1界面設(shè)計二、相關(guān)代碼【1】全局變量“ step”用來記錄行走步數(shù)。【2】定義過程將標簽基于加速度傳感器的計步器實驗?zāi)康模豪眉铀俣葌鞲衅鲗崿F(xiàn)計步器的功能。實驗過程一、組件設(shè)計圖1界面設(shè)計二、相關(guān)代碼【1】全局變量“ step”用來記錄行走步數(shù)。【2】定義過程將標簽1的文本設(shè)置為步數(shù)值?!?】核心算法當加速度傳感器被晃動時,step加1.并且調(diào)用過程。最后有一個清除步數(shù)的功能。實驗感想第一次接觸這樣拼圖類的代碼編寫方法,枯燥。需要改進。這個感覺很有趣,但是要做到精確計步卻不容易。適合青少年起步學習,在算法上有很大實驗?zāi)康幕谒{牙的手機通信軟件根據(jù)AppInventor2提供的兩個藍牙通信組件:藍牙客戶端、藍牙服務(wù)器,將這兩個組件配合使用,實現(xiàn)簡單的即時通信功能。根據(jù)實驗過程:一、組件設(shè)置圖1界面設(shè)計二、與藍牙服務(wù)器相關(guān)的代碼【1】全局變量“角色”用來表明當前設(shè)備在通信中的角色:服務(wù)器或客戶端。【2】“在線”設(shè)置如圖2所示,當選中“在線”復選框時,表明本設(shè)備現(xiàn)在充當服務(wù)器的角色,可以接受來自其他設(shè)備的連接請求。 一旦該設(shè)備成為服務(wù)器,“選擇列表”及“斷開連接”組件將不可用。圖2修改藍牙設(shè)備的角色【3】接收連接事件當藍牙服務(wù)器收到連接請求時,將觸發(fā)該事件。如果連接成功,即連接狀態(tài)值為真,則向所連接的設(shè)備發(fā)送“已連接到服務(wù)器,可以開始聊天了 ...”,并開始啟用計時器,隨時監(jiān)聽客戶端發(fā)來的消息;如果連接不成功,則不啟用計時器。如圖 3所示。圖3藍牙服務(wù)器“接收連接”事件處理程序三、與藍牙客戶端相關(guān)的代碼【1】當“選擇列表”準備選擇時當用戶點擊“選擇列表”時,將打開一個列表,里面列出了所有已配對的藍牙設(shè)備,用戶可以選擇其一進行連接。圖4準備連接【2】當“選擇列表”完成選擇時當用戶選擇了一個藍牙設(shè)備, 意味著用戶向所選設(shè)備發(fā)出了連接請求,“讓藍牙客戶端連接設(shè)備”的結(jié)果可能是真(連接成功) ,也可能是假(連接失敗)。如果成功,則設(shè)全局變量“角色”值為“客戶端”假(連接失?。?。如果成功,則設(shè)全局變量“角色”值為“客戶端”并啟動計時器;如果失敗,則不啟動計時器。計時器啟用計時業(yè)小又不無法連摟藍牙服務(wù)器Fl選擇列表H迪選中項global角色選擇列表連接成功,我是客戶端。執(zhí)行計時器啟用計時業(yè)小又不無法連摟藍牙服務(wù)器Fl選擇列表H迪選中項global角色選擇列表連接成功,我是客戶端。執(zhí)行圖5進行連接【3】斷開連接圖6斷開連接四、發(fā)送消息【1】全局變量“聊天內(nèi)容”與自定義過程“拼字符串” :以適當?shù)姆绞絹沓尸F(xiàn)聊天記錄,即,為聊天內(nèi)容添加換行符, 并表明發(fā)言者身份。圖7對聊天內(nèi)容的記錄與組織【2】發(fā)送一條消息圖8角色不同使用不同藍牙組件來發(fā)送消息五、接收消息圖9不同角色使用不同藍牙組件來接收消息

六、清空聊天記錄圖10清空聊天記錄實驗結(jié)果:實驗感想:我們的APP我們的APP仍然需要改進,比如接收消息可以加上語音提示,加聊天記錄保存功能,添加共享音頻圖片文件功能,這個小APP加聊天記錄保存功能,添加共享音頻圖片文件功能,這個小APP距離微信這些聊天工具還有很大的上升空間。微信這些聊天工具還有很大的上升空間。通過此次實驗,我們了解了藍牙客戶端服務(wù)器計時器等非可視組件的相關(guān)功能,對兩個角色的切換有了更深刻的認識,雖然程序是參通過此次實驗,我們了解了藍牙客戶端服務(wù)器計時器等非可視組件的相關(guān)功能,對兩個角色的切換有了更深刻的認識,雖然程序是參照網(wǎng)上的例程,但是收獲良多,希望以后有更多這樣的機會。木琴實驗?zāi)康氖褂脝我坏穆曇艚M件來播放不同的音頻文件,使用ClockDOO照網(wǎng)上的例程,但是收獲良多,希望以后有更多這樣的機會。木琴實驗?zāi)康氖褂脝我坏穆曇艚M件來播放不同的音頻文件,使用ClockDOO計算并實現(xiàn)兩個音符之間的延遲,在創(chuàng)建一個過程時做判斷,創(chuàng)建能夠自我調(diào)節(jié)的過程;學習列表的高級應(yīng)用,包括添加、刪除及讀取項。計算并實現(xiàn)兩個音符之間的延遲,在創(chuàng)建一個過程時做判斷,創(chuàng)建能夠自我調(diào)節(jié)的過程;學習列表的高級應(yīng)用,包括添加、刪除及讀取項。如圖,這個應(yīng)用可以做到:.通過觸摸屏幕上的彩色按鈕播放八個不同的音符;如圖,這個應(yīng)用可以做到:.通過觸摸屏幕上的彩色按鈕播放八個不同的音符;.按“播放”按鈕,回放之前彈奏的音符;3.按“重置”按鈕清除3.按“重置”按鈕清除之前彈過的音符,以便輸入新曲。實驗過程圖1木琴的用戶界面實驗過程圖1木琴的用戶界面一、設(shè)計組件創(chuàng)建鍵盤用戶界面中包含了低音C到高音C的打掉五聲(七音符)音階的八個音符鍵盤,本節(jié)將創(chuàng)建這樣的音樂鍵盤。首先創(chuàng)建前八個木琴鍵,用按扭來實現(xiàn),設(shè)置Text屬性,Width屬性,Hight屬性,BackgroundColor屬性,使其效果如圖2,添加Sound組件圖用戶界面中包含了低音C到高音C的打掉五聲(七音符)音階的八個音符鍵盤,本節(jié)將創(chuàng)建這樣的音樂鍵盤。首先創(chuàng)建前八個木琴鍵,用按扭來實現(xiàn),設(shè)置Text屬性,Width屬性,Hight屬性,BackgroundColor屬性,使其效果如圖2,添加Sound組件圖2組件設(shè)計我們要彈奏美妙的音符,就需要創(chuàng)建一個聲音組件,設(shè)置最小間隔屬性為0,這個不要忘記咯,是為了彈奏要多快有多快,我已開始沒有設(shè),默認值是半秒鐘,就會有很大延遲。下載1.wav到8.wav,并加載到項目。聲音與按鈕的連接Buttonl被點擊時,播放1.wav,切換到編輯塊,這時候如果能有一個調(diào)用的過程會更加方便,然后當每一個按鈕被點擊是,就調(diào)用過程,播放對應(yīng)的音頻。則進行如下設(shè)置圖3創(chuàng)建過程來演奏僅僅這樣在測試時會失望,第一次按鍵時會出現(xiàn)錯誤。因為系統(tǒng)是在程序運行后才加載聲音,這個過程需要時間。所以我們需要在程序啟僅僅這樣在測試時會失望,第一次按鍵時會出現(xiàn)錯誤。因為系統(tǒng)是在程序運行后才加載聲音,這個過程需要時間。所以我們需要在程序啟動時立刻加載聲音。圖4應(yīng)用啟動時加載聲音經(jīng)過這些步驟我們就可以彈奏出一些簡單的曲子了!記錄并回放音符為了實現(xiàn)回放功能,需要記錄彈奏的音符并加以保存。除了要記錄彈奏的音高(聲音文件),還要記錄兩個音符之間的時間長度。我們需要維護兩個列表,每彈奏一個音符,兩個列表中都會各自添加

為了實現(xiàn)回放功能,需要記錄彈奏的音符并加以保存。除了要記錄彈奏的音高(聲音文件),還要記錄兩個音符之間的時間長度。我們需要維護兩個列表,每彈奏一個音符,兩個列表中都會各自添加一條記錄:notes:包含與演奏的音符相對應(yīng)的聲音文件名, 按照演奏順序排列;times:記錄音符演奏時的時間點。我們可以從Clock組件中得到計時信息, 因此也可以用來正確地設(shè)定音符的回放速度。添加組件在設(shè)計器中添加一個 Clock組件及“播放”和“重置”按鈕,按鈕放在HorizontalArrangement中。記錄音符及時間回到塊編輯器中,為組件添加正確的行為。我們需要維護兩個列表:notes與times,每次用戶按下一個按notes與times,每次用戶按下一個按鈕,就向列表中添加一項:.從Variables抽屜中拖出一個定義一個新的變量;.單擊“ name”將變量命名為“.打開Lists抽屜,拖動一個initializeglobalnamenotes”;makealistD,將其放置在變量to塊來notes的插槽中;這樣就定義了一個名為“ notes”的空列表。重復上述步驟定義另一個變量,命名為“ times”??诘臉幼訄D5創(chuàng)建列表塊的功能notes列notes列表),以及演奏瞬間的時刻(保存到times列表)。用ClockLNow塊來記錄時刻,它返回當前時刻的時間值(例如,2011年3月12日上午8時Soundl.Source和IS定義過程I

執(zhí)行語句「通Soundl.Source和IS定義過程I

執(zhí)行語句「通F1aynotenumberniunber添加列表項列表globalnotesT33分14秒),精確到毫秒。這些數(shù)據(jù)可以通過Clockl.Now塊獲得,將分別被添加到notes及times列表中,如圖5所示。叵J添加列表項列表取Iglobaltimes叵J添加列表項列表取Iglobaltimes▼item.計時器1.求當前時間item.播放而暫時忽略回放播放而暫時忽略回放調(diào)用圖6將演奏聲音添加到列表中當用戶按下“重置”按鈕時,我們希望清空這兩個列表。由于用戶看不到清空帶來的任何變化,因此添加一個Soundl.Vibrate塊,通過振動來告知用戶按鍵生效了,這種設(shè)置對用戶來說是非常友好的。圖 9-12顯示了這一功能用到的塊。圖9-12為用戶的“重置”操作提供反饋音符的回放作為一個思想實驗, 先來考慮如何實現(xiàn)音符的回放,速度。我們可以(但不會)通過創(chuàng)建圖9-13中的那塊來實現(xiàn)這個暫時的目標:塊的功能這是計算機科學中一個非常重要的概念:強大的遞歸。為了更好地了解遞歸的工作原理,我們來一步一步地探究,當用戶演奏了三個音符( 1.wav、3.wav和6.wav),然后按下“播放”按鈕時,都發(fā)生了什么。 PlayButton.Click首先判斷列表中是否保存了音符:由于notes列表長度用PlayBackNote:1.在第一次調(diào)用3口0,列表不空,因此設(shè)定count=1:count等于 1,并調(diào)PlayBackNote時,1.wav;count1.wav;count遞增為2,Soundl.Source被設(shè)置為在調(diào)用 Soundl.Play,播放由于count值(1)小于notes中的第1項,即.wav;notes的長度( 30,00并再次調(diào)用PlayBackNote;.第二次調(diào)用PlayBackNote時,count=2:3.wav;Soundl.Source被設(shè)置為 notes中的第 2項,即3.wav;調(diào)用Soundl.Play,播放 3.wav;count遞增為 3,并再由于 count(20小于count遞增為 3,并再次調(diào)用PlayBackNote;.第三次調(diào)用PlayBackNote時,count=3:6.wav;6.wav;AppInventor編程實例及指南本文檔使用看云構(gòu)建Soundl.Source被設(shè)置為調(diào)用 Soundl.Play,播放-154-notes中的第3項,即6.wav;由于count(30不小于notes的長度口30,00跳出if塊,回放結(jié)束。實驗結(jié)果實現(xiàn)木琴彈奏,回放,重置的功能。改進下面是一些可供探討的備選方案:目前,在回放過程中,沒有對用戶點擊 ResetButton做任何限制,這將導致程序的崩潰(錯誤提示: selectlistitem:Attempttogetitemnumber4ofalistoflengh0。)修改 PlayButton.Click,讓ResetButton在回放期間禁用,回放完成后再重新啟用。將PlayBackNote中的if塊改為ifelse塊,并在“ else”中重新啟用ResetButton。類似問題也發(fā)生在 PlayButton上,用戶可以在回放過程中再次點擊該按鈕。(想象一下會發(fā)生什么。 )在PlayButton.Click中禁用PlayButton,并將其 Text屬性改為“播放中 ”,并像ResetButton一樣,在PlayBackNote的ifelse塊中重新啟用該按鈕,并重置Text屬性。實驗感想編寫一個能自我調(diào)用的過程不僅是可能的, 有時

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論