Scripts (версия 3.xx)/Организация звукового меню: различия между версиями
		
		
		
		
		
		Перейти к навигации
		Перейти к поиску
		
				
		
		
	
| McBurns (обсуждение | вклад) | McBurns (обсуждение | вклад)  | ||
| (не показана 1 промежуточная версия этого же участника) | |||
| Строка 98: | Строка 98: | ||
|           case '1': |           case '1': | ||
|              // <здесь помещаем то, что выполняется при нажатии клавиши «1»>; |              // <здесь помещаем то, что выполняется при нажатии клавиши «1» во втором уровне меню>; | ||
|              break; |              break; | ||
|           case '2': |           case '2': | ||
|              // <здесь помещаем то, что выполняется при нажатии клавиши «2»>; |              // <здесь помещаем то, что выполняется при нажатии клавиши «2» во втором уровне меню>; | ||
|              break; |              break; | ||
|           default: |           default: | ||
|              // <здесь помещаем то, что выполняется, если нажаты клавиши для прерывания или не нажато ничего>; |              // <здесь помещаем то, что выполняется, если нажаты клавиши для прерывания или не нажато ничего во втором уровне меню>; | ||
|              break; |              break; | ||
|        } |        } | ||
Текущая версия на 06:31, 8 апреля 2014
Для организации звукового меню внутри сценария вам понадобится объект Device, создаваемый в каждом стандартном сценарии командой:
var Device = new CDevice ();
Итак, простейшее одноранговое меню:
// Считаем, что Device объявлено заранее
Device.StartDetectDTMF (1,              // Ожидается нажатие одной клавиши
                        '0123456789',   // Считаются значимыми клавиши от 0 до 9
                        '*#');          // Прерывают ожидание клавиши * и #
Device.Listen (10);                     // Ждём нажатия 10 секунд
Device.StopDetectDTMF ();               // Остановка распознавания нажатых клавиш
var DetectedSignal = Device.ReceivedSignals ();         // Значение нажатой клавиши в переменной DetectedSignal
switch (DetectedSignal) {
   case '0':
      // <здесь помещаем то, что выполняется при нажатии клавиши «0»>;
      break;
   case '1':
      // <здесь помещаем то, что выполняется при нажатии клавиши «1»>;
      break;
   case '2':
      // <здесь помещаем то, что выполняется при нажатии клавиши «2»>;
      break;
   case '3':
      // <здесь помещаем то, что выполняется при нажатии клавиши «3»>;
      break;
   case '4':
      // <здесь помещаем то, что выполняется при нажатии клавиши «4»>;
      break;
   case '5':
      // <здесь помещаем то, что выполняется при нажатии клавиши «5»>;
      break;
   case '6':
      // <здесь помещаем то, что выполняется при нажатии клавиши «6»>;
      break;
   case '7':
      // <здесь помещаем то, что выполняется при нажатии клавиши «7»>;
      break;
   case '8':
      // <здесь помещаем то, что выполняется при нажатии клавиши «8»>;
      break;
   case '9':
      // <здесь помещаем то, что выполняется при нажатии клавиши «9»>;
      break;
   default:
      // <здесь помещаем то, что выполняется, если нажаты клавиши для прерывания или не нажато ничего>;
      break;
}
Для создания многоуровневого меню можно добавлять этот код в любой из пунктов case. Например:
// Считаем, что Device объявлено заранее
Device.StartDetectDTMF (1,              // Ожидается нажатие одной клавиши
                        '0123');        // Считаются значимыми клавиши от 0 до 3
Device.Listen (10);                     // Ждём нажатия 10 секунд
Device.StopDetectDTMF ();               // Остановка распознавания нажатых клавиш
var DetectedSignal = Device.ReceivedSignals ();         // Значение нажатой клавиши в переменной DetectedSignal
switch (DetectedSignal) {
   case '1':                   // При нажатии клавиши «1» делаем дополнительное голосовое меню
      //<здесь размещаем код, воспроизводящий описание пунктов меню>
      Device.StartDetectDTMF (1,              // Ожидается нажатие одной клавиши
                              '12');          // Считаются значимыми клавиши 1 и 2
      Device.Listen (10);                     // Ждём нажатия 10 секунд
      Device.StopDetectDTMF ();               // Остановка распознавания нажатых клавиш
      DetectedSignal = Device.ReceivedSignals ();         // Значение нажатой клавиши в переменной DetectedSignal
      switch (DetectedSignal) {
         case '1':
            // <здесь помещаем то, что выполняется при нажатии клавиши «1» во втором уровне меню>;
            break;
         case '2':
            // <здесь помещаем то, что выполняется при нажатии клавиши «2» во втором уровне меню>;
            break;
         default:
            // <здесь помещаем то, что выполняется, если нажаты клавиши для прерывания или не нажато ничего во втором уровне меню>;
            break;
      }
      break;
   case '2':
      // <здесь помещаем то, что выполняется при нажатии клавиши «2»>;
      break;
   case '3':
      // <здесь помещаем то, что выполняется при нажатии клавиши «3»>;
      break;
   case '0':
    default:
      // <здесь помещаем то, что выполняется при нажатии клавиши «0», она считается нажатой по умолчанию>;
      break;
}