So I'm developing an iPhone game using cocos2d.
I'm using pushScene to transition from my gameplay scene to a main menu scene because I want the player to be able to resume gameplay from the main menu if they choose. If they do choose to resume, I use popScene.
The trouble seems to be that if events are "incomplete" at the time when the gameplay scene is pushed, when the scene is popped, those events do not complete. What's worse, they leave artifacts on the scene that don't clear by themselves.
Examples: particle explosion effect (particles get "frozen" and don't dissipate as designed), sprite fade-out effect (sprite remains visible at a certain level of transparency).
I guess I would have expected popScene to resume the scene exactly as it was when the scene was pushed, but it seems to be "abandoning" currently-running actions.
How can I achieve my goal?