вторник, сентября 11, 2007

Как сделать, чтобы в текстовом поле по клавише TAB вводился TAB а не сменялся фокус

Пример, как сделать, чтобы в текстовом поле по клавише TAB вводился TAB а не сменялся фокус.

<?xml version="1.0" encoding="utf-8"?>
<!-- TextAreaTabAllowed -->
<mx:TextArea xmlns:mx="http://www.adobe.com/2006/mxml" >
<mx:Script>
<![CDATA[
private var _allowTabKey:Boolean = false;
[Bindable]

public function set allowTabKey ( value:Boolean ) : void
{
if( value )
{
addEventListener( FocusEvent.KEY_FOCUS_CHANGE,
catchTabKey);
}
else
{
removeEventListener( FocusEvent.KEY_FOCUS_CHANGE, catchTabKey);
}
_allowTabKey = value;
}

public function get allowTabKey ( ) : Boolean
{
return _allowTabKey;
}

private function catchTabKey ( e:FocusEvent = null ) :
void
{
if( e )
{
var before:String = this.text.substring ( 0,
this.selectionBeginIndex );
var after:String =
this.text.substring( this.selectionEndIndex,
this.text.length );
var newCaretPos:int = this.selectionBeginIndex +
1;
this.text = before + "\t" + after;
this.setSelection( newCaretPos, newCaretPos );
e.preventDefault( );
this.setFocus ( );
}
}

]]>

</mx:Script>
</mx:TextArea>

Комментариев нет: