我正在使用CCScrollLayer,我想在玩家選擇階段時準備圖像。這很簡單,但當我滾動舞臺時,它執行時間(延遲加載圖像)。我在線程中加載的圖像沒有出現
所以我決定使用NSThread。並且我收到了一條消息:「cocos2d:CCSpriteFrameCache:嘗試從cocos2d使用文件'Level3.png'作爲紋理」。那麼它應該出現。但是我在線程上加載的這些圖像不會按我的意思顯示。根本不值一提。
-(void) moveToStagePage:(int)page
{
...
[NSThread detachNewThreadSelector:@selector(prepareTexture:) toTarget:self withObject:[NSNumber numberWithInt:page]];
...
}
低於源是準備圖像的代碼。(線程)
-(void) prepareTexture:(NSNumber*)number
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
int _page = [number intValue];
NSLog(@"%d Thread start", _page);
if(loadingTexNum != 0 && (_page + 1) != loadingTexNum)
{
[[CCSpriteFrameCache sharedSpriteFrameCache] removeSpriteFramesFromFile:[NSString stringWithFormat:@"Level%d.plist", loadingTexNum]];
loadingTexNum = _page + 1;
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:[NSString stringWithFormat:@"Level%d.plist", loadingTexNum]];
}
if(loadingTexNum == 0 && (_page + 1) != loadingTexNum)
{
loadingTexNum = _page + 1;
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:[NSString stringWithFormat:@"Level%d.plist", loadingTexNum]];
}
[NSThread sleepForTimeInterval:10.0];
NSLog(@"%d Thread release", _page);
[pool release];
}
非常感謝..我不知道如何欣賞。非常感謝。 –