Подписываете сортировщик на событие изменения каждого поля, и по наступлению события (то есть когда в каком-либо поле изменится содержимое) пробегаете в цикле по массиву полей и пересортировываете, одновременно меняя у.

Код AS3:
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.text.TextField;
import flash.text.TextFormat;
public class Main extends Sprite
{
private var _fields:Array;
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(event:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
_fields = new Array();
for (var i:uint = 0; i < 5; i++)
{
var txf:TextField = new TextField();
txf.width = 200;
txf.height = 24;
txf.type = "input";
txf.defaultTextFormat = new TextFormat("Arial", 20, 0x666666);
txf.border = true;
txf.text = i.toString();
txf.addEventListener(Event.CHANGE, onChange);
txf.x = 50;
txf.y = 50 + 30 * i;
addChild(txf);
_fields[i] = txf;
}
}
private function onChange(event:Event):void
{
for (var i:uint = 1; i < _fields.length; i ++)
{
var currentValue:Number = Number(_fields[i].text);
var prevValue:Number = Number(_fields[i - 1].text);
if (prevValue < currentValue)
{
_fields[i].y -= 30;
_fields[i - 1].y += 30;
var tempTXF:TextField = _fields[i - 1];
_fields[i - 1] = _fields[i];
_fields[i] = tempTXF;
i = Math.max(0, i - 2);
}
}
}
}
}