タッチイベントの登録と削除 [EventListener]

cocos2d-x を version2.2.3からversion3.2rc0に移行してみました
タッチイベントについて大幅な変更があったのでメモしておきます

TestLayer.h
v2.2.3

public:
    virtual bool ccTouchBegan(cocos2d::CCTouch *touch, cocos2d::CCEvent *event);
    virtual void ccTouchMoved(cocos2d::CCTouch *touch, cocos2d::CCEvent *event);
    virtual void ccTouchEnded(cocos2d::CCTouch *touch, cocos2d::CCEvent *event);
    virtual void ccTouchCancelled(cocos2d::CCTouch *touch, cocos2d::CCEvent *event);

v3.2rc0

private:
    cocos2d::EventListenerTouchOneByOne *eventListener;
public:
    bool onTouchBegan(cocos2d::Touch *touch, cocos2d::Event *event);
    void onTouchMoved(cocos2d::Touch *touch, cocos2d::Event *event);
    void onTouchEnded(cocos2d::Touch *touch, cocos2d::Event *event);
    void onTouchCancelled(cocos2d::Touch *touch, cocos2d::Event *event);

TestLayer.cpp - タッチイベントの登録
v2.2.3

void TestLayer::onEnter()
{
    Node::onEnter();

    setTouchEnabled(true);
    setTouchMode(kCCTouchesOneByOne);
}

v3.2rc0

void TestLayer::onEnter()
{
    Node::onEnter():

    auto dispatcher = Director::getInstance()->getEventDispatcher();
    eventListener = EventListenerTouchOneByOne::create();
	
    eventListener->onTouchBegan		= CC_CALLBACK_2(TestLayer::onTouchBegan, this);
    eventListener->onTouchMoved		= CC_CALLBACK_2(TestLayer::onTouchMoved, this);
    eventListener->onTouchEnded		= CC_CALLBACK_2(TestLayer::onTouchEnded, this);
    eventListener->onTouchCancelled	= CC_CALLBACK_2(TestLayer::onTouchCancelled, this);
	
    dispatcher->addEventListenerWithSceneGraphPriority(eventListener, this);
}

TestLayer.cpp - タッチイベントの削除
v2.2.3

void TestLayer::Hoge()
{
    setTouchEnabled(false);
}

v3.2rc0

void TestLayer::Hoge()
{
    auto dispatcher = Director::getInstance()->getEventDispatcher();
    dispatcher->removeEventListener(eventListener);
    // すべてのタッチイベントを削除する場合はこっち
    // dispatcher->removeEventListenersForTarget(this);
}