0

シーン間の移行をどのように実装するのが最善の方法なのか疑問に思っています。

私のアプリにはccscene1inclass1ccscene2in がありclass2ます。

シーン 1 からシーン 2 への移行を行っているとき、シーン 1 の init メソッドに多くの割り当てられたインスタンスがあり、シーンをライブするたびに解放/割り当てたくありません。割り当てられたすべてのインスタンス (およびそれらのいくつかはサーバーの tcp 接続) が 2 から戻ったときに再度割り当てられないように、シーン 1 をどのように実装できますか?

1つの解決策: グローバルフラグを設定し、デリゲートから最初の起動時にそれを1に設定し、これがシーン1のinitメソッドでの最初の起動であるかどうかを確認し、オブジェクトを割り当てます。

シーン 1 を離れた後、このオブジェクトは戻っても有効なままですか? (私はそれらを解放していないとしましょう)?

主な目標は、遷移ごとにサーバーに接続せず、シーン 1 のデリゲート インスタンスを有効に保つことです (ソリューション 1 を使用している場合)。

-(id) init
{
    if( (self=[super init]) )

    {
       socketInstance=[[SocketConnector alloc]init]; //only once !
       socketInstance.delegate=self;

     //later on i have transition :

    [[CCDirector sharedDirector] replaceScene:[CCTransitionFade transitionWithDuration:0.7f scene:[AdressBookScene scene]]];

これを行うための「専門的な」方法を探しています。

4

1 に答える 1

1

pushSceneScene2 を実行するために使用できます。これにより、シーン 1 が完全に保存され、メモリに保持されます。その後replaceScene、他のシーンでシーン 2 に進み、最終的に を呼び出しpopSceneてシーン 1 に戻ることができます。

于 2013-03-21T19:46:44.983 に答える