【问题标题】:why does setting different scaleX and scaleY for textfield distorts the text?为什么为文本字段设置不同的 scaleX 和 scaleY 会扭曲文本?
【发布时间】:2011-07-08 04:46:18
【问题描述】:

我有一个 textField ,其中我使用嵌入的字体,问题是当我改变它的大小并且我没有设置相同的 scaleX 和 scaleY 值时,当我把它变小时它似乎压缩了它里面的字母,并拉伸当我把它变大时发文字......

我尝试使用宽度和高度值(而不是 scaleX 和 scaleY,但结果相同)...似乎嵌入的字体保持某种纵横比或其他什么,而且这仅在设置 embedFonts 时才会发生为真

【问题讨论】:

  • 所以您没有按比例缩放矢量显示对象的宽度和高度,您想知道为什么它没有保持按比例缩放?
  • 我想我误解了你想要做什么。如果您更改字体大小,则 textField 应自动缩放。你能发布你的代码吗?

标签: actionscript-3 flash-cs4


【解决方案1】:

保持比率的一个简单解决方案是同时使用宽度/高度和 scaleX/Y:

textField.width = 250;
textField.scaleY = textField.scaleX;

【讨论】:

  • 正如在其他论坛中确认的那样,这似乎是嵌入字体的正常行为,但似乎唯一的解决方案是真正调整字体大小而不是文本字段大小,以便字体不会被拉伸或压缩....关于@Corey的回答,我将不得不尝试那个,但实际上我已经尝试将 scaleX 和 scaleY 设置为 1 然后设置宽度,结果是仍然被拉伸或压缩......虽然我没有尝试在比例之前先设置宽度,尽管我认为比例也会直接影响宽度
  • 您必须确保scaleX和scaleY始终相同,否则会出现失真。在您的评论中,您将它们都设置为 1(好),然后您只更改宽度,这对 scaleY 属性没有影响。
【解决方案2】:

//为什么不用“设备字体”?

var tf:TextField = new TextField();
tf.text = "本尼";
var myBitmapData:BitmapData = new BitmapData(300, 300);
myBitmapData.draw(tf);
var bmp:Bitmap = new Bitmap(myBitmapData);
this.addChild(bmp);
bmp.width = bmp.height = 1200;

bmp.x = stage.stageWidth/4;
bmp.y = stage.stageHeight/4;

【讨论】:

  • 我们需要处理设备+嵌入字体
  • 我添加了一些代码。检查这个。也许对你有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-25
  • 1970-01-01
  • 2015-08-04
相关资源
最近更新 更多