Actionscript:如何旋转文本字段?

时间:2009-07-13 06:47:18

标签: flash actionscript rotation textfield

如何在actionscript 3.0中旋转文本字段?只要我更改文本字段的rotation属性,它就不会显示。

例如:

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);

6 个答案:

答案 0 :(得分:8)

要查看旋转的文字,您必须嵌入字体。

答案 1 :(得分:5)

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

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

要使文字看起来流畅,请将Bitmap::smoothing设置为true ...此外,如果您以更高的分辨率渲染图像,它会有所帮助...伪抗锯齿,所以说...在绘制文本时,将Matrix按比例放大2倍,然后将Bitmap缩小2倍...这样看起来会更好......

格尔茨

back2dos

答案 2 :(得分:4)

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

答案 3 :(得分: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时,文本都会消失。最后我放弃了embedded the font using 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的情况下执行此操作,请分享!

答案 4 :(得分: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对该字段应用旋转,我仍然会看到字体。

答案 5 :(得分: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);