关于CCSprite不能及时显示的问题
今天在利用AFNetworking做网络请求时总是能看到添加的CCSprite精灵总是延迟一会才显示,google了半天没有找到答案,
考虑到CCSprite要被渲染才能显示,于是直接在场景中的CCLayer的draw函数上添加了一个断点,查看什么时候CCLayer才被渲染,
发现每次执行下面语句时CCLayer的draw函数就不会执行,倒是CCSprite不能渲染,故执行下面函数时阻塞了draw函数的执行
NSTime *_time; //开始轮询 -(void)startUpdateQuery{ _timer = [NSTimer scheduledTimerWithTimeInterval:_queryTimeInterval target:self selector:@selector(updateQueryPhase:) userInfo:nil repeats:YES]; [_timer fire]; } //停止轮询 -(void)stopUpdateQuery{ [_timer invalidate]; } //轮询过程 -(void)updateQueryPhase{ ........ }
经过修改后换成下面语句
//开始轮询 -(void)startUpdateQuery{ [self performSelector:@selector(updateQueryPhase) withObject:nil afterDelay:_queryTimeInterval]); } //停止轮询 -(void)stopUpdateQuery{ [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(updateQueryPhase) object:nil]); } //轮询过程 -(void)updateQueryPhase{ ....... }
此时可以正常显示精灵了