我想知道如何以最好的方式实现场景之间的过渡。
我的应用程序有一个ccscene1
inclass1
和ccscene2
in 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]]];
我正在寻找“专业”的方式来做到这一点。