![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Oct 2006
Адрес: Волгодонск
Сообщений: 182
|
Еще раз здрасти.
Идея такая - когда поле в фокусе, подписываем его на события клавиатуры, потом при нажатии ентер (когда поле в фокусе) генерируем событие для onPress для клипа кнопки. Т.е. по-русски - на клип-кнопку можно нажать двумя способами - 1) собственно мышкой и 2) при выделенном Текстовом поле - клавишей Ентер //cоздаем текстовое поле для ввода в него маркировки
_root.load_window.poisk_fon.createTextField("pole_input",_root.load_window.poisk_fon.getNextHighestDepth(),230,5,130,24);
_root.load_window.poisk_fon.pole_input.border = true;
_root.load_window.poisk_fon.pole_input.type = "input";
_root.load_window.poisk_fon.pole_input.onChanged=function(){
trace("Не печатается");
_root.load_window.poisk_fon.pole_input.text=_root.load_window.poisk_fon.pole_input.text.toUpperCase();
}
//добавляем кнопку Искать
_root.load_window.poisk_fon.attachMovie("naiti_btn","naiti_btn",_root.load_window.poisk_fon.getNextHighestDepth(),{_x:370,_y:5});
//по событию Сфокусирования на pole_input делаем pole_input листенером(слушателем) объекта Key
_root.load_window.poisk_fon.pole_input.onSetFocus=function(){
//делаем naiti_btn кнопку листенером объекта Key
Key.addListener(_root.load_window.poisk_fon.pole_input);
}
//по событию РАЗфокусирования на pole_input удаляем pole_input из списка листенеров(слушателей) объекта Key
_root.load_window.poisk_fon.pole_input.onKillFocus=function(){
//удаляем naiti_btn кнопку из списка листенеров объекта Key
Key.removeListener(_root.load_window.poisk_fon.pole_input);
}
AsBroadcaster.initialize (_root.load_window.poisk_fon.pole_input);//почему-то если инициализировать как генератор событий текстовое поле _root.load_window.poisk_fon.pole_input, то на это поле не работает событие onChanged
_root.load_window.poisk_fon.pole_input.addListener(_root.load_window.poisk_fon.naiti_btn);
//По событию Key.ENTER генерируем событие onPress для кнопки naiti_btn
_root.load_window.poisk_fon.pole_input.onKeyDown = function(){
if (Key.isDown(Key.ENTER)) {
_root.load_window.poisk_fon.pole_input.broadcastMessage("onPress");
}
}
_root.load_window.poisk_fon.naiti_btn.onPress=function(){
trace("onPressed");
}
Почему при инициализации как генератора событий текстового поля (строка AsBroadcaster.initialize (_root.load_window.poisk_fon.pole_input) - на этом текстовом поле перестает работать onChanged?Если же сделать генератором события какой-нить другой объект, то все Ок. |
|
|||||
|
Регистрация: Apr 2007
Сообщений: 1,369
|
А чем Вам такой вариант не угодил?
На сцене Инпутфилд tt и мувик mc. mc.onPress=callMc;
tt.onSetFocus = setFocus;
function setFocus() {setKey()};
function setKey(){
this.onKeyDown = keyPressed;
Key.addListener(this);}
function keyPressed() {
switch (Key.getCode()) {
case Key.ENTER:
Selection.setFocus(null);
callMc();
break;
default:
trace('another function');
}
}
function callMc(){trace('MC pressed')}
__________________
john |
|
|||||
|
Регистрация: Oct 2006
Адрес: Волгодонск
Сообщений: 182
|
Ну, на самом деле, вариантов решения как это сделать очень много. Вопрос же в другом, почему перестает срабатывать onCanged? Где баг - в голове или во Флеше...
|
![]() |
![]() |
Часовой пояс GMT +4, время: 12:56. |
|
|
« Предыдущая тема | Следующая тема » |
|
|