Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Text Input в Числовое значение (http://www.flasher.ru/forum/showthread.php?t=206018)

arhitec 07.01.2014 18:40

Text Input в Числовое значение
 
Всем привет!
Я начинающий в Action Script, поэтому вопрос банальный, ответ на который к сожалению найти не смог.
И так, есть два текстовых поля типа Input в сцене. В каждое из них нужно ввести цифру, после нажатия кнопки получить результат сложения этих двух чисел.
Как оказалось введенные цифры являются стрингом а не цифрой, а значит для начала нужно перевести стринг в цифру, а уж затем полученный результат складывать.
Как перевести текст из Text Input в число?
Попытки использовать Number () или FloatInt() ни к чему не привели :(
Помогите, пожалуйста.

Isfet 07.01.2014 18:42

любое из приведенных ниже
Код AS3:

int(textfield.text);
Number(textfield.text);
uint(textfield.text);


arhitec 07.01.2014 19:07

Верно ли я понимаю, что textfield - это и есть переменная, значение которой нужно конвертировать?
Наверное правильнее было изложить свое виденье в коде:
Первое поле Input имеет имя: number1;
Первое поле Input имеет имя: number2;
Код AS3:

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
Можно еще так перевести в целочисленное значение
Код AS3:

var sum:int = parseInt(inputText1.text) + parseInt(inputText2.text);

и в число с плавающей точкой
Код AS3:

var sum:Number = parseFloat(inputText1.text) + parseFloat(inputText2.text);


Isfet 07.01.2014 19:44

выложите код, тогда скаже что не так.

что выдает если добавить такие строки??
Код AS3:

trace(number1);
trace(number1.text);


arhitec 07.01.2014 19:55

Что-то не работает :( Видимо косячный у меня мозг :)

Код AS3:

trace(number1);

выдает: [object TextField]

Я выкладываю исходный файл. Навертел конечно, но что поделаешь - учусь :)
Ссылка на яндекс-диске, сюда не смог залить файл.
http://********/d/pz1mru2OFbSBH

Akopalipsis 07.01.2014 20:16

Цитата:

выдает: [object TextField]
Это значит что экземпляр класса TextField доступен по ссылке number1. Единственное но может быть в том, что trace(number1); нужно писать там, где происходит конвертация типов, то есть там, где вы хотите из текста сделать цифры. если оно там доступно, то проверьте свойство text
Код AS3:

trace(number1.text);

Если покажет текст, то проблем не должно быть, а если нет, то Вы просто не задали значение.

Isfet 07.01.2014 20:18

залейте сюда, для этого - расширенный режим -> управление вложениями

arhitec 07.01.2014 20:23

Вложений: 1
Удалось залить в архиве, FLA-файл не заливается :(
У меня файл разбит на два кадра. Я предполагаю, что из-за этого и проблемы.
Вложение 30333

TWETTI 07.01.2014 20:33

Уберите первые две строки:
Код AS3:

var number1: String = "1";
var number2: String = "2";

number1 и number2 это имена текстовых полей.
В функции replay можете получить сумму:
Код AS3:

var sum:int = parseInt(number1.text) + parseInt(number2.text);
trace(sum);



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

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