我正在学习 ActionScript/Flash。我喜欢玩弄文本,并且用出色的 Java2D API 做过很多这样的事情。
我想知道的一件事是“你到底在哪里画那个字形?” TextField 类提供方法 getBounds
和 getCharBoundaries
,但是这些方法分别返回远远超出整个文本对象或单个字符的实际边界的矩形。
var b:Sprite = new Sprite();
b.graphics.lineStyle(1,0xFF0000);
var r:Rectangle = text.getCharBoundaries(4);
r.offset(text.x, text.y);
b.graphics.drawRect(r.x,r.y,r.width,r.height);
addChild(b);
b = new Sprite();
b.graphics.lineStyle(1,0x00FF00);
r = text.getBounds(this);
b.graphics.drawRect(r.x,r.y,r.width,r.height);
addChild(b);
有没有什么方法可以获得有关 ActionScript 中文本字形的实际视觉边界的更精确信息?
最佳答案
Richard 走在正确的轨道上,但 BitmapData.getColorBounds() 更快更准确...我已经使用了几次,并针对您的特定需求进行了优化,它并不像人们想象的那么慢。
Cory 关于使用 flash.text.engine 的建议可能是“正确”的方法,但我警告您,与 TextField 相比,flash.text.engine 非常(非常!)难用。
关于actionscript-3 - 有没有办法在 ActionScript 中获取字形的实际边界框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1942911/