App Inventor學習記錄96-簡單的笨蛋柔語音計算機,可開啟關閉音效,刪去字元,記錄過程

接下來打算不打算做遊戲什麼的,而是要做一些平常就用的上的 app自己用,然後加廣告什麼的。這樣使用次數才會多。
記錄一下:
App Inventor學習記錄96-簡單的笨蛋柔語音計算機,可開啟關閉音效,刪去字元,記錄過程


實際完成的 app如下。

就是一個計算機的型式。只是加上了笨蛋柔的語音,每按下一個按鈕之後,就會出現相對應的語音。
這個語音功能,可以從右下角的按鈕來關閉。
另外還有加入了計算記錄的功能。其它的就跟計算機差不多了。

bug也是有的,我老婆在內測的時候,馬上就發現沒有辦法實現累加功能。
舉個例來說,這裡做不到 1+1+1+1+1+1這樣的功能,一定是要 1+1=2, 2+1=3這樣…
這個部份會整個再改寫過。


好,首先是畫面配置的部份。

要特別一提的是,我拉了很多個音效元件進來,把每一個聲音都對應到一個音效元件上。
這樣做比較麻煩,原則上是可以用一個音效元件來做就可以了,但是東西多的時候,用一個音效元件來切換來源的話,在發出聲音的時候,也會有一點鈍鈍的,所以這裡就用比較麻煩些的做法。


全部的程式碼如下:

有點多,自己沒寫的時候,覺得應該挺容易的,一邊寫就一邊加。
越寫就越多。


第 1部份的程式碼說明:

左邊這一塊都是音效元件,右邊這一塊都是 mp3的檔案名稱。
在清單的位置都是相同的,這樣等一下在對的時候,就會很好處理。


再建立一個按鈕文字列表

這個是按下等於按鈕之後,把計算出來的答案中的每一個字元,拉成一個清單,用這個清單去找到相對應的音效元件,再播放該音效的時候用的。


接著建立一堆變數。

變數:小標籤的第 1個值,就是第 1個輸入的數字。
變數:小標籤的第 2個值,就是第 2個輸入的數字。
變數:記錄清單,先建成一個空清單,這個是用來記錄我們計算的歷程用的。
變數:音效變數,值為 1的時候,按下按鈕有聲音。值為 0的時候,按下按鈕沒有聲音。
變數:記錄變數,值為 0的時候,不顯示計算歷程。值為 1的時候,則顯示。
變數:答案,這個判斷按下按鈕時,要把按鈕的數字放在第 1個數值或是第 2個數值用。
變數:說答案的變數,這個配合計時器時使用,逐一播放答案的數字音效。


第 2部份的程式碼說明:

螢幕初始化的時候,判斷一下,音效變數的值如果等於 1的話,就呼叫音效來源全開程式。


第 3第部份程式碼說明:

建立一個叫按下數字按鈕的程式,這程式裡有 2個參數,一個是數字的值,一個是那一個音效
把變數要說出的答案的清單,設定成空清單。
把標籤_答案的文字,設定成空白。

如果變數答案的值是空白的話。
加入一個流程判斷,判斷變數運算符號有沒有輸入。
如果沒有運算符號的話,那麼按下數字按鈕的時候,就把數字加到變數小標籤第 1個值的內容中。如果有運算符號的話,就把數字加到變數小標籤第 2個值的內容中。
呼叫小標籤顯示文字這個程式。

如果變數答案的值是不是空白的話。
就先把變數答案的值,設定成空白。
加入一個流程判斷,判斷變數運算符號有沒有輸入。
如果沒有運算符號的話,那麼按下數字按鈕的時候,就把變數小標籤第 1個值設定成按下數字的值,呼叫小標籤顯示文字這個程式。
如果有運算符號的話,就把變數小標籤第 2個值設定成按下數字的值。呼叫小標籤顯示文字這個程式。

如果變數音效變數的值等於 1的話。
就播放按鈕對應的音效。


第 4部份的程式碼說明:

小標籤顯示文字這個程式,就是用文字方塊,把幾個變數的值合併後,顯示出來。
每個變數之後,加入一個空白字元,只是為了畫面比較好看一點。


第 5部份的程式碼說明:

這部份,我們就是利用任意元件的功能,加上任意項目清單的組合。來把每一個音效元件的音效來源,設定成變數音效來源中的 mp3檔案名稱。


第 6部份的程式碼說明:

這個做法也是一樣,把所有音效元件的音效來源,設定為空白。
因為設定為空白,所以按按鈕的時候,就不會發出聲音。


第 7部份的程式碼說明:

這幾個按鈕的功能都是一樣的。
當按鈕 1、2、3、4、5、6、7、8、9、0、小數點這幾個按鈕被按下的時候,呼叫按下數字按鈕這個程式。雖然在這裡數字的值和那一個音效這兩個參數的值,我一個是用文字方塊去帶用,一個用數字方法去帶用。
但,實際上,除了小數點的符號一定要用文字方塊來帶入之外,其它的部份是可以混用的。


第 8部份的程式碼說明:

接下來是加、減、乘、除這 4個按鈕的作法。
如果變數音效變數的值等於 1的時候,就呼叫對應的音效元件播放聲音。
把標籤_答案的文字,設定為空白。
然後呼叫小標籤顯示文字


第 9部份的程式碼說明:

當記錄按鈕被點擊的時候:
如果變數記錄變數等於 0的時候,把變數記錄變數的值設定為 1。
把該隱藏的標籤的藏起來。
把清單顯示器的可見性,設定為真。

如果變數記錄變數等於 0的時候,把變數記錄變數的值設定為 0。
把該顯示的標籤的都顯示出來起來。
把清單顯示器的可見性,設定為假。


第 10部份的程式碼說明:

這裡的作法跟上一段差不多,只是多加入了兩張圖片,來讓音效是否打開,能看的更清楚一些。


第 11部份的程式碼說明:

當按鈕_清除被點擊的時候。
把相關的變數的值都設定成空白,把變數記錄清單設定成空清單。
這裡要記得,雖然我們已經把相關的變數的值都設定為空白了,還是要呼叫小標籤顯示文字這個程式,來處理標籤上的文字的顯示情形。


第 12部份的程式碼說明:

這裡呢,同樣是利用運算符號來做判斷。
如果變數運算符號等於空白的話,就刪除小標籤的第 1個值的內容。
如果變數運算符號不等於空白的話,就刪除小標籤的第 2個值的內容。

至於刪除的方法,這裡是利用文字方塊中,提取長度減 1的字內容來做。


第 13部份的程式碼說明:

如果變數音效變數的值等於 1的話,就播放等於的音效。
接著,我們再利用變數運算符號的值下去做判斷。
如果變數運算符號等於 +的時候,就把兩個數相加。
如果變數運算符號等於 -的時候,就把兩個數相減。
如果變數運算符號等於 x的時候,就把兩個數相乘。
如果變數運算符號等於 ÷的時候,就把兩個數相除。
只是在除的時候,要多加一個除數的值不能等於 0條件下去。 如果除數等於 0的話,就跳出訊息框。

把變數答案的值,設定成標籤_答案的文字。
然後,把幾個值用合併文字方塊組合一下,加到記錄清單中。
然後,把變數小標籤的第 1個值小標籤的第 2個值運算符號,設定成空白。
呼叫小標籤顯示文字。
把清單顯示器的元素,設定成記錄清單。

再來就是把答案逐一提取,加到變數要加到要說出的答案的清單中。

如果變數音效變數的值等於 1的話。
把計時器 1的啟用計時設定為真。
這裡用計時器的原因是要讓每一個數字間隔一個時間差再發出聲音。才不會一堆聲音混在一塊。


最後一段的程式碼說明:

如果變數音效變數不等於 1的時候直接把計時器關閉。
如果音效變數等於 1的話,就讓指定的音效播放。


好的,這次的計算機,其實是可以用的,按下按鈕發出的聲音也是叫我女兒錄,然後用之前介紹過的幾個工具重新整理過,相關的文章整理如下:
怎麼用 Mp3DirectCut剪輯 MP3檔案,保留或移除我們不想要的部份
用 MP3 Quality Modifier來幫 MP3檔案減肥、降低音質、降低檔案大小
怎麼用格式工廠把影片轉成 mp3

這次的 app比較大的問題就是前面講的,做不到 1+1+1+1+1+1這樣的功能,一定是要 1+1=2, 2+1=3這樣……這是我老婆在幫我測試的發現的問題。這個問題晚點在來解決。

這次的 apk檔的下載連結如下:
點我下載 NO_96_Calculator.apk

參考書籍如下:
手機應用程式設計超簡單 App Inventor 2零基礎入門班
TQC+ 創意App程式設計認證指南
TQC+創意App程式設計認證指南解題秘笈
手機應用程式設計超簡單:App Inventor 2初學特訓班
手機應用程式設計超簡單:App Inventor 2小專題特訓班
手機應用程式設計超簡單:App Inventor 2資料庫專題特訓班

之前介紹過的一些 appinventor的使用記錄,都整理在下面這個頁面上了。
APP INVENTOR學習記錄及資源整理頁面

發表迴響