Показать сообщение отдельно
Старый 02.01.2019, 13:56
Жень Шень вне форума Посмотреть профиль Отправить личное сообщение для Жень Шень Найти все сообщения от Жень Шень
  № 23  
Ответить с цитированием
Жень Шень
 
Аватар для Жень Шень

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
По первому пункту - в начальной версии у автора печатался какой-то текст (не помню уже что, но типа "нажмите клавишу А,B,C,D). Так и остался старт таймера. Замечание принимается.
По второму пункту - тоже принимается замечание. В моей редакции просто проверку на используемые клавиши надо перенести повыше и удалить повторяющий код. Результат должен быть таким:
Код AS3:
function on_keyDown(e:KeyboardEvent):void {
    if (e.keyCode==49||e.keyCode==50||e.keyCode==51||e.keyCode==52) {
        timer1.stop();
        if (e.keyCode==49) {
            delay=10;
            dialogs.gotoAndStop(1);
        } else if (e.keyCode == 50) {
            delay=15;
            dialogs.gotoAndStop(2);
        } else if (e.keyCode == 51) {
            delay=20;
            dialogs.gotoAndStop(3);
        } else if (e.keyCode == 52) {
            delay=25;
            dialogs.gotoAndStop(4);
        }
        answer_tf.text="";
        myString=dialogs.tf.text;
        myArray=myString.split("");
        timer1.delay=delay;
        timer1.start();
    }
}
По-третьему пункту - автор хотел чтобы скорость таймера была разной в зависимости от нажатой клавиши (delay=20;//скорость печати). Просто в последних редакций кода на этом не заостряли внимание и delay была одинаковой. Поэтому был оставлен ранее используемый блок "if else if". В вашем случае к объекту keysMap надо добавить ещё одно свойство и устанавливать delay для каждой из назначенных клавиш.
В целом ваши замечания правильные и рациональны, но учитывая, что автор в АС3 плохо ещё разбирается, то логика работы "его замыслов" для него более понятна в данном изложении. Впрочем это ему судить и принимать решение.