TransitionSlideInT导制addCustomEventListener收不到消息

不知这算不算是一个BUG
我在A Scene里面启动B Scene

使用
BScene *scene = BScene::create();
Director::getInstance()->replaceScene(TransitionSlideInT::create(0.5, scene));

BScene里使用addCustomEventListener 接收消息,如果直接replaceScene(BScene);消息可以接收到

使用了TransitionSlideInT确接收不到消息,这让人很费解呀

好吧,看到这个我无语了…
// custom onEnter
void TransitionScene::onEnter()
{
Scene::onEnter();

// disable events while transitions
_eventDispatcher->setEnabled(false);

// outScene should not receive the onEnter callback
// only the onExitTransitionDidStart
_outScene->onExitTransitionDidStart();

_inScene->onEnter();

}

对的。

所以说最好不要在init去注册消息,而要在onEnter去注册。

在动画过程中,TransitionSlideInT把event dispatcher禁用掉了,这不科学啊,动画可能很长时间,总不能这时候来了个网络异步通知不处理吧。

虽然可以手动启用event dispatcher,但是这是个小坑。

哎,简直坑,原来notification多好用

Arrow man:11::11::11::11::11:

这问题该如何彻底解决?

我现在的做法是:

在dispatherCustomEvent前,先判断cc.eventManager.isEnabled,如果是false,那就设为true;
在addCustomEventListen前,也是有这个处理。

我的addCustomEventListener都是放在ctor里的,有时候不知为何 放在onEnter不妥。。。

注:使用的是cocos2d-js v3.10