源代码如下:
local MainScene = class("MainScene", cc.load("mvc").ViewBase)
local SceneMap = require("app.views.SceneMap"):create()
MainScene.RESOURCE_FILENAME = "MainScene.csb"
function MainScene:onCreate()
--添加进入按钮的事件。
local function onEnterSceneMap()
SceneMap:showWithScene()
end
local buttonEnter = self:getResourceNode():getChildByName("ButtonEnter")
buttonEnter:addClickEventListener(onEnterSceneMap)
end
return MainScene
狠简单,点击按钮之后进入SceneMap场景,但是在实际中却出错了,提示找不到showWithScene这个方法。
找了很久,貌似是生命周期导致的问题,如果改成下面这样,就改变了创建的位置就可以了。
local MainScene = class("MainScene", cc.load("mvc").ViewBase)
MainScene.RESOURCE_FILENAME = "MainScene.csb"
local testFlag = "test flag"
function MainScene:onCreate()
--添加进入按钮的事件。
local function onEnterSceneMap()
local SceneMap = require("app.views.SceneMap"):create()
SceneMap:showWithScene()
print(testFlag) --可以打印出 test flag
end
local buttonEnter = self:getResourceNode():getChildByName("ButtonEnter")
buttonEnter:addClickEventListener(onEnterSceneMap)
end
return MainScene
或者这样也可以
local MainScene = class("MainScene", cc.load("mvc").ViewBase)
local SceneMap = require("app.views.SceneMap")
MainScene.RESOURCE_FILENAME = "MainScene.csb"
local testFlag = "test flag111"
function MainScene:onCreate()
--添加进入按钮的事件。
local function onEnterSceneMap()
SceneMap:create():showWithScene() --create放到这里也可以。
print(testFlag) --可以打印出 test flag
end
local buttonEnter = self:getResourceNode():getChildByName("ButtonEnter")
buttonEnter:addClickEventListener(onEnterSceneMap)
end
return MainScene
不是很理解,求教。