PDA

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


wizzard555
04.05.2008, 12:45
Надо чтобы 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, отредактируйте свой пост и оформите код тегами .