Corona SDK API (2013.2100)概覽

ads.*

用於在應用中顯示廣告的庫。有幾種不同的廣告類型(InMobi、inneractive、iAds、AdMob)可以顯示,對於不同的廣告類型都需要有不同的實現。設置起來應該比較麻煩,但相互之間差別不大。只包含三個方法(ads.init()、ads.show()、ads.hide()),分別用來初始化廣告、顯示到指定位置、隱藏廣告。
analytics.*
提供日誌功能。需要購買授權。只包含兩個方法,一個init(),另一個是logEvent()。只要在需要記錄日誌的地方調用logEvent(information),即可。
audio.*
音頻庫。
credits.*
已不推薦使用。
crypto.*
加解密庫。提供的加解密算法有:MD4、MD5、SHA1、SHA224、SHA256、SHA384、SHA512。這些加密算法作爲常量可以通過crypto.?進行訪問(小寫)。算法將作爲參數告知加密方法crypto.digest()、crypto.hmac()所使用的算法。
display.*
非常重要的庫,包含了UI界面顯示的許多基本屬性,包括各種長寬高、座標等。還有一大堆相關的函數,主要功能有:截圖相關;各種new的方法(幾何圖形、Group、Sprite、Text);屬性的設置方法;頂部狀態欄的設置。
easing.*
函數曲線庫。需要同transition.*庫一同使用。提供了42種函數曲線,方便transition.*在創建動畫時,描述某項數值(如座標x)的改變趨勢。
facebook.*
提供facebook社交功能的庫。通過該庫的函數,可以進行facebook賬戶的登錄/登出、收發信息圖片和檢索狀態。
gameNetwork.*
提供了與Game Center(iOS)和Google Play(Android)的交互。通過使用gameNetwork.init()來初始化應用。使用gameNetwork.request()來向收發平臺請求。使用gameNetwork.show()來向用戶顯示game network的信息。
(globals)
全局庫,同Lua Standard Library。可以在Corona環境下訪問Lua的標準庫。注意Corona環境下的_G是Lua的_G(除了控制檯參數arg)的超集。
graphics.*
圖像庫。包含三個方法:
  • graphics.newGradient(),創建漸變顏色對象並返回該對象。可以設置初始顏色、終止顏色和漸變方向。

  • graphics.newMask(),創建透視鏡可以查看被遮蓋的下層對象。

  • graphics.newImageSheet(),待看~

io.*
IO庫。同Lua5.1的IO庫io。
json.*
JSON編解碼庫。在用法上和luajson比較相似,使用起來非常簡單。
包含兩個方法,一個屬性:
  • json.encode(data),可以對Lua的原生類型String、Number、Boolean、Table、nil進行json編碼。

  • json.decode(data),對json格式的數據進行解碼,返回類型爲Table。

  • json.null,常量Table,表示json中的空值。

lfs.* (file system)
就是LuaFileSystem庫。待看~
licensing.*
許可相關的庫。
math.*
數學庫。同Lua 5.1的數學庫math。
media.*
目測是多媒體庫。待看~
native.*
本地UI庫。提供了一套用於顯示平臺相關UI的方法,包括等待動畫、警告框、字體、文本框等,甚至可以模擬瀏覽器。
network.*
異步HTTP請求庫。提供了基於HTTP協議進行通信的方法。其中network.request()和network.cancel()是核心方法。封裝了便於上傳、下載的network.upload()、network.download()。
os.*
操作系統庫。同Lua 5.1的操作系統庫os。負責處理time、date和os相關的操作。
package.*
模塊庫。基本同Lua的package庫。發現module()和package.seeall的模塊創建方式已經不被推薦。
physics.*
物理模型庫。
socket.* (networking)
同LuaSocket庫。
sprite.* (removed)
已棄用。
sqlite3.* (database)
提供與Sqlite交互的庫。
store.*
應用內支付庫。目前只支持蘋果的App Store和Google的Google Play。
storyboard.*
場景管理庫。負責場景管理,每個場景都包含自己的group用來放置UI控件。每個場景有自己的名字,通過storyboard.gotoScene(name)進行場景轉換。場景創建、進入、切換、銷燬都有對應的事件觸發,可以進行監聽。
string.*
字符串處理庫。同Lua5.1字符串庫string。
system.*
可以稱之爲運行設備庫。通過system.getInfo(args)可以獲得運行設備的系統信息、請求更大的加速計頻率、控制是否允許屏幕變暗或休眠、設置位置事件所需的精度、激活設備功能(目前只支持多點觸摸"multitouch")、震動手機等。還有很重要的幾個路徑相關常量,它們都和system.pathForFile()有關:
  • system.CachesDirectory,

  • system.DocumentsDirectory,

  • system.ResourceDirectory,

  • system.TemporaryDirectory,

system.*中還有一塊相當重要的內容,就是可以控制設備硬件。比如振動(system.vibrate())、陀螺儀(gyroscope)、加速計(accelerometer)。當需要使用傳感器時,需要在Runtime中添加對應傳感器事件的監聽處理方法。
table.* (array)
二次封裝的table庫,提供了額外的table操作方法。該庫中提到的table的操作,只涉及table的數組部分(從索引1到#t)。
方法包括:
  • table.concat(t, seq, i, j),返回結果table。連接t中的所有元素,用seq字符串分隔開(默認爲""),範圍從i開始到j(默認爲從1到#t)。需要注意的是,該方法中t只能夠含有String和Number兩種類型,否則將出錯。

  • table.copy(t[, ...]),返回結果table。可以接受多個table作爲參數,返回table的元素是參數table的從1到nil的元素。

  • table.indexOf(t, element),查找並返回element元素在t中所處的位置,若不存在則返回nil。

  • table.insert(t, value)、table.insert(t, pos, value),插入新元素到末尾或指定位置。

  • table.maxn(t),同std。

  • table.remove(t)、table.remove(t, pos),同std。

  • table.sort(t)、table.sort(t, comp),同std。

timer.*
定時器庫。包含四個方法:
  • timer.performWithDelay(delay, listener, iterations),向系統註冊延時調度器,delay毫秒之後將執行listener方法(如果listener是table,要求必須要定義listener:timer()方法)iterations次。

  • timer.pause(timerId),暫定定時器,返回值爲Number。

  • timer.resume(timerId),恢復定時器,返回值爲Number。

  • timer.cancel(timerId),取消定時器,返回值爲(Number,Number)。取消已經被取消或運行完畢的定時器不會發生錯誤。

transition.*
動畫庫。transition庫提供了創建動畫和補間動畫的方法,同時幀與幀之間還能夠控制暫停、復原和取消控制。因爲當前幀與目標幀的對象狀態不同,需要設置目標幀的狀態,也可以設置延遲、播放時間等。可以配合easing.*庫來控制數值的變化方式。
widget.*
UI控件庫。提供了包括按鈕Button、列表TableView、進度條ProgressView、加載動畫Spinner、步進計數Stepper、百分比控制拉條Slider、選項卡SegmentedControl、選擇框Switch(單選、複選、開關)、可放大的區域ScrollView和菜單欄TabBar。控制位置時需要display的輔助。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章