你如何在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);
你如何在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);
一些更多的信息支持克里斯托夫Herreman: ActionScript中-旋转文本
为了看到旋转的文本,你必须嵌入字体。
一种替代是,文本字段复制成BitmapData
使用BitmapData::draw
,然后创建Bitmap
包含结果,以及添加一个到显示列表,而不是原来TextField
...
这具有很大的优势,你并不需要嵌入字体,减少了文件大小的SWF ... OTOH,你将失去所有的TextField`的交互性,以及播放时SWF将需要更多的RAM,但后者是不是太显著...
让文字看起来光滑,设置Bitmap::smoothing
至true
......也有帮助,如果你在一个更高的分辨率...伪抗锯齿渲染图像,可以这么说...绘制文本时,传递Matrix
通过因子2按比例放大和缩小的Bitmap
通过因子2 ...这样,它会更好看...
格尔茨
back2dos
我只是想我的经验加入到这个问题。 我也想旋转文本。
起初,我只使用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任何东西。 如果有人能够做到这一点,而无需使用闪光灯,请不要共享!
这是对我工作。
在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应用旋转那场,我还看到字体。
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);