0

我想知道如何以最好的方式实现场景之间的过渡。

我的应用程序有一个ccscene1inclass1ccscene2in class2

当我从scene1 过渡到scene2 时,scene1 init 方法上有许多已分配的实例,我不想在每次现场直播时释放/分配。我想知道如何实现scene1,以便从2返回时不会再次分配所有分配的实例(其中一些是服务器tcp连接),但仅在第一次启动时,并且在所有场景转换期间仍然保持有效。

一个解决方案: 设置一个全局标志,并在第一次启动时从委托将其设置为 1,然后检查这是否是第一次启动 scene1 的 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

你可以pushScene用来运行scene2。这将完全保留场景 1 并将其保存在内存中。然后您可以继续replaceScene使用其他场景到场景 2,并最终调用popScene返回场景 1。

于 2013-03-21T19:46:44.983 回答