切换场景出现了问题,求助!

我创建了两个场景文件KT.lua和ZCD.lua

我想显示KT的场景两秒后,然后切换成ZCD的场景

KT的代码是这样的:
local KT = class(“KT”, function ()
return display.newScene(“KT”)
end)

function KT:ctor()
display.newSprite(“opbackground.png”, display.cx, display.cy):addTo(self)

end

return KT

而ZCD的代码也是和KT的代码完全一样,只是要显示的png不同

然后我在APP.lua是这样写的:
require(“config”)
require(“framework.init”)

local MyApp = class(“MyApp”, cc.mvc.AppBase)

function MyApp:ctor()
MyApp.super.ctor(self)
end

function MyApp:run()
cc.FileUtils:getInstance():addSearchPath(“res/”)
self:enterScene(“KT”)
display.replaceScene(“ZCD”, fade, 0.5)

end

return MyApp

但运行的结果是停在了KT的场景里

DEBUG显示
libpng warning : interlace handling should be turned on when using png_read_image

有点无解啊!求助

这样试一下,看下面红色部分。
require(“config”)
require(“framework.init”)
local scheduler = require(“framework.scheduler”)

local MyApp = class(“MyApp”, cc.mvc.AppBase)

function MyApp:ctor()
MyApp.super.ctor(self)
end

function MyApp:run()
cc.FileUtils:getInstance():addSearchPath(“res/”)
self:enterScene(“KT”)
scheduler.performWithDelayGlobal(function()
display.replaceScene(“ZCD”, fade, 0.5)
end, 0.1)

end

return MyApp

不行,还是一样的结果

DEBUG上还是显示
libpng warning : interlace handling should be turned on when using png_read_image

这个意思是不是要读取PNG时需要打开一个叫interlace handling的东西?

那只是一个warning,
scheduler.performWithDelayGlobal(function()
display.replaceScene(“ZCD”, fade, 0.5)
end, 1) 延迟1秒看看。

从1到5秒 我都试了一遍

还是不行,结果还是一样的。

不过我很感谢你的回复呢。

你检查下是不是图片有问题。

图片是PNG格式,960*640,应该没有什么问题

我试着吧APP.lua里面的"KT"和"ZCD"对调,再运行

然后结果就是卡在ZCD场景的画面上,而DEBUG的信息依旧相同

:12:

… 你调用方法错误了。

display.replaceScene(“ZCD”, fade, 0.5) 替换成 self:enterScene(“ZCD”)

是场景的调用方法错误了吗?

那请问应该怎么修改呢?

这样的话,场景几乎是瞬间转换,第一个场景看不到,

我的想法是第一个场景停顿两秒然后淡入到第二场景。

看起来这个的想法实现起来好像很复杂 :12:

看楼上的楼上

function MyApp:run()
cc.FileUtils:getInstance():addSearchPath(“res/”)
self:enterScene(“KT”)
scheduler.performWithDelayGlobal(function()
display.replaceScene(require(“app.scenes.ZCD”).new(), “fade”, 0.5, display.COLOR_WHITE)
end, 2)
end

按照你的方式做了,计时器函数是起作用了,

但是DEBUG又出了新的错误。

有点不明白是哪里的问题?

再看看10楼是怎么写的。

我按10的楼的方法做了,成功了!!真的太感谢你了!!

但是我还是有些疑问:

require(“app.scenes.ZCD”).new() 是什么意思,其中.new()是什么命令?之前DEBUG为什么会找不到场景呢?

而我之前试着用local ZCD = require(“ZCD”),但是不行,为什么呢?

还有一点是我在看API文档看到一个举例是–使用红色做过渡色的切换场景命令:
display.replaceScene(nextScene, “fade”, 0.5, ccc3(255, 0, 0))

但是我在用的时候 ccc3(255, 0, 0)代替display.COLOR_WHITE的时候

DEBUG的信息是不知道ccc3的命令是什么

这是为什么呢,或者是需要引入什么命令才能使用?

你用的时什么版本的ccc3 这用法很老了,改用cc.c3b, 你看看quick 的sample里面的代码,看看他们是怎么调用的。