Composer
是Corona SDK官方指定的场景(界面)创建和管理库。这个库为开发者提供了创建场景(界面)以及场景(界面)间切换的简单方式。
Composer
库中最基本的对象是scene
对象,这是一个可以对特定事件作出回应的事件监听器,它包含了一个独特的self.view
属性,该属性就是与场景相关联的display group
的一个索引。你应当将属于场景的可视化元素添加到self.view
中。
看下面的场景模板来了解下场景文件是如何构建的。下面的模板可以被用来创建新的场景文件,注意:这个模板包括了监听场景中所有潜在事件的函数,但是你只需要包含想要处理的事件的监听函数。
local composer = require( "composer" )
local scene = composer.newScene()
-- "scene:create()"
function scene:create( event )
local sceneGroup = self.view
-- 在这里初始化场景.
-- 例如:添加展示对象到`sceneGroup`中,添加触摸监听器,等。
-- "scene:show()"
function scene:show( event )
local sceneGroup = self.view
local phase = event.phase
if ( phase == "will" ) then
-- 场景仍然没在屏幕上时会调用(但是即将会出现在屏幕上).
elseif ( phase == "did" ) then
-- 场景出现在屏幕上时调用.
-- 在这里插入代码来让场景生动.
-- 例如:开启定时器,开始动画,播放音乐等
end
end
-- "scene:hide()"
function scene:hide( event )
local sceneGroup = self.view
local phase = event.phase
if ( phase == "will" ) then
-- 场景仍然在屏幕上时调用 (但是即将离开屏幕).
-- 在这里插入代码让场景"停止"工作.
-- 例如:停止定时器,停止动画,停止音乐等。
elseif ( phase == "did" ) then
-- 场景离开屏幕时调用.
end
end
-- "scene:destroy()"
function scene:destroy( event )
local sceneGroup = self.view
-- 在移除场景的视图("sceneGroup")之前调用
-- 在这里插入代码来清理场景.
-- 例如:移除显示对象,保存状态等
end
-- 设置事件监听器
scene:addEventListener( "create", scene )
scene:addEventListener( "show", scene )
scene:addEventListener( "hide", scene )
scene:addEventListener( "destroy", scene )
return scene