您的位置:首页 > 其它

关于CCSprite不能及时显示的问题

2013-12-11 15:09 274 查看
今天在利用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{
.......
}


此时可以正常显示精灵了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐