Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.05.2014, 16:47
Саят вне форума Посмотреть профиль Отправить личное сообщение для Саят Найти все сообщения от Саят
  № 1  
Ответить с цитированием
Саят

Регистрация: Apr 2014
Сообщений: 10
По умолчанию Не работает проверка условий и присваивает сразу значение проверки условий

Ребята помогите. Пишу две аналогичные функции одна функция работает исправно выполняет все условия, другая тупит. В инпут тексте вводишь любое значение выдает выдает сразу исполнение условия без проверки условий введенных данных.
Вот код function Chek1() работет как положено, а function Chek2() тупит.


Код AS3:
function Chek1() 
 {
if ((txt1.text=="=B3-3")||(txt1.text=="=b3-3") ||(txt1.text=="=D3+E3+F3+G3")||(txt1.text=="=d3+e3+f3+g3"))
		{
		txt1.text="20";k=k+1; K.text=String(k);
		} 
			else 
			{
			if (txt1.text=="20") 
				{
				k=k+0; K.text=String(k);txt1.type = TextFieldType.DYNAMIC;
				}
			else 
				{
				txt1.type = TextFieldType.DYNAMIC;k=k+0; K.text=String(k);
				};
			};
};
 
 
 
function Chek2() 
{
if ((txt2.text=="=(d3+e3+f3)/c3*100")||(txt2.text=="=(D3+E3+F3)3*100")||("=(D3+E3+F3)*100/C3")||("=(d3+e3+f3)*100/c3"))
		{
		txt2.text="95%";k=k+1; K.text=String(k);
		} 
			else 
			{
			if (txt2.text=="95") 
				{
				k=k+0; K.text=String(k);txt2.type = TextFieldType.DYNAMIC;
				}
			else
				{
				txt2.type = TextFieldType.DYNAMIC;k=k+0; K.text=String(k);
				};
			};
};


Последний раз редактировалось alexcon314; 05.05.2014 в 17:01.
Старый 05.05.2014, 17:01
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 2  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Используйте теги форматирования кода.
Код AS3:
if ((txt2.text=="=(d3+e3+f3)/c3*100")||(txt2.text=="=(D3+E3+F3)3*100")||(txt2.text=="=(D3+E3+F3)*100/C3")||(txt2.text=="=(d3+e3+f3)*100/c3"))
забыли написать с чем сравнивается в третьем и четвертом условии.

Старый 05.05.2014, 17:05
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 3  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
забыли написать с чем сравнивается в третьем и четвертом условии.
Форматирование кода - это кнопка AS3 в редакторе сообщений, выделить код и нажать на эту кнопку.

Старый 05.05.2014, 17:10
Саят вне форума Посмотреть профиль Отправить личное сообщение для Саят Найти все сообщения от Саят
  № 4  
Ответить с цитированием
Саят

Регистрация: Apr 2014
Сообщений: 10
блиииин )))) стыд, спасибо, к концу рабочего дня запарился наверное. Признателен, спасибо!

Старый 05.05.2014, 18:36
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 5  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
А что если у вас пробел закрадется куда-то? Вся система сломается сразу.
Там до проверки хотя бы регуляркой пробелы сносить нужно

Старый 06.05.2014, 08:00
Саят вне форума Посмотреть профиль Отправить личное сообщение для Саят Найти все сообщения от Саят
  № 6  
Ответить с цитированием
Саят

Регистрация: Apr 2014
Сообщений: 10
там дело не в пробелах, а что за регулярки вы имеете ввиду? я недавно с флеш работаю, где то 2 недели только.

Старый 06.05.2014, 09:36
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 7  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Ну как не в пробелах? Вот есть там проверка такой строки "=(D3+E3+F3)/С3*100", а я возьму и введу ее так:
"= (D3 + E3 + F3) / С3 * 100"
Пример вроде тот же, а условие не сработает
Надо проверять не txt2.text, а сначала присвоить его какой-то временной переменной (для удобства). Ее обработать регулярным выражением, и потом уже проверять
Код AS3:
var tempText:String = txt2.text.replace(/\s*/g, ""); // снесет все пробелы в строке
if(tempText == ... тут уже проверяем

Старый 06.05.2014, 09:42
Саят вне форума Посмотреть профиль Отправить личное сообщение для Саят Найти все сообщения от Саят
  № 8  
Ответить с цитированием
Саят

Регистрация: Apr 2014
Сообщений: 10
Спасибо, просто я не учитывал что пользователь может ввести пробел. Я делаю имитацию ячейки ексель. Пользователь должен ввести правильно формулу расчета. Если он правильно вводит формулу, то зарабатывает баллы.

Добавлено через 9 минут
Можете подсказать, что означает каждое значение в методе text.replace, что означают (/\s*/g, "") и особенно интересует буква g.

Старый 06.05.2014, 14:22
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 9  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
caseyryan
Код AS3:
split(" ").join("");
Так же поможет restrict
__________________
Марк Tween

Старый 06.05.2014, 16:59
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 10  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Так же поможет restrict
Не, не поможет
Цитата:
caseyryan
Код AS3:
split(" ").join("");
А если там по 2 пробела будет? Это кривой метод. Регулярное выражение намного лучше. Плюс оно не будет создавать массив, а потом опять лепить из него строку.
Цитата:
Можете подсказать, что означает каждое значение в методе text.replace, что означают (/\s*/g, "") и особенно интересует буква g.
Оно немного кривое) замените * на + чтобы получилось так: /\s+/g, потому что нет смысла искать пустые строки
первый и последний слэши - это границы регулярного выражения. \s+ значит, что в строке будет искаться любое количество пробелов больше нуля, а g значит, что эта операция будет повторяться снова и снова, пока все пробелы не будут удалены

Создать новую тему Ответ Часовой пояс GMT +4, время: 15:06.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 15:06.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.