2012-02-12 2 views
0

청소 후에도 터치에 반응 :CCSprite는 여전히 부모로부터 삭제 나는 CCSprite의 사용자 지정 하위 클래스가 있고 그 안에 내가이 일을하고

[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:-1 swallowsTouches:YES];

를 스프라이트의 사용자 정의 초기화하는 동안.

매우 흥미롭게도, 나는 제어하는 ​​주요 장면 클래스에서, 나중에이 작업을 수행 할 경우에도 그것은 :

[customSprite removeFromParentAndCleanup:YES];

스프라이트는 여전히이 방법에 응답

, 동급 :

-(BOOL) ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event

참으로 호기심이 많습니다.

나는 처음에이 없었어요,하지만 사용자 정의 스프라이트 클래스에 추가하고 차이하지 : 여기에 무슨 일이 일어나고 있는지

-(void)dealloc{ 
    [super dealloc]; 
} 

어떤 생각을?

업데이트 : 확실하지이 관련이 있지만, 내 스프라이트로, 스프라이트 배치에 추가됩니다 스프라이트에 removeFromParentAndCleanup 작품이 실제로이 시도해보세요 CCSpriteBatchNode

답변

0

CCTouchDispatcher은 스프라이트를 유지합니다. 스프라이트를 제거 할 때는 [[CCTouchDispatcher sharedDispatcher] removeDelegate:self];으로 전화해야합니다.

+0

절대적으로 훌륭함, 효과가 있습니다. – johnbakers

0

의 일부가 있는지 궁금 해요 :

- (void) onEnter{ 
    [[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:YES]; 
    [super onEnter]; 
} 

- (void) onExit{ 
    [[CCTouchDispatcher sharedDispatcher] removeDelegate:self]; 
    [super onExit]; 
} 
관련 문제