Я пытаюсь добиться следующего
- Пользователь нажимает CCMenuItem
- Воспроизвести звуковой файл (я установил его как фоновую музыку, чтобы проверить, воспроизводится ли он)
- Отключить касание всех CCMenuItem
- Дождаться завершения воспроизведения звукового файла
- После завершения включения звукового файла повторно включить касание всех CCMenuItems
ФункцияЯ использую функцию wait в моей модели:
- (void) waitForAudio
{
while ([[SimpleAudioEngine sharedEngine] isBackgroundMusicPlaying]) {
NSLog(@"Waiting for audio to finish");
}
}
В моем представлении есть следующая функция:
-(void) setPlaygroundAsTouchable:(BOOL)touchable
{
[_menuItem0 setIsEnabled:touchable];
[_menuItem1 setIsEnabled:touchable];
[_menuItem2 setIsEnabled:touchable];
_menu.isTouchEnabled=touchable;
}
Контроллер вызывает и устанавливает функцию представления при запуске моей моделии заканчивает звуковой файл НЕТ и ДА соответственно.
Проблема, с которой я сталкиваюсь, заключается в том, что касания моих CCMenuItems, кажется, ставятся в очередь во время воспроизведения моего аудио, что означает, что каждое касание регистрируется и обрабатывается, когдазвуковой файл завершен.Есть ли у меня способ остановить очередь касаний, пока моя функция waitForAudio все еще находится в цикле?