Форум 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)
-   -   2 поля ввода на разных обработчиках. Реагирует только одно. Почему? (http://www.flasher.ru/forum/showthread.php?t=111629)

wizzard555 04.05.2008 12:45

2 поля ввода на разных обработчиках. Реагирует только одно. Почему?
 
Надо чтобы 2 текстовых поля реагировали по разному на нажатие одних и тех же клавиш.
Вот код:

lime_on_scrap.onKeyDown = function(){
key = Key.getCode();
if (key == 84 && this._name == "lime_on_scrap") {
val = Number(lime_on_scrap.text);
val += 50;
lime_on_scrap.text = val;
trace(this._name);
}
return false;
}

dolomite_1_on_scrap.onKeyDown = function(){
key = Key.getCode();
if (key == 84 && this._name == "dolomite_1_on_scrap") {
val = Number(dolomite_1_on_scrap.text);
val += 50;
dolomite_1_on_scrap.text = val;
trace(this._name);
}
return false;
}

Key.addListener(lime_on_scrap);
Key.addListener(dolomite_1_on_scrap);

Когда фокус находится на поле dolomite_1_on_scrap при нажатии на клавишу t реагирует поле lime_on_scrap! То есть когда фокус ввода на поле dolomite_1_on_scrap оно должно увеличиваться, а увеличивается поле lime_on_scrap. Почему?

Molecula 04.05.2008 12:57

У Вас проблема в том, что нажатие клавиш слушают оба поля, а нужно что бы слушало одно, конкретное.
Может есть другой выход, но идея такова:
Код:

lime_on_scrap.onKeyDown = function() {
        key = Key.getCode();
        if (key == 84 && this._name == "lime_on_scrap") {
                val = Number(lime_on_scrap.text);
                val += 50;
                lime_on_scrap.text = val;
                trace(this._name);
        }
        return false;
};

lime_on_scrap.onSetFocus = function(oldFocus:Object) {
        Key.addListener(lime_on_scrap);
};
lime_on_scrap.onKillFocus = function(newFocus:Object) {
        Key.removeListener(lime_on_scrap);
};

dolomite_1_on_scrap.onKeyDown = function() {
        key = Key.getCode();
        if (key == 84 && this._name == "dolomite_1_on_scrap") {
                val = Number(dolomite_1_on_scrap.text);
                val += 50;
                dolomite_1_on_scrap.text = val;
                trace(this._name);
        }
        return false;
};

dolomite_1_on_scrap.onSetFocus = function(oldFocus:Object) {
        Key.addListener(dolomite_1_on_scrap);
};
dolomite_1_on_scrap.onKillFocus = function(newFocus:Object) {
        Key.removeListener(dolomite_1_on_scrap);
};

Проверил, всё работает.

etc 04.05.2008 13:14

wizzard555, отредактируйте свой пост и оформите код тегами [code][/code].


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

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