场景和层:
Task1.lua
function Task1Scene:createLayer()
local layer = cc.Layer:create()
--create bg
local bg = cc.Sprite:create("background.png")
bg:setPosition(size.width/2,size.height/2)
layer:addChild(bg)
local turnItem = cc.MenuItemFont:create("PushSceneTask2")
--定义一个函数
local function turnTask2Callback(sender)
local task2Scene = require("Task2")
cc.Director:getInstance():pushScene(task2Scene:create()) --pushScene和popScene一起使用,
--pushScene将一个scene压入堆栈,需要指定一个scene
--popScene 将堆栈顶的一个scene挤出,不需要指定scene
end
--注册菜单项一个函数
turnItem:registerScriptTapHandler(turnTask2Callback)
--跳转动画
local jumpItem = cc.MenuItemFont:create("JumpDSceneTask2")
--定义一个函数
local function JumpTask2Callback(sender)
local task2Scene = require("Task2")
local ts = cc.TransitionSplitCols:create(1.0,task2Scene:create())
cc.Director:getInstance():pushScene(ts)
end
jumpItem:registerScriptTapHandler(JumpTask2Callback)
local mn = cc.Menu:create(turnItem,jumpItem)
mn:alignItemsVertically();
layer:addChild(mn)
return layer
end
Task2.lua
function Task2Scene:createLayer()
local layer = cc.Layer:create()
--create bg
local bg = cc.Sprite:create("login.jpg")
bg:setPosition(size.width/2,size.height/2)
layer:addChild(bg)
local turnItem = cc.MenuItemFont:create("PopSceneTask2")
--定义一个函数
local function turnTask1Callback(sender)
cc.Director:getInstance():popScene()
end
--注册菜单项一个函数
turnItem:registerScriptTapHandler(turnTask1Callback)
local mn = cc.Menu:create(turnItem)
mn:alignItemsVertically();
layer:addChild(mn)
return layer
end
场景的过度动画演示: