PDA

Просмотр полной версии : Перебор массива


Jods
27.04.2016, 19:31
Добрый день! Скажу сразу, я изучаю AS3 буквально четвертый день, поэтому не кидайтесь помидорами)
Я перерыл кучу информации, но мало что понял из всего, собирал инфу по крупицам.

В общем суть такая - Есть текст, который задается заранее (динамический). Есть поле ввода, где пользователь вводит слова. Программа должна сравнивать каждое слово по очереди и если слова совпали - переходить к следующему слову. Если нет - не переходить к следующему слову.
TextForUser - динамический текст
myTextBox - поле ввода

Не могу заставить его проверять слово за словом, проверяет только первое

stop();

var textOfUser:String = TextForUser.text;
var slova:Array = textOfUser.split(" ", 50);
trace (slova);

myTextBox.addEventListener (KeyboardEvent.KEY_DOWN, next);

function next (event:KeyboardEvent) {
if (event.keyCode == 32) {
var str:String = myTextBox.text;
var i = 0;
if (str == slova[i]) {
myTextBox.text="";
for (i = 0; i < slova.length;) {
next();
trace (i);
}
}
}
}

Wolsh
27.04.2016, 22:23
1. next принимает обязательный параметр event:KeyboardEvent. У вас в цикле for вызывается next() без параметров. Должна выпадать ошибка.
2. Цикл for у вас без инкремента итератора. Проще говоря, не хватает i++
for (i = 0; i < slova.length; i++) {

undefined
28.04.2016, 07:52
3. Рекурсия тут совершенно не нужна. Убери next(); и добавь break; после trace(i);