일부 물건을로드하는 데 몇 초가 걸리는 알고리즘이 있습니다. 먼저 실제로드가 시작되기 전에 "로드 중"이라고 말하기 위해 라벨에 문자열을 설정하고 싶습니다. 이것은 모두 같은 레이어 내에 있습니다. 이것은 장면 사이를 전환하지 않습니다. 나는이 있고,Cocos2D scheduleUpdate를 사용하여로드 지연
-(void)startLoading{
[self unscheduleAllSelectors];//just in case the update is already scheduled
[self.loadingLabel setString:@"Loading...."];
[self scheduleUpdate];
}
을 다음 :
-(void)update:(ccTime)delta{
[self unscheduleUpdate];
[self beginLoading];//another method that loads all the stuff
}
나의 이해는 나의 방법 다음 프레임까지 실행되지해야한다는 것입니다
나는 단순히이 작업을 수행 할 수 있다고 생각. 따라서 내 레이블이 올바르게 업데이트되어야합니다. 그러나 이것은 일어나지 않습니다. 로드가 시작되기 전에 모든 애셋이로드되고 내 라벨이 업데이트되지 않습니다.단계가 빠졌습니까?
장면/레이어의 init 함수에서 startLoading을 호출하고 있습니까? 이 스레드는 해결책을 가지고있는 것처럼 보입니다 ... http://www.cocos2d-iphone.org/forum/topic/15998 – badgerr
그 스레드는 다른 문제점을 나타냅니다. 내 업데이트가 실행 중이지만 하나의 프레임을 기다리지 않고 있거나 새 프레임이 시작되기 전에 이전 프레임이 완료되지 않은 경우 가능하지 않습니다. 나는 init 메소드를 호출하지 않는다. – johnbakers