popScene动画

从 场景sceneA 通过pushScene() 到 场景sceneB,然后需要从sceneB返回到sceneA时,用popScene()方法却没有动画实现,请问各位有什么思路或方法
(在不用repleaceScene()的情况)。。。

参考testcpp里面的 SceneTest的例子:

void SceneTestLayer1::onPushSceneTran(Object* sender)
{
    auto scene = new SceneTestScene();
    auto layer = new SceneTestLayer2();
    scene->addChild( layer, 0 );

    Director::getInstance()->pushScene( TransitionSlideInT::create(1, scene) );
    scene->release();
    layer->release();
}

```

从一个场景进入另一个场景:
CCDirector::sharedDirector()->pushScene(myScene::scene());
返回只需在一个响应事件的按钮中加入
CCDirector::sharedDirector()->popScene();

楼上2个,你们答非所问。

对啊,这个怎么解决呢?

你可以注册一个事件enter,
function Test1:onEnter()
self:setOpacity(0);
self:runAction(cc.FadeIn:create(0.5));
end
self:registerScriptHandler(onEnter);

之前有写过,再贴一遍:

需要修改引擎的Director::popScene()函数,也可以进行重载或者设置默认参数。

void Director::popScene(const std::function& callback)
  {
      CCASSERT(_runningScene != nullptr, "running scene should not null");

      _scenesStack.popBack();
      ssize_t c = _scenesStack.size();

      if (c == 0)
      {
          end();
      }
      else
      {
          _sendCleanupToScene = true;
          _nextScene = _scenesStack.at(c - 1);
          if(callback)
              callback(_nextScene);
      }
  }

```

使用方式:

auto callback = ](Scene*& scene){scene = TransitionJumpZoom::create(1.0f, scene);};
    Director::getInstance()->popScene(callback);
```

谢谢

:14: :14: :14: :14: :14: