Назад
Вводите текст:



Индикатор:
Код Морзе

Представленный апплет скрипт диктовать набранный текст азбукой Морзе. Для этого достаточно набрать текст в соответствующем поле и нажать кнопку "Старт". Текст будет диктоваться посредством звуковых сигналаов, а также светового индикатора. Для каждой буквы на экране будет отображен ее код в соответствии с азбукой Морзе.
Для остановки диктования необходимо нажать клавишу "Стоп".

Для отображения элементов управления используется следуюющий HTML-код

	<FORM NAME="MorseCode">
	Вводите текст:
<TEXTAREA NAME="textcode" ROWS="10" COLS="45" WRAP="virtual" VALUE=""> </TEXTAREA> <BR> <BR> <INPUT TYPE="button" VALUE="Старт" onClick="javascript:startcode();"> <INPUT TYPE="button" VALUE="Стоп" onClick="javascript:stopcode();"> <BR> Индикатор: <IMG NAME="ind" SRC="black.gif"> <BR> <INPUT TYPE="text" NAME="showcode" VALUE="" SIZE="20" MAXLENGTH="20" onFocus="javascript:MorseCode.showcode.blur();"> </FORM>

Таким образом есть следующие элементы управления: поле ввода текста textcode, кнопки "Сарт" и "Стоп", картинка- индикатор ind и поле вывода кода символа text.

При нажатии на кнопку "старт" (событие onClick) вызывается функция startcode() которая запускает "произношение" символа. Для диктовки текста используется следующий набор функций:

	function getCode(c)
	{    
		c1=c.toLowerCase();
		for(i=0;i<decode.length;i++)
			if(decode[i].charAt(0) == c1.charAt(0)
				||decode[i].charAt(1) == c1.charAt(0))
			{    
				return decode[i].substring(2,decode[i].length);
			}
	return empt;
	}
	function startcode()
	{
		if(started == false)
		{
			textc = MorseCode.textcode.value;
			ind1=0;ind2=0;tdc=null;
			started=true;
			dict();
		}
	}
	function  dict()
	{
		if(started)
		{
		if(tdc == null || ind2 >= tdc.length)
		{
		if(ind1 >=textc.length)
		{
			started=false;
			return;
		}
		ind2=0;
		tdc=getCode(textc.charAt(ind1)+" ");
		MorseCode.showcode.value=textc.charAt(ind1)+"= "+tdc;
		ind1++;
		setTimeout("dict()",750);
		}
		else
		{
		if(tdc.charAt(ind2) == ".")
			setred(250,dots);
		else
		if(tdc.charAt(ind2)=="-")
			setred(750,dashs);
		else
			setTimeout("dict()",750);
		ind2++;
		}
		}
	}
	function setred(time1,pth)
	{
		document.body.insertAdjacentHTML('afterEnd', pth);
		document.ind.src="red.gif";
		setTimeout("setblack()",time1);
	}
	function setblack()
	{
		document.ind.src="black.gif";
		setTimeout("dict()",250);
	}
	              

Функция startcode получает текст из поля ввода textcode и вызывает функцию dict. Функция dict для каждого символа получает его код Морзе вызвая функцию getCode. Затем dict вызывает функцию setred, которая устанавливает красный индикатор и проигрывает wav-файл заданный промежуток времени в зависимости от текущего символа кода(точка или тире). По истечению этого промежутка времени функция setred вызывает функцию setblack, которая устанавливает черный индикатор и через небольшой промежуток времени вызывает функцию dict. Этот цикл будет продолжаться до тех пор, пока не будут продиктованы все символы в тексте или пока не будет нажата клавиша "Стоп".
Обработчик события onClick клавиши "Стоп"

	function stopcode()
	{
		started=false;
	}	
	



Rambler's Top100