2014-11-07 1 views
1

У меня есть CCGLView в моем viewController, после завершения анимации я пытаюсь заменить сцену в CCGLView пустой сценой. Проблема в том, что при замене сцены есть мерцание, которое я могу наблюдать. Я хочу избежать этого, я предоставляю код ниже. Что я должен изменить, чтобы избежать этого мерцания?CCGLView мерцает проблема

CC3Layer* layer=[[CC3Layer alloc]init]; 
CC3Scene* scene= (CC3Scene*)layer.scene; 
scene.backdrop= [CC3Backdrop nodeWithColor:ccc4f(0.0/255.0, 0.0/255.0, 0.0/255.0, 0.0)]; 
[scene updateScene]; 
[self.director replaceScene:[layer asCCScene] withTransition:[CCTransition transitionCrossFadeWithDuration:1.0]]; 
[self.director stopAnimation]; 

ответ

0

Одна проблема в том, что scene свойство CC3Layer возвращает экземпляр CCScene, а не CC3Scene экземпляр вы ожидаете. В любом случае в вашем коде свойство scene вернет nil, так как оно еще не установлено. Попробуйте использовать свойство cc3Scene.

Вы не указали, где вы пытаетесь запустить этот код, но если добавить следующий код в nodeSelected:byTouchEvent:at: метод приложения CC3HelloWorld шаблона, переход проходит гладко, без каких-либо мерцаний:

CC3Layer* layer=[[CC3Layer alloc]init]; 
CC3Scene* scene= layer.cc3Scene; 
scene.backdrop= [CC3Backdrop nodeWithColor:ccc4f(0.0, 0.5, 0.5, 1.0)]; 
[CCDirector.sharedDirector replaceScene:[layer asCCScene] withTransition:[CCTransition transitionCrossFadeWithDuration:1.0]]; 

... Bill