PDA

Просмотр полной версии : Оператор if else и нажатие клавиши


vladimir86
05.03.2014, 22:03
on (keyPress("<Enter>")) {

search2("тебя", "зовут", "тибя", "завут", q);//обращение к функции для проверки наличия слов в строке q
if((a=="тебя"|| a=="тибя")&&(b=="зовут"||b=="завут")){trace("x")}
else {trace("y")}
q="";
}

function search2 (string: String, string2: String, string3: String, string4: String, vopros: String): void {
if ((vopros.indexOf(string) > -1||vopros.indexOf(string3) > -1)&&
(vopros.indexOf(string2) > -1||vopros.indexOf(string4) > -1))
{a=string;b=string2;}
}

Ввожу в q абракадабру, нажимаю энтер, выводит у. Ввожу "как тебя зовут", жму энтер, выводит х. Но когда я после этого ввожу снова абракадабру, выводит х.
Как я понимаю, при каждом нажатии на клавишу НЕ происходит проверка условий с самого начала. Можно ли этого как-то добиться? Или для моей цели нужно использовать вовсе не оператор выбора?

alexcon314
05.03.2014, 23:04
при каждом нажатии на клавишу НЕ происходит проверка условий
Вставьте в тело функции search2 trace()
function search2 (string: String, string2: String, string3: String, string4: String, vopros: String): void {
if ((vopros.indexOf(string) > -1||vopros.indexOf(string3) > -1)&&
(vopros.indexOf(string2) > -1||vopros.indexOf(string4) > -1))
{a=string;b=string2;}
trace(a);
trace(b);
}
И смотрите, как и что работает.