Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Ввод цифр в Input text field (http://www.flasher.ru/forum/showthread.php?t=92463)

MutantOS 25.02.2007 22:16

Ввод цифр в Input text field
 
Есть поле, в которое нужно вводить цифры. рядом 2 кнопки "+" и "-".
На них назначены события:
на "-":
Код:

on (press) {
        if (p > 1)) {
                p--;
        } else {
                p=1;
        }
}

на "+":
Код:

on (press) {
        p++;
}

Если не вводить цифры, то кнопки "+" и "-" работают. Если ввести число с клавиатуры и попытаться его увеличить или уменьшить - пишет NaN. Если с клавиатуры ввести тоже самое число, что было - все ок.

Просьба помочь :)

Snut 25.02.2007 22:32

Во первых Код оформи как код, а дальше я подскажу надеюсь)

etc 25.02.2007 22:34

MutantOS, приведи свой код в надлежащий вид.

MutantOS 25.02.2007 22:35

вот :rolleyes:

Snut 25.02.2007 22:39

ну так преобразуй ты ее в Number. NaN означает not a number т.к. то что вводится в строку есть стринг если я все правильно понимаю.

MutantOS 25.02.2007 22:45

на "-":
Код:

on (press) {
        if (Number(p > 1)) {
                p = (Number(p)-1);
        } else {
                p=1;
        }
}

Код:

on (press) {
        p = (Number(p)+1);
}

Сделал так. Теперь при нажатии на "+" цифра исчезает. Если на "-" -- становится равно 3.

etc 25.02.2007 22:53

Со скобками бардак.
Код:

if (Number(p) > 1) {

MutantOS 25.02.2007 23:06

Ваша правда.
Поправил:
Код:

on (press) {
        if (Number(p) > 1) {
                p = (Number(p)-1);
        } else {
                p=1;
        }
}

Не работает.

etc 25.02.2007 23:12

Выкладывай исходник.

MutantOS 25.02.2007 23:27

Вложений: 1
Вот исходник.

Snut 26.02.2007 01:37

В главном фрейме:

Код:

var p:Number = 3;
На "-"

Код:

on (release) {
        if (p > 0) {
                p =  (p)-1;
        } else {
                p = 0;
        }
}

На "+"

Код:

on (release) {
        p++;
}

И все нормально функционирует, мож я недопонимаю задачу?

Mr. Fixit 26.02.2007 01:58

а не легче все в один кадр?
Код:

var p:Number = 3;
p_str_down.onPress = function () {
        if (p == 0) {
                p = 0;
        } else {
                p -= 1;
        }
};
p_str_up.onPress = function () {
        p += 1;
};


Snut 26.02.2007 02:08

ну или так) ток имена кнопочкам придать и все ок)

udaaff 26.02.2007 02:14

а мне так больше нравиться :)
Код:

//начальное значение
x = -3;
p = x;
//
p_str_down.onRelease = function() {
        x --;
        p = x
};
//
p_str_up.onRelease = function() {
        x ++;
        p = x;
};


Mr. Fixit 26.02.2007 03:03

а не легче так:
Код:

number = 0;
up_btn.onPress = function () {
        num.text = ++number;
};
down_btn.onPress = function () {
        num.text = --number;
};


MutantOS 26.02.2007 12:05

Код:

var p_str:Number = 4;

p_str_down.onRelease = function () {
        if (p_str > 3) {
                p_str -= 1;
        } else {
                p_str = 3;
        }
};
p_str_up.onRelease = function () {
        p_str += 1;
};

Теперь при вводе с клавиатуры например числа 6 и нажатии на плюс получается 61 :(

etc 26.02.2007 12:08

Ну опять же, числа со строками складываете.
А вообще забавно видеть переменную p_str («_str» — String) с объявленным типом Number. То, что у неё задан тип Number, вовсе не значит, что он будет таковым, чтобы туда не присваивали.

Mr. Fixit 26.02.2007 12:17

2MutantOS: а ты что хотел?
Код:

var p_str:Number = 4;
p_str_down.onRelease = function () {
        if (p_str>3) {
                p_str -= 1;
        } else {
                p_str = 3;
        }
        str.text = p_str;
};
p_str_up.onRelease = function () {
        p_str += 1;
        str.text = p_str;
};


MutantOS 26.02.2007 12:24

2Mr. Fixit:
Хотелось бы, чтобы при наборе скажем 20 и нажатии потом на + или - цифра увеличивалсь или уменьшалась :)

MutantOS 26.02.2007 12:50

2__etc:
изменил переменную на p_p, не помогло.

etc 26.02.2007 12:55

И не поможет. Название переменной просто не отражает сути, оно никак не влияет на работоспособность.
Может, стоит все-таки понять тот код, который тебе пишут?

MutantOS 26.02.2007 13:32

2__etc:
Вы говорите о складывании строки с числом? Моих знаний пока недостаточно, чтобы избежать этой проблемы. Поэтому я и прошу помощи. Весь код, который мне пишут я анализирую и пытаюсь применить. Ответа, который бы у меня заработал - пока нет.

Пока есть строка, в которую добавляестя число.

Вопрос: если в свойствах поля выбрать Embed и присвоить Numerals - это не будет означать, что переменная в этом поле - цифра? или это только ограничивает ввод?

Mr. Fixit 26.02.2007 14:16

Код:

down.onRelease = function () {
        --str.text;
};
up.onRelease = function () {
        ++str.text;
};


udaaff 26.02.2007 14:22

2 Mr. Fixit
мне кажется, что лучше все таки оперировать с числами, а результат отображать в текстфилде

Mr. Fixit 26.02.2007 14:38

2udaaff:
я написал код, который соответствует запросам MutantOS.

MutantOS 26.02.2007 14:57

2Mr. Fixit:
Говорит:
There is no property with the name 'text'. ++p.text;
There is no property with the name 'text'. --p.text;

2Mr. Fixit, 2udaaff:

Далее выбранное число будет использоваться как число.
Можно ли сделать именно так, как было написано udaaff?
Отображаться дожно в текстовом поле число, при этом переменная за него отвечающая была числом :)

Mr. Fixit 26.02.2007 14:59

ты введи свой "р" в инстанс текстфилда, а не в "var"

MutantOS 26.02.2007 15:11

Ввел в интстанс, убрал из вар - выдает ту же ошибку.

Mr. Fixit 26.02.2007 15:34

Вложений: 1
у тебя какой Flash?
вот сделал, я доволен...
Код:

var num:Number = 0;
num_txt.text = num;
up.onPress = function () {
        num = Number (num_txt.text);
        num += 1;
        num_txt.text = num;
};
down.onPress = function () {
        num = Number (num_txt.text);
        num -= 1;
        num_txt.text = num;
};


MutantOS 26.02.2007 16:02

2Mr. Fixit:
Macromedia Flash Professional 8.

Щя попробую, жаль без исходника :(

MutantOS 26.02.2007 16:19

2Mr. Fixit:
Не получается, можно исходник? :)

Mr. Fixit 26.02.2007 16:22

Вложений: 1
ну.. как?

etc 26.02.2007 16:47

Цитата:

Сообщение от MutantOS
Вопрос: если в свойствах поля выбрать Embed и присвоить Numerals - это не будет означать, что переменная в этом поле - цифра? или это только ограничивает ввод?

Нет, за ограничение ввода отвечает свойство restrict.

MutantOS 26.02.2007 17:17

2Mr. Fixit:
Спасибо большое. Ошибка была в неверном расположении строк. Вроде все правильно, а не работало.

2All:
Спасибо за помощь.

Задача решена :)

udaaff 27.02.2007 00:44

сколько программистов, столько и решений одной и той же задачи)

Mr. Fixit 27.02.2007 01:02

я воздержусь


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

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