TextFieldをsetSelectionで全選択

テキストフィールドを全選択する場合TextFieldのsetSelectionメソッドで行えるということですが、
実際にマウスでフォーカスを当てた場合、全選択は行われません.。

少し気持ち悪い書き方ですが、タイミングをずらせば行けそうなので
setTimeoutで遅延させるようにしました。

package {
	import flash.display.*
	import flash.text.*	
	import flash.events.*	
	import flash.utils.setTimeout;
	public class Text extends MovieClip {
 
		public function Text() {
			var fld:TextField = new TextField();
			fld.type = TextFieldType.INPUT;
			fld.x = 20;
			fld.y = 80;
			fld.border = true;
			fld.width = 300;
			fld.height = 25;
			fld.text = "全選択したいテキストフィールド";
			addChild(fld);
			fld.addEventListener(FocusEvent.FOCUS_IN , function() { setTimeout(selectTextArea , 10 , fld) } );
		}
 
		// 全選択
		private function selectTextArea( _tfd:TextField ):void{
			_tfd.setSelection(0,  _tfd.text.length);
		}
 
	}
}

This movie requires Flash Player 9

これで無事作動しております。

 

Filed under AS3, 問題解決メモ · Tagged with

Speak Your Mind

Tell us what you're thinking...
and oh, if you want a pic to show with your comment, go get a gravatar!

You must be logged in to post a comment.