我的手机是iPhone4s,iOS6
我的项目目前的场景结构如下:
场景A:SceneMenu.js,内含一个切入场景B的按钮,切入代码如下:
var startButton = ui.getNodeByName("btStart");
startButton.onClick = function(){
print("start!");
var self = this;
game.js_Scene = game.js_Game.createSceneWithJson("SceneChooseLevel.json");
game.js_Scene.onEnter = function (){
var sceneChooseLevel = new SceneChooseLevel(0, "ui_choose_level");
}
game.js_Scene.onExit = function (){
self.gameMapOnExit();
}
game.js_Game.runWithScene(game.js_Scene);
game.js_Game.setSceneEffect(2, 1);
}
场景B:SceneChooseLevel.js,含有一个返回场景A的按钮,按钮onClick时,会调用game的backToMenu()从例程学的]:
var backButton = ui.getNodeByName("btBack");
backButton.onClick = function() {
game.backToMenu();
}
game.backToMenu()方法位于main.js中,代码:
backToMenu : function(self) {
var res = game.js_Game.checkSceneWithName("SceneMenu");
if (res >= 0) {
game.js_Game.runWithSceneName("SceneMenu");
game.js_Game.setSceneEffect(2, 1);
} else {
game.js_Scene = game.js_Game.createSceneWithJson("SceneMenu.json");
game.js_Scene.onExit = function() {
self.sceneOnExit();
}
game.js_Game.runWithScene(game.js_Scene);
}
},
如上,A切B和B切A都使用了setSceneEffect(effectID, time)方法,测试时两处都使用相同的参数,测试报告如下:
参数 A切B的效果 B切A的效果
setSceneEffect(2, 1) FadeTransition1秒,正常 蹦跳着返回A,目测效果其实是JumpZoomTransition
setSceneEffect(2, 0.5)FadeTransition0.5秒,正常 点击无效,报错Cocos2d: Create effect scene error!
setSceneEffect(2, 2) FadeTransition2秒,正常 FadeTransition2秒,正常
setSceneEffect(3, 1) FadeWhiteTransition1秒,正常蹦跳着返回A,目测效果其实是
JumpZoomTransition
结论:B切A时,参数反了,后面一个才是特效编号?