ここに問題があります: 私は cocos2D と CCLayers を使用しており、UIView を使用して、UIScrollMenu のジェスチャー認識機能で動きをキャッチしています。私のレイヤーには、アニメーションを永久に実行するアニメーション化されたスプライトがあります。scrollMenu を指でドラッグして指を離すと、バックグラウンドの CCLayer が更新されなくなり、スプライトが動かなくなります。もう一度指を動かすとすぐに、スプライトが更新されます。停止して再び移動すると、スプライトは次のフレームを再生せず、正常に動き続けていた場合に表示されるはずだったフレームを再生するため、問題はスプライトに起因するものではありません。フレームはまだ計算されていると思いますが、レイヤーはビューを更新しません。
誰かがそれを避けるためのアイデアを持っていますか?
私は CCSprites を更新するために何もしません。CCRepeatForever アクションを起動するだけで、親の CCLayer がそれらを気にかけます。この CCLayer をスケジュールしようとしましたが、アイテムを指でドラッグするとすぐに更新関数が呼び出されなくなりました...
`CCAction *hitAction = [CCRepeatForever actionWithAction:[CCAnimate actionWithAnimation:hitAnim restoreOriginalFrame:NO]];
[sprite runAction:hitAction];`
指を再び動かしたときに呼び出される関数 (そして明らかに CCLayer の更新を許可する) は次のとおりです。- (void)scrollViewDidScroll:(UIScrollView *)scrollView