2012-02-12 16 views
0

をクリーンアップした後でも触れて応答します。CCSpriteはまだ私がCCSpriteのカスタムサブクラスを持っており、それには私がこれをやっている、それは親から削除し、

非常に興味深いことに、私が制御する主シーンクラスから、後でこれを行う場合でも、それ:

[customSprite removeFromParentAndCleanup:YES];

スプライトはまだこのメソッドに応答

、そのクラスで:

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

本当に好奇心が強い!

は、私が最初にこれを持っていなかったが、私は、カスタムスプライトクラスに追加し、それが何の違い行われません。ここで何が起こっているのか

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

任意のアイデアを?

UPDATE:わからないこれが関連しているが、私のスプライトは確かであるとして、スプライトバッチに追加されたスプライト上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]; 
}