![]() |
|
||||||||||
|
|||||
|
Регистрация: May 2006
Сообщений: 47
|
Подскажите, какой метод мне нужно переопределить для того, чтобы изменить поведение курсора в компоненте TextInput? Мне нужно, чтобы нажатие стрелочки вверх не переводило курсор в начало текстового поля.
Я пробовал override protected function keyDownHandler, но, оказалось, что этот метод только добавляет ивент ENTER и все. P. S. Я создал подобную тему здесь но её сразу закрыли. Документацию по модификации компонент я читал, ответа на мой вопрос там нет. Мне просто нужен совет опытного человека, который переопределял стандартные ивенты компонент. |
|
|||||
|
Либо я не понял вопроса, но зачем переопределять метод?
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
private var prevValue : String = 'prev console message';
public function upKeyHandler ( e:KeyboardEvent ) : void
{
if( e.keyCode == Keyboard.UP )
{
con.text = prevValue;
con.setSelection( con.text.length, con.text.length);
}
}
]]>
</mx:Script>
<mx:TextInput id="con" x="10" y="50" width="200" keyDown="upKeyHandler(event)" />
</mx:Application>
__________________
Челябинские флешеры настолько суровы, что пишут код во Flash IDE |
|
|||||
|
Регистрация: May 2006
Сообщений: 47
|
Ура. Как все просто. Спасибо =)
|
|
|||||
|
Регистрация: May 2006
Сообщений: 47
|
vooparker, твой способ отлично работает, спасибо.
Но ты не мог бы объяснить, почему, если я создаю TextInput программно, то этот способ не работает? Вот код. <?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="createTextField()">
<mx:Script>
<![CDATA[
import mx.controls.TextInput;
private var prevValue : String = 'prev console message';
public function upKeyHandler ( e:KeyboardEvent ) : void
{
if( e.keyCode == Keyboard.UP )
{
e.target.text = prevValue;
e.target.setSelection(e.target.text.length, e.target.text.length);
}
}
public function createTextField():void
{
var myTxt:TextInput = new TextInput;
myTxt.addEventListener(KeyboardEvent.KEY_DOWN, upKeyHandler);
application.addChild(myTxt);
}
]]>
</mx:Script>
</mx:Application>
|
|
|||||
|
Регистрация: May 2006
Сообщений: 47
|
В этом случае, почему-то не срабатывает e.target.setSelection, а сработает только id.setSelection (а если событие KEY_UP, то e.target.setSelection работает)
ЗЫ. все, разобрался. Работает, если вместо target юзать свойство currentTarget. Разницу между ними пока не совсем понимаю Последний раз редактировалось Powerhead; 08.05.2007 в 15:29. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Используй currentTarget.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 01:48. |
|
|
« Предыдущая тема | Следующая тема » |
|
|