Aral Balkan's article linked above is good reading and advocates a better overall validation interaction for the user.
If you just want to "force" the errorTip to pop up, here's what I do:
public function showErrorImmediately(target:UIComponent):void
{
// we have to callLater this to avoid other fields that send events
// that reset the timers and prevent the errorTip ever showing up.
target.callLater(showDeferred, [target]);
}
private function showDeferred(target:UIComponent):void
{
var oldShowDelay:Number = ToolTipManager.showDelay;
ToolTipManager.showDelay = 0;
if (target.visible)
{
// try popping the resulting error flag via the hack
// courtesy Adobe bug tracking system
target.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_OUT));
target.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_OVER));
}
ToolTipManager.showDelay = oldShowDelay;
}
public function clearErrorImmediately(target:UIComponent):void
{
target.callLater(clearDeferred, [target]);
}
private function clearDeferred(target:UIComponent):void
{
var oldDelay:Number = ToolTipManager.hideDelay;
ToolTipManager.hideDelay = 0;
if (target.visible)
{
// clear the errorTip
try
{
target.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_OVER));
target.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_OUT));
}
catch (e:Error)
{
// sometimes things aren't initialized fully when we try that trick
}
}
ToolTipManager.hideDelay = oldDelay;
}