PopUpLayer [弹出的layer: 只让该层响应touch事件]
关键代码如下
PopUpLayer.m中
-(void) registerWithTouchDispatcher
{
[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:INT32_MIN + 1 swallowsTouches:YES];
}
/**
Return YES to claim the touch.
@since v0.8
*/
- (BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event
{
BOOL resoult = YES;
CGPoint touchLocation = [touch locationInView: [touch view]];
touchLocation = [[CCDirector sharedDirector] convertToGL: touchLocation];
for( CCMenuItem *child in [_foldMenu children] ) {
CGPoint local = [child convertToNodeSpace:touchLocation];
CGRect r = [child rect];
r.origin = CGPointZero;
if( CGRectContainsPoint( r, local ) )
resoult = NO;
}
NSLog(@"resoult = %d",resoult);
return resoult;
//返回yes是表明要取得该touch的权限,即吞噬该touch
//返回NO 则不处理
}
转自:http://hi.baidu.com/hh20040410/item/0adee0cdac7e0926e80f2e6e