2013年4月15日 星期一

Corona SDK API 介紹


我們知道利用 Corona SDK 做 Mobile App 非常快速,其實這主要要歸功於 Corona SDK 裡完整的 API (Application programming interface),我們知道我們的行動裝置上面有許多功能不同的硬體,例如:觸控螢幕就是一個例子。我們每天觸控螢幕上點來點去,滑左滑右,如何寫程式來支援觸控螢幕的回應,還有更多其他不同的硬體設備,絕對不是一個 LUA 語言就能做到的事。還好 Corona 已經幫我們做好了超過 500 條的 API 讓我們的程式來呼叫調用,幾乎百分之九十你想得到的功能,都能透過這些 API 來達成。

讓我們來看看上一回提到 Hello World 這個 project 的例子:

local background = display.newImage( "world.jpg" )

我們打算在行動裝置的螢幕上秀出一張圖檔,我們可以利用 Corona SDK 裡面的 display.newImage 這個函式 function。Corona 裡面對於要輸出到螢幕上的作業,大多收集在 display Library 函式庫裡面,我們可以用 display.* 『 * 是代表你要用的函式,例如前面的 newImage』 來呼叫。(為什麼用 display.* 呢?這有相關到 Lua 的語法,我們改天會說到)

你可以到這個網址連結 http://docs.coronalabs.com/api/library/display/newImage.html 去看有關 display.newImage 的呼叫方法

網頁上的文件說,它可以接受像下面這樣的一些參數

display.newImage( [parentGroup,] filename [,baseDirectory] [,left,top] [,isFullResolution])

第一個參數 [parentGroup,] 放的是這個要秀的圖檔,是否屬於某個 parentGroup 圖形群組。
PS:這裡用方括號刮起來,表示是選擇性的項目,也就是可有寫也可沒寫的參數。

第二個參數 filename 檔名,就是在 project folder 裡面圖檔的名稱。

第三個參數 [,baseDirectory] 路徑,圖檔存放位置的路徑。
PS: 一般我們行動裝置上有三個不同的路徑可以存取檔案,第一個是 system.ResourceDirectory 也就是指 project folder 裡面。(注意:這個路徑是只能讀不能寫的)另一個是 system.DocumentsDirectory ,這個是你應用程式安裝到行動裝置上後,行動裝置系統分配給你這個應用程式可儲存空間的路徑。(注意:這個路徑是能讀也能寫的)最後一個是 system.TemporaryDirectory ,這個是行動裝置系統分配給你這個應用程式另一個可儲存的空間路徑,只是這個空間,系統有可能會動態收回,所以不建議存常態資料。

第四與五個參數 [left,top] 圖檔要放置的 X,Y 座標。

第六個參數 [,isFullResolution] true 或 false,如果你的圖檔要以完整像素一比一讀入系統的話,就是 true。否則系統若遇到比裝置像素還大的檔案,它會縮放這個圖檔。
PS: Corona 允許你讀取最大 2048 x 2048 像素的圖檔,它可以是 JPG 或 PNG 格式,其中 PNG 格式還支援有透明度的 alpha channel。

經過這樣一番解釋,是不是多了解了一點 Corona SDK 的 API 了呢?下次寫 Corona 程式,只要把網站 API 文件放在手邊,是不是很就快能上手了呢?

下次我要來講一講 LUA 這個語言,在寫 Corona 應用程式時要注意些什麼?

待續...



沒有留言:

張貼留言