调用display.runScene(newScene, transition, time, more) 的时候出问题了
display.lua 的代码是用这个目录中的:cocos2d-x-3.6\cocos\scripting\lua-bindings\script\framework\
display.runScene(scene, “FADE”, 1) 这样用没问题
display.runScene(scene, “CROSSFADE”, 1) 这样用就报错了
下面这些参数中,有大括号包含的(如"FADE")才可以正常用。
display.SCENE_TRANSITIONS = {
CROSSFADE = cc.TransitionCrossFade,
FADE = {cc.TransitionFade, cc.c3b(0, 0, 0)},
FADEBL = cc.TransitionFadeBL,
FADEDOWN = cc.TransitionFadeDown,
FADETR = cc.TransitionFadeTR,
FADEUP = cc.TransitionFadeUp,
FLIPANGULAR = {cc.TransitionFlipAngular, cc.TRANSITION_ORIENTATION_LEFT_OVER},
FLIPX = {cc.TransitionFlipX, cc.TRANSITION_ORIENTATION_LEFT_OVER},
FLIPY = {cc.TransitionFlipY, cc.TRANSITION_ORIENTATION_UP_OVER},
JUMPZOOM = cc.TransitionJumpZoom,
MOVEINB = cc.TransitionMoveInB,
MOVEINL = cc.TransitionMoveInL,
MOVEINR = cc.TransitionMoveInR,
MOVEINT = cc.TransitionMoveInT,
PAGETURN = {cc.TransitionPageTurn, false},
ROTOZOOM = cc.TransitionRotoZoom,
SHRINKGROW = cc.TransitionShrinkGrow,
SLIDEINB = cc.TransitionSlideInB,
SLIDEINL = cc.TransitionSlideInL,
SLIDEINR = cc.TransitionSlideInR,
SLIDEINT = cc.TransitionSlideInT,
SPLITCOLS = cc.TransitionSplitCols,
SPLITROWS = cc.TransitionSplitRows,
TURNOFFTILES = cc.TransitionTurnOffTiles,
ZOOMFLIPANGULAR = cc.TransitionZoomFlipAngular,
ZOOMFLIPX = {cc.TransitionZoomFlipX, cc.TRANSITION_ORIENTATION_LEFT_OVER},
ZOOMFLIPY = {cc.TransitionZoomFlipY, cc.TRANSITION_ORIENTATION_UP_OVER},
}
我看了下代码,有这么一段,感觉是这里的问题:
if type(t) == “table” then
scene = t:create(time, scene, more)
else
scene = t:create(time, scene)
end
实际测下来,type(cc.TransitionCrossFade) 或者 type(cc.TransitionFadeBL) 等等都是 “table”,所以程序不会走 else的路线。
所以cc.TransitionCrossFade:create(time, scene, more) 执行起来就报错了
难道是我的环境的问题?有没有哪位大哥指点下。。