|
|
|||||
Регистрация: Apr 2015
Сообщений: 4
|
Действие с циклами и массивами
Доброго времени суток! Я только начинаю изучать флеш, сильно не ругайтесь на мои глуповатые вопросы.
Суть такова. Хочу создать массив с определенным количеством значений (текстовых). И есть текстовое поле для ввода данных. Нам необходимо проверять значение текстового поля, сверяя с каждым элементом массива. В зависимости от результата (равно - 1 балл, не равно - 0 баллов) сохранять значение в переменную. Т.е. ,есть массив И, я не пойму как создать цикл проверки введенных данных в текстовое поле. Есть готовый рабочий код, через if-ы: import flash.ui.Mouse; import flash.events.MouseEvent; stop(); var resultat: Number = 0; var resultat1:Number = 0; var padres: String = 'padres'; var pariente1: String = 'pariente'; end.visible = false; pariente.visible = false; txt1name.visible = false; proverka1.visible = false; gomenu.addEventListener(MouseEvent.CLICK, fl_ClickToGoToWebPage_2); function fl_ClickToGoToWebPage_2(event:MouseEvent):void { gotoAndStop(1); } proverka.addEventListener(MouseEvent.CLICK, tio); function tio (event:MouseEvent):void { if (txtname.text == padres) { resultat += 1; trace(resultat); end.visible = false; padrees.visible = false; txtname.visible = false; proverka.visible = false; pariente.visible = true; txt1name.visible = true; proverka1.visible = true; } else { resultat = 0; padrees.visible = false; txtname.visible = false; proverka.visible = false; pariente.visible = true; txt1name.visible = true; proverka1.visible = true; resultat = 0; trace(resultat); } } proverka1.addEventListener(MouseEvent.CLICK, tio1) function tio1 (event:MouseEvent):void { if (txt1name.text == pariente1) { resultat1 = resultat + 1; end.visible = true; end.text = 'Поздравляем! Ваш результат ' + resultat1 + '/2'; img.visible = false; vvod.visible = false; padrees.visible = false; txtname.visible = false; proverka.visible = false; pariente.visible = false; txt1name.visible = false; proverka1.visible = false; txtname1.visible = false; trace(resultat1); } else { end.text = 'Поздравляем! Ваш результат ' + resultat1 + '/2'; vvod.visible = false; img.visible = false; end.visible = true; txtname1.visible = false; padrees.visible = false; txtname.visible = false; proverka.visible = false; pariente.visible = false; txt1name.visible = false; proverka1.visible = false; trace(resultat1); } } Плохо понимаю, как можно сделать цикл. Гуглил, но толкового не нашел. |
|
|||||
Регистрация: Dec 2014
Сообщений: 312
|
Проверить все элементы массива можно так:
for (var i:int = 0; i < s_zn.length; i++) { if (s_zn[i] == 'blabla') { resultat = resultat + 1; } } http://help.adobe.com/ru_RU/FlashPla...t/3/Array.html |
|
|||||
Регистрация: Apr 2015
Сообщений: 4
|
Не понимаю всего кода(
Почему здесь [i], а не число элементов в круглых скобках? И что за текст 'blabla'? Добавлено через 9 минут var s_zn: Array = ['padres', 'pariente', 'abuelo', 'abuela']; var resultat: Number = 0; button.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler); function fl_MouseClickHandler(event:MouseEvent):void { for (var i:int = 0; i < s_zn.length; i++) { if (txtname == s_zn[i]) { resultat ++; trace(resultat); } else { trace(resultat); } } } Т.е. однотипное действие проверки данных и Буду благодарен за помощь! Последний раз редактировалось Sparrow_Dreamer; 01.05.2015 в 17:43. |
|
|||||
Регистрация: Dec 2014
Сообщений: 312
|
Вместо txtname надо txtname.text
|
|
|||||
Регистрация: Apr 2015
Сообщений: 4
|
Да, помогло, спасибо!
Но тогда в трейсе 4 раза выводится "1". ( Еще раз тыкаю на кнопку - получается что он сравнивает значение с s_zn[0], а не с s_zn[1]. И выдает 4 раза цифру 2. Прикрепляю файл. Или еще раз нужно прописать if...? И так нужное к-во раз? |
|
|||||
Регистрация: Dec 2014
Сообщений: 312
|
Может этот код поможет понять как работают циклы.
|
|
|||||
Регистрация: Apr 2015
Сообщений: 4
|
Не понимаю, почему он трейсит мне ВСЕ, а не результат в зависимости от данных. Трейсит все возможные значения(
|
|
|||||
Регистрация: Nov 2013
Сообщений: 74
|
Потому что у вас длина массива равна 4. Trace, что находиться в цикле, выводит результат равный длине массива. Чтобы он выводил одно значение нужно сделать так:
|
Часовой пояс GMT +4, время: 15:46. |
|
« Предыдущая тема | Следующая тема » |
|
|