PDA

Просмотр полной версии : onChanged


Charly84
18.08.2006, 19:17
Здравствуйте.
Есть небольшая проблека - помогите решить ;)

Хочу, чтобы при введении в поле Input Text любой переменной, в динамическом поле она сразу умножалась на 5. Но не понажатию кнопки, а мгновенно...

Динамическое поле имеет имя pre1.
Динамическое - res.

Я так понял, надо юзать onChanged.
Вот код


pre1.onChanged = function(pre1:TextField) {
res = 1*pre1*5;
};

Где ошибка? Почему не работает? ;)

DarkLight
18.08.2006, 20:09
pre1.onChanged = function(pre1:TextField) {
res = parseFloat(pre1.text)*5;
};

Charly84
18.08.2006, 20:44
Не работает :(Я же правильно делаю, что этот код вешаю на фрейм? ;)

DarkLight
18.08.2006, 20:51
1. pre1.text - надо обращаться не к текстовому полю, а к тексту в нем.
2. parseFloat() - текст имеет тип String - а для вычислений нужен Number - преобразуем.

Если число нужно целое - можно пользоваться parseInt(), и указывать вторым параметром 10, на случай если юзер введет случайно 0 в начале и флеш решит, что число восьмеричное.

Charly84
18.08.2006, 21:03
я перевожу в число просто.. Умножаю на 1...
res = 1*(pre1.text)*5;

Даже не писал pre1.text, а просто pre1 :)


Но вот почему не работает сама функция OnChanged?

DarkLight
18.08.2006, 21:07
Инстанс нейм задан? Поле существует, когда задается функция? Путь правильный?
Тогда все будет работать.

Charly84
18.08.2006, 21:09
Да я много испльзовал полей ввода...
и ниразу не вводил инстанс нейм.. всегда только вар....

DarkLight
18.08.2006, 21:10
Вар здесь не подходит, т к у нее нет onChanged.

Charly84
18.08.2006, 21:25
Спасибо.. РАботает :)