#flash #actionscript-3 #actionscript #flash-cs4
#flash #actionscript-3 #actionscript #flash-cs4
Вопрос:
Как я могу получить предыдущий фокус / иметь возможность сравнивать строки?
Ответ №1:
Событие фокусировки.Событие FOCUS_IN содержит также ссылку на интерактивный объект, теряющий фокус (свойство relatedObject).
В вашем коде вы могли бы изменить:
textbox[i].addEventListener(KeyboardEvent.KEY_UP, k);
textbox[i].tabIndex= i;
Для:
textbox[i].addEventListener(KeyboardEvent.KEY_UP, k);
textbox[i].addEventListener(FocusEvent.FOCUS_IN, handleFocusIn);
textbox[i].tabIndex= i;
function handleFocusIn(anEvent: FocusEvent): void
{
if (anEvent.relatedObject is TextField)
{
var previousBox: TextField = anEvent.relatedObject as TextField;
var currentBox: TextField = anEvent.target as TextField;
// etc.
}
}
Как и в предыдущем ответе, попробуйте выяснить, как работает цикл. Также вы можете ссылаться на текстовое поле с помощью []:
// to reference names_mc.box19_txt using an index
var index: int = 19;
var textbox: TextField = names_mc['box' index '_txt'];
Ответ №2:
Вам нужно прослушать FocusEvent.FOCUS_OUT
событие; вы можете узнать больше в документации.
Но если серьезно, сначала вы должны изучить базовые конструкции повторения, такие как цикл. Ни у кого никогда не должно быть двух массивов, которые выглядят так 😉
Комментарии:
1. Сейчас я работаю над циклами. Спасибо! вы случайно не знаете, как я мог бы проверить предыдущий фокус?