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的辅助。