SoundSwitchSample

本範例程式碼:https://app.box.com/s/wgd2zucsayorn1m9myqr
(本範例以iPhone5作為原始尺寸)

收到讀者來信詢問問題:

您好,我是個程式新手,因為購買了您的書而開始學寫CORONA SDK,最近正在研究UFO大冒險這一篇程式,試著想要把MORE APP跳轉過去後的空白頁面加上音量控制鍵跟音樂開關鍵,可是怎麼是都無法成功,可以請您指導下嗎?…(以下的內容是很多的程式碼,在此省略。)

我回應:

謝謝看我的書學習 Corona SDK。

如果我沒有理解錯誤的話,

您要做的事情是有一個設定頁(也就是有一個場景),

其中可以控制所有場景的音樂開關和音效控制。

要做到這樣的功能,

要建立一個讓所有場景都看得到的全域變數,

讓每個場景知道現在要不要播放背景音樂。

如果是我的話,

我會在還沒有進入第一個場景之前的 main.lua中,

設定一個全域變數(比方說我自己取名叫做) theSoundIsOn = true

平常我們寫程式的時候,

都會寫

local theSoundIsOn = true

這樣前面加上了 local 的變數,只會存在在單一的檔案中。

所以要做一個每個場景都看得到的全域變數的話,

就要在 main.lua 裏,把 local 拿掉,寫成

theSoundIsOn = true

(請參考 3-3 有關 local的解釋)

接著在設定音量頁面中,去修改 theSoundIsOn 的值。

而每個場景要播放背景音樂之前,都先確認 theSoundIsOn 是 true 或是 false,

再決定要不要放背景音樂。

如果想要在每次開啟程式的時候都知道之前和音量相關的設定的話,

就要把 main.lua 裡面的變數存起來。

(請參考8-12,8-13的saveRecord與loadRecord的方法)

不過也許說明得不夠清楚,所以讀者再次詢問:

非常感謝您回文,看了您的說明之後我有再嘗試過,但可能因為我是個完全沒有接觸過程式的新手,所以還是無法完全理解您所說的做法跟意思,再次看了您推薦的變數章節跟儲存與讀取分數的章節之後覺得有點眉目了卻還是無法將它付之實踐,如果可以的話,能麻煩撥點寶貴的時間寫些範例讓我能夠實際參考嗎?再次感謝您的回文,一般書籍的作者是不隨便回讀者文的,您的親切令我感到訝異,謝謝您。

於是我決定把這樣的功能寫成[範例]來分享。

原理就像之前回文說的一樣,在這邊就不多做解釋了。

如果想要做一個音量設定頁的話,麻煩參考一下這個 [範例] 嚕。

相關連結

*********************************************

完全沒有程式基礎的人也學得會:Corona SDK入門好書分享 [書籍連結]

用 CoronaCards 來開發Windows Phone的程式教學 [文章連結]

本篇文章範例連結 [範例網址]

(859)

superstardj

been a DJ, a rapper, a musician and a recording artist... a novel-writer, a language-book author, and a chief editor... a painter, a book-cover designer and many more... right now a programmer who designs mobile application, both iOS and Android devices...

2 thoughts on “[原始碼分享] SoundSwitch:做出設定音量開關的頁面

Neo - | Reply

非常感謝您特地撥空撰寫這一篇範例,由於您的親切令我相信,買這本書來學習是非常值回票價的,即使是學校老師也罕有願意這樣鉅細靡遺來指導學生的作法,再次感謝您的音控教學,謝謝。

    superstardj - | Reply

    真的做出App要分享一下歐!加油!

Leave a Reply

Your email address will not be published. Required fields are marked *