Просмотр полной версии : Text Input в Числовое значение
Всем привет!
Я начинающий в Action Script, поэтому вопрос банальный, ответ на который к сожалению найти не смог.
И так, есть два текстовых поля типа Input в сцене. В каждое из них нужно ввести цифру, после нажатия кнопки получить результат сложения этих двух чисел.
Как оказалось введенные цифры являются стрингом а не цифрой, а значит для начала нужно перевести стринг в цифру, а уж затем полученный результат складывать.
Как перевести текст из Text Input в число?
Попытки использовать Number () или FloatInt() ни к чему не привели :(
Помогите, пожалуйста.
любое из приведенных ниже
int(textfield.text);
Number(textfield.text);
uint(textfield.text);
Верно ли я понимаю, что textfield - это и есть переменная, значение которой нужно конвертировать?
Наверное правильнее было изложить свое виденье в коде:
Первое поле Input имеет имя: number1;
Первое поле Input имеет имя: number2;
n1 = Number (number1.text); // Присваиваю переменной n1 полученное значение после конвертации из текста в число переменной number1
n2 = Number (number2.text); // Присваиваю переменной n2 полученное значение после конвертации из текста в число переменной number2
summa = n1 + n2;
trace (summa);
Увы, этот код не работает, а значит я не верно понимаю предложенный вариант...
Поиск пока ни к чему не приводит :(
caseyryan
07.01.2014, 19:19
Нет, не верно. Конвертируется то, что содержится у объекта TextField в свойстве text
Можно еще так перевести в целочисленное значение
var sum:int = parseInt(inputText1.text) + parseInt(inputText2.text);
и в число с плавающей точкой
var sum:Number = parseFloat(inputText1.text) + parseFloat(inputText2.text);
выложите код, тогда скаже что не так.
что выдает если добавить такие строки??
trace(number1);
trace(number1.text);
Что-то не работает :( Видимо косячный у меня мозг :)
trace(number1);
выдает: [object TextField]
Я выкладываю исходный файл. Навертел конечно, но что поделаешь - учусь :)
Ссылка на яндекс-диске, сюда не смог залить файл.
http://********/d/pz1mru2OFbSBH
Akopalipsis
07.01.2014, 20:16
выдает: [object TextField]
Это значит что экземпляр класса TextField доступен по ссылке number1. Единственное но может быть в том, что trace(number1); нужно писать там, где происходит конвертация типов, то есть там, где вы хотите из текста сделать цифры. если оно там доступно, то проверьте свойство text
trace(number1.text);
Если покажет текст, то проблем не должно быть, а если нет, то Вы просто не задали значение.
залейте сюда, для этого - расширенный режим -> управление вложениями
Удалось залить в архиве, FLA-файл не заливается :(
У меня файл разбит на два кадра. Я предполагаю, что из-за этого и проблемы.
30333
Уберите первые две строки:
var number1: String = "1";
var number2: String = "2";
number1 и number2 это имена текстовых полей.
В функции replay можете получить сумму:
var sum:int = parseInt(number1.text) + parseInt(number2.text);
trace(sum);
Все, трейс выдал нужный результат.
Я вставил код в функци. Replay и трейс стал показывать нужную сумму.
А вот как теперь вывести полученное значение во втором кадре в динамический текст?
Не работает потому, что во втором кадре у вас ключевые кадры в которых другие текстовые поля. Исправил вам. Смотрите прикрепленный файл.
Верно ли я понял, что моя ошибка была в том, что я формы на разных кадрах сделал в одном слое, а надо было в разных?
Добавлено через 2 минуты
Верно ли я понимаю, что ошибка была в том, что я формы на разных кадрах сделала в одном слое? А надо было в разные слои?
Еще вопрос.
var sum:int = parseInt(number1.text) + parseInt(number2.text);
trace(sum);
summa.text = sum.toString();
stop();
summa.text = sum.toString(); - что здесь происходит? Перевод числовго значения переменной в текстовое?
А выводит информацию именно динамическое поле, верно?
У вас в первом и во втором кадре разные текстовые поля. Во втором кадре вы пытаетесь сложить числа полученные из текстовых полей второго кадра, но вводили вы числа в текстовые поля первого кадра. Чтобы исправить это я сделал вместо KeyFrame просто Frame. Теперь текстовые поля в 1 и во втормо кадре одинаковые.
Да, перевод числа в текст и вывод текста в динамическое текстовое поле.
Спасибо огромное, вроде начало укладываться (ЧтоТо) :)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.