PDA

View Full Version : [AS3] detect when an TextArea content edit end


vlad2005
12-05-2008, 09:16 PM
What technique can be implement to dispatch an event when edit content for an TextArea is finished.

GFX Complex
12-05-2008, 09:44 PM
this will make a text field that if you edit the text field and if there is no editing for 2 seconds a event will trigger


package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.TimerEvent;
import flash.text.TextField;
import flash.text.TextFieldType;
import flash.utils.Timer;

public class Main extends Sprite
{

public var textF:TextField;
public var textEditDelayTimer:Timer = new Timer(2000, 1);

public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}

private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point

textEditDelayTimer.addEventListener(TimerEvent.TIM ER, onTimer);

textF = new TextField();
textF.addEventListener(Event.CHANGE, onChange);
addChild(textF);

textF.x = textF.y = 10;
textF.text = "Input text";


}

private function onTimer(e:TimerEvent):void
{
trace("Text Was edited");

}

private function onChange(e:Event):void
{
Debug.log(e);
textEditDelayTimer.start();
}
}
}

vlad2005
12-06-2008, 08:01 AM
Interesting idea but not very practical, because in 2 seconds, an user can do an action, and event is not dispatched.
On the other side, if past 2 seconds, not necessarily text edit is end.
I think, a more correct approach is to watch when focus of textArea is change, because this indicate that user leave edit.
But i don't know how do that!