6

如何在 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);
4

6 回答 6

8

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

于 2009-07-13T06:50:04.747 回答
5

另一种方法是将文本字段复制到BitmapDatausingBitmapData::draw然后创建Bitmap包含结果的文本字段,并将其添加到显示列表中,而不是原来的TextField...

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

为了使文本看起来平滑,设置Bitmap::smoothingtrue...另外,如果您以更高的分辨率渲染图像,它会有所帮助...伪抗锯齿,可以这么说...在绘制文本时,通过Matrix放大按因子 2 并按因子 2 缩小Bitmap...这样看起来会更好...

问候

back2dos

于 2009-07-13T18:00:31.857 回答
4

支持 Christophe Herreman 的更多信息:ActionScript - Rotating Text

于 2009-07-13T06:56:53.703 回答
1

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

起初,我只使用 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 做任何事情。如果有人能够在不使用 Flash 的情况下做到这一点,请分享!

于 2011-11-25T00:26:37.667 回答
1

这对我有用。

在 CS5 中,我需要更改字体嵌入对话框中的设置才能使其正常工作。

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

然后,选择您希望能够旋转的字体并单击 Actionscript 选项卡。

最后,选中 Export for 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 对该字段应用旋转,我仍然可以看到字体。

于 2011-12-30T16:33:35.080 回答
0
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);
于 2010-04-15T12:22:22.993 回答