我有textInput
在舞台上,它不是组件;而是一个设定为inputText
的textField
。我在舞台上也有一个按钮来加粗inputField
中选定的文本部分。
var formatDefBold: TextFormat = new TextFormat();
formatDefBold.bold = false;
var formatBold: TextFormat = new TextFormat();
formatBold.bold = true;
boldBtn.addEventListener(MouseEvent.CLICK, makeBold);
function makeBold(event: MouseEvent):void
{
var sbi:Number = myInputField.selectionBeginIndex;
var sei:Number = myInputField.selectionEndIndex;
if (sbi != sei)
{
var section:TextFormat = myInputField.getTextFormat(sbi,sei);
if (section.bold == false)
{
myInputField.setTextFormat(formatBold, sbi, sei);
}
else
{
myInputField.setTextFormat(formatDefBold, sbi, sei);
}
stage.focus = this[selectedTextField]; // highlight the selected text again.
}
}
:当我旋转textInput时,文本就消失了。如果我嵌入字体并选择另一种反混叠方法,如"动画反混叠",旋转的textInput显示文本很好,但makeBold
函数不起作用。我试过不同的字体。Sans, Arial,我嵌入了所有的样式(粗体,斜体,粗体-斜体)。没有什么!
我试过把textInput
放在movieClip
里面,然后旋转movieClip
。不工作。
我也试过为textInput
设置embedFonts
参数,不确定我是否做得正确
myInputField.embedFonts = true;
这一次,即使没有旋转textField
,文本也会消失。
我真的卡住了,想不出还有什么可以让bold函数与旋转的textInput
一起工作的
嵌入方法
对于应用于文本字段的任何操作,如旋转,您应该首先嵌入文本字体。
myText.text = "rotation with embed font";
myText.rotation = 10;
您的文本字段'myText'被物理地放在场景中。当你点击它的时候,在窗口的"属性"中,这样做:
- 反混叠(动画的反混叠)
- 字体嵌入
要嵌入字体,请单击"嵌入"按钮>窗口"字体嵌入">"字符范围">选择:"大写","小写","数字","标点符号"。(不要点击'All')
3 d方法您还可以使用Flash Player 10中提供的3D方法旋转动态文本字段而不嵌入字体。
var myTextField:TextField = new TextField();
this.addChild(myTextField);
var fo:TextFormat = new TextFormat("Arial", 11, 0xFF0000);
myTextField.defaultTextFormat = fo;
myTextField.text = "3D rotation";
myTextField.rotationZ = 45;
在您的情况下,下面的代码工作完美(您只需要在您的场景中放置一个名为'boldBtn'的按钮):
var myInputField:TextField = new TextField();
this.addChild(myInputField);
var fo:TextFormat = new TextFormat("Verdana", 12, 0x000000, false);
myInputField.defaultTextFormat = fo;
myInputField.text = "3D rotation";
myInputField.rotationZ = 45;
boldBtn.addEventListener(MouseEvent.CLICK, makeBold);
function makeBold(event:MouseEvent):void
{
fo.bold = !fo.bold;
myInputField.setTextFormat(fo);
}
我将抗锯齿设置为默认值,即"使用设备字体",并使用rotationZ
来旋转文本字段。这招奏效了!
使用rotation
(而不是rotationZ
)默认抗锯齿不会显示文本。
和使用rotation
(而不是rotationZ
)与抗锯齿使粗体功能不起作用。
所以这个问题可以通过添加这行代码来解决:
myInputField.rotationZ = 45;