AS3 Tabbing between TLFTextFields nested in MovieClips won't focus on textfield contents
===

I'm trying to add tab functionality to a form movieclip. The form has tlf (input type) textfields, each an instance of a movieclip with 2 layers (one for a tlf textfield, one for a background mc). The mcs are called "InputField".

The problem occurs when try to tab between fields vs clicking on the field. Clicking on the input field triggers the desired result. The text clears, the field highlights and any text typed by a user is shown. Tabbing to the field, however, the text clears, the field highlights but the text type by the user is ignored.

Basically, the focus seems to be on the object, not the textfield. When tracing out the "trace(event.target)" I get the following:

When tabbing I get "[object InputField]"
When clicking I get clearTxt "[object Sprite]"

Here is my code:

        public override function set enabled(active:Boolean):void {
			if(active == false){
				removeEventListener(MouseEvent.MOUSE_OVER, ov);
				removeEventListener(MouseEvent.MOUSE_OUT, out);
				removeEventListener(FocusEvent.FOCUS_IN, clearTxt);
			}else{
				addEventListener(FocusEvent.FOCUS_IN, clearTxt);
				addEventListener(MouseEvent.MOUSE_OVER, ov);
				addEventListener(MouseEvent.MOUSE_OUT, out);
			}
			is_active = active;
		}
		
		public override function get enabled():Boolean {
			return is_active;
		}
		
		private function ov(event:MouseEvent):void{
			bg.inner_border.alpha = .3;
		}
		
		private function out(event:MouseEvent):void{
			bg.inner_border.alpha = 1;
		}
		
		private function clearTxt(event:Event):void {
			enabled = false;
			current_txt = txt.text;
			txt.replaceText(0,txt.length,'');
			txt.setSelection(0,0);
			addEventListener(FocusEvent.FOCUS_OUT, resetTxt);
			bg.bg_ov.alpha = 1;
			bg.inner_border.alpha = 1;
		}
		
		private function resetTxt(event:Event):void {
			trace('resetTxt');
			if(!txt.text)txt.replaceText(0,txt.length, current_txt);
			txt.setSelection(0,0);
			removeEventListener(FocusEvent.FOCUS_OUT, resetTxt);
			enabled = true;
			bg.bg_ov.alpha = 0;
		}