Not sure how this is possible but dynamic text fields seem to have two registration points: one which determines their location on the stage, and another which determines the origin of their coordinate system.
/*var t:TextField = new TextField();
t.text = "Hello";
t.x = 155;
t.y = 130;
addChild(t);*/
var p:Point = t.localToGlobal(new Point());
var s:Shape = new Shape();
addChild(s);
s.graphics.lineStyle(0, 0xFF);
s.graphics.drawCircle(t.x, t.y, 15);
s.graphics.lineStyle(0, 0xFF00);
s.graphics.drawCircle(p.x, p.y, 15);
trace(t.x, t.y, p);
If t is a dynamic text field you placed on the stage in the authoring environment, you’ll see two separate circles around two separate points, when there should just be one point to encircle. And the trace statement will trace 2 different points as well, offset just 2 pixels in the x direction and 2 pixels in the y direction, regardless of font or font size. (I commented out the first part of the code since text fields created with code will behave normally with just one registration point.)
Someone tell me I’m not the only one to notice this.