PDA

Просмотр полной версии : переключение по динамическим окнам


Mylene
26.08.2002, 17:00
ПРИВЕТ, кто знает, как можно с помощью нажатия кнопки переключаться по текстовым полям? Т.е. курсор бы переключался из одного динамич поля в другое!
:(

Nox Noctis
26.08.2002, 17:24
на чем пишем ? :) МХ или пятерка ?

Selection.getFocus + Selection.setFocus - все что нужно в принципе

в пятерке - делаешь массив всех переменных текстовых полей в нужном порядке...
типа
tabOrder = ["txtVar1", "txtVar2", "txtVar3"];
а потом вешаешь следилку нажатия кнопки и переключаешь поля с помощью Selection.setFocus

а в МХ есть стандартные фишки:
tabIndex и tabEnabled, которые управляют переключением табом

Mylene
26.08.2002, 17:39
СПАСИБО!
Я пишу в MX!
:D :D

Mylene
26.08.2002, 21:28
Как сделать следилку нажатия кнопки???? И у меня не получается переключаться по окнам, курсор появляется только в одном окне. :(

Mylene
26.08.2002, 21:29
К сожалению мне не надо переключаться Tab, надо только кнопками!

Nox Noctis
26.08.2002, 21:35
так... я что-то не понимаю тогда... о каких окнах идет речь ? нужно переключаться между разными флэшками на страничке ?

Mylene
27.08.2002, 03:17
да нет же, ты все правильно понял, нужно переключаться на одной страничке, между текстовыми полями с помощью кнопок! Хотя бы с TAB получилось, а не получается! Nox Noctis, помоги пожалуйста!

:cool:
вот файлик легкий

Nox Noctis
27.08.2002, 04:25
ну, раз ты в МХ пишешь... ;)

// массив с именами текст.полей в нужном порядке
tabOrder = ["a", "c", "b", "d"];
// создаем поля - это просто для примера, чтоб только кодом обойтись :)
for (i in tabOrder) {
this.createTextField(tabOrder[i], i, 0, 0, 0, 0);
tmp = this[tabOrder[i]];
tmp.autoSize=true, tmp.border=true;
tmp.type = "input";
tmp.text = "TextField :: "+i;
tmp._y += tmp._height*i*2;
}
// теперь собсно переключение:
active = -1; // показывает поле с каким номером сейчас активно
this.onKeyDown = function() {
// переключаем стрелкой вверх например
if (Key.isDown(Key.UP)) {
if (active>=0 && active<tabOrder.length-1) {
active++;
} else {
active = 0;
}
// устанавливаем фокус
Selection.setFocus(tabOrder[active]);
Selection.setSelection(0, 0);
}
};
Key.addListener(this);

Mylene
27.08.2002, 15:52
НУ, СПАСИБО, за заботу!

Nox Noctis
27.08.2002, 16:38
...все понятно ? :))

Mylene
28.08.2002, 21:30
Cпасибо за код!У меня получилось!!!
Только это мне не понятно - Key.addListener(this);
И еще, вот кнопка Key. только для ввода с клавиатуры, а можно ли заменить эту кнопку на свою, нарисованную?
:D

Nox Noctis
28.08.2002, 21:54
все можно :)

'Key.addListener(this);' - это такая новая фича в МХ :)
объект, который передается в качестве параметра (в данном случае 'this') получает сообщения о событиях объекта Key (клавиатуры то есть)... если этого не сделать - не создать лисенер - то даже определив функцию onKeyDown желаемого результат не получится :)

нужно вместо this.onKeyDown = function() { бла-бла-бла... }
написать
on (press) {
if (active>=0 && active<tabOrder.length-1) {
active++;
} else {
active = 0;
}
Selection.setFocus(tabOrder[active]);
Selection.setSelection(0, 0);
}
на кнопке

и будет работать по нажатию :)

Mylene
02.09.2002, 12:56
Спасибо тебе, NOX, за помощь!
У меня все получилось!
:D