App Inventor學習記錄69,摩斯密碼APP,輸入文字,就可以產生摩斯密碼並發出聲音

這一次要用利用的是英文和摩斯密碼的對照表,在輸入文字之後,就產生對應的摩斯密碼表,再利定產生出的摩斯密碥表,發出相對應的長短音。

記錄一下:
App Inventor學習記錄69,摩斯密碼APP,輸入文字,就可以產生摩斯密碼並發出聲音


APP運行畫面如下:

我們在文字輸入框中,輸入英文語句,按下開始轉換。
轉換後的摩斯密碼,就會出現。
.代表短音。
-代表長音。

按下發出聲音按鈕之後,就會根據”.”、”-“以及”&”這三個符號來發出聲音。
最下方也會隨著聲音,出現代表聲音的符號。


全部的畫面編排如下:

畫面編排的部份沒有太特別的地方,文字輸入盒用來填文字。
幾個標籤元件,用來顯示相關的符號用。
主要就是計時器元件,計時器元件的時間間隔設定為 500ms。
音效 1和音效 2的最小間隔也是設定成 500ms。


全部的程式碼如下:


第 1部份的程式碼說明:

螢幕初始化的時候:
把音效 1的來源,設定成 s.mp3這個檔案,這個是短音。
把音效 2的來源,設定成 l.mp3這個檔案,這個是長音。


第 2部份的程式碼說明:

建立一個叫英文字幕的變數,它的內容是一個清單,清單內容就是 A~Z的英文字母。
建立一個叫摩斯密碼對照表的變數,它的內容也是一個清單,清單內容則是 A~Z的英文的摩斯密碼。
這裡我做了一個對照表如下

建立一個叫轉出來的摩斯碼的變數,它的預設值是空白。
建立一個叫轉成大寫的字的變數,它的預設值也是空白。


第 3部份的程式碼說明:

當開始按鈕被按下的時候:
把轉成大寫的字這個變數的值,設定成文字輸入框的文字,全部轉成大寫後的文字。然後把轉成大寫的字這裡變數裡頭的值,每個字都提出來跟英文字母比對,情形如下。

假設我們輸入的是 sos這三個字。我們就會先把它轉成 SOS。
接著,把 SOS的第 1個字,去跟英文字母這個變數的值去比對。找到 S這個字母,位於英文字母這個表單的那一個項次,再把轉出來的摩斯密碼,設定成摩斯密碼對照表中找出來的 S項次。
這裡每一個字都做一次。再把轉換後的摩斯密碼的文字,設定成轉出來的摩斯密碼這個變數的值。

把開始轉換這個按鈕的啟用,設定為假。


第 4部份的程式碼說明:

這裡我們再新建一個變數,叫時間的值,它的預設值是 0。

當發出聲音按鈕被按下之後:
把計時器的啟用計時,設定為真。

當停止聲音按鈕被按下之後:
把計時器的啟用計時,設定為假。


第 5部份的程式碼說明:

當計時器作動的時候:
把時間的值這個變數的值,設定成每次加 1。
加入一個流程判斷式,如果時間的值大於轉出來的摩斯密碼這串文字的長度的時候。
把計時器的啟用計時,設定為假,來停止計時。

如果時間的值小於轉出來的摩斯密碼這串文字的長度的時候,我們再加入一個流程判斷。
如果轉出來的摩斯密碼的文字,等於”.“的時候,就呼叫音效 1播放。
如果轉出來的摩斯密碼的文字,等於”-“的時候,就呼叫音效 2播放。

把聲音搭配出現這個標籤的文字,設定成轉出來的摩斯密碼,取時間的值的值的長度。


第 6部份的程式碼說明:

當重新輸入按鈕被點選之後:
把轉出來的摩斯密碼這個變數的值,設定為空白。
把轉成大寫的字這個變數的值,設定成空白。
把轉出來的摩斯密碼這個變數的值,設定為空白。
把開始轉換這個按鈕的啟用,設定為真。
把時間的值這個變數的值,設定回 0。
把計時器的啟用計時,設定為假。
把轉換後的摩斯密碼這個標籤的文字,設定為空白。
把聲音搭配出現這個標籤的文字,設定為空白。


這種一個套一個的判斷式,說明起來,真的是太繞舌了。如果有說明不清楚的地方,請大家多多的擔待。東西不難,不熟的朋友花點時間就可以理解了。

這次的 aia檔的下載連結如下:
點我下載 NO_69_Morse_Code.aia

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

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

發佈留言