动作:如何旋转文本字段?(Actionscript: How do I rotate a text

2019-07-30 02:21发布

你如何在ActionScript 3.0旋转文本字段? 当我改变文本字段的旋转属性,它不会显示。

例如:

var txtFld:TextField = new TextField();
txtFld.x = 100;
txtFld.y = 100;
txtFld.width = 300;
txtFld.height = 300;
txtFld.text = "Test String";
txtFld.rotation = 90;
addChild(txtFld);

Answer 1:

一些更多的信息支持克里斯托夫Herreman: ActionScript中-旋转文本



Answer 2:

为了看到旋转的文本,你必须嵌入字体。



Answer 3:

一种替代是,文本字段复制成BitmapData使用BitmapData::draw ,然后创建Bitmap包含结果,以及添加一个到显示列表,而不是原来TextField ...

这具有很大的优势,你并不需要嵌入字体,减少了文件大小的SWF ... OTOH,你将失去所有的TextField`的交互性,以及播放时SWF将需要更多的RAM,但后者是不是太显著...

让文字看起来光滑,设置Bitmap::smoothingtrue ......也有帮助,如果你在一个更高的分辨率...伪抗锯齿渲染图像,可以这么说...绘制文本时,传递Matrix通过因子2按比例放大和缩小的Bitmap通过因子2 ...这样,它会更好看...

格尔茨

back2dos



Answer 4:

我只是想我的经验加入到这个问题。 我也想旋转文本。

起初,我只使用ActionScript中嵌入字体。

Embed(source="C:\\WINDOWS\\Fonts\\CALIBRI.TTF", fontFamily="Calibri")]
public static const FONT_CALIBRI:Class;
...
var font:Font = new Global.FONT_CALIBRI as Font;
//Font.registerFont(Global.FONT_CALIBRI); //I tried various other things...

但每次我设定时间embedFonts = true ,文字就会消失。 最后,我要作出让步, 使用Flash嵌入字体 。

var font:Font = new FontClass as Font; //FontClass was exported from Flash IDE

它终于奏效。

var textFormat:TextFormat = new TextFormat(font.fontName);

textField = new TextField();
textField.defaultTextFormat = textFormat; //must be before setting the text
textField.embedFonts = true; //needed to rotate fonts
textField.autoSize = TextFieldAutoSize.CENTER;
textField.antiAliasType = flash.text.AntiAliasType.ADVANCED;
textField.text = ("TESTING")
this.addChild(textField);

哦,我多么讨厌使用Flash IDE任何东西。 如果有人能够做到这一点,而无需使用闪光灯,请不要共享!



Answer 5:

这是对我工作。

在CS5,我需要更改设置的字体嵌入对话框中为它工作。

要显示的字体嵌入对话框,可以单击在角色面板中嵌入按钮,或在库中双击字体符号。

然后,选择您希望能够旋转的字体,然后单击ActionScript标签。

最后,检查为ActionScript复选框导出。 保留默认值,然后单击确定。

下面是我使用的代码:

textField = new TextField();
textField.autoSize = TextFieldAutoSize.LEFT;
textField.embedFonts = true;

format.font = "Arial"; // Or whatever the name of your font is in the embed dialog
format.size = 24;
textField.defaultTextFormat = format;

addChild(textField);

如果再然后通过AS应用旋转那场,我还看到字体。



Answer 6:

var txtFld:TextField = new TextField();
txtFld.x = 100;
txtFld.y = 100;
txtFld.width = 300;
txtFld.height = 300;
txtFld.text = "Test String";

txtFld.embedFonts = true; // to embed the font ... now roation works

txtFld.rotation = 90;
addChild(txtFld);


文章来源: Actionscript: How do I rotate a text field?