您的位置:首页 > 移动开发 > Cocos引擎

[iphone][cocos2D]layer 屏蔽底层layer对touch事件的响应

2012-11-01 15:09 579 查看


[iphone][cocos2D]layer 屏蔽底层layer对touch事件的响应

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: