Scripts (версия 3.xx)/Организация звукового меню: различия между версиями
		
		
		
		
		
		Перейти к навигации
		Перейти к поиску
		
				
		
		
	
| McBurns (обсуждение | вклад)  (Новая страница: «Для организации звукового меню внутри сценария вам понадобится объект Device, создаваемый …») | McBurns (обсуждение | вклад)  | ||
| Строка 66: | Строка 66: | ||
| </syntaxhighlight> | </syntaxhighlight> | ||
| Для создания многоуровневого меню можно добавлять этот код в любой из пунктов '''case'''. | Для создания многоуровневого меню можно добавлять этот код в любой из пунктов '''case'''. Например: | ||
| <syntaxhighlight lang="javascript"> | |||
| // Считаем, что 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; | |||
| } | |||
| </syntaxhighlight> | |||
Версия 06:27, 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;
}