關於CCSprite不能及時顯示的問題

OpenSoucre發表於2013-12-11

今天在利用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{
    .......
}

此時可以正常顯示精靈了

相關文章