cocos2d/cocos2d-iphone-extensions

CCLayerPanZoom: Enable and disabling touches

Opened this issue · 2 comments

There are no methods to enable and disable touches.

I have used the following solution which works fine...

-(void)enableTouch:(BOOL)enable
{
if(enable)
{
[[CCTouchDispatcher sharedDispatcher] addStandardDelegate:self priority:0];
}
else
{
[[CCTouchDispatcher sharedDispatcher] removeDelegate:self];
}
}

When implementing what praveencastelino suggested, I had to in addition remove all objects from the touches array of the PanZoomLayer:

 -(void)enableTouches:(BOOL)enable
{
    [[self touches] removeAllObjects];
    if(enable)
    {
        [[CCTouchDispatcher sharedDispatcher] addStandardDelegate:self priority:0];
        CCLOG(@"LayerPanZoom enabled.");
    }
    else
    {
        [[CCTouchDispatcher sharedDispatcher] removeDelegate:self];
        CCLOG(@"LayerPanZoom disabled.");
    }
}

If I didn't it had lot's of problems when resuming touch handling.