我在舞台上有textInput
,它不是组件;而是设置为textField
的{{1}}。我还在舞台上有一个按钮,用于加粗inputText
中文本的选定部分。
这是代码,完全正常:
inputField
问题:
当我旋转textInput时,文本消失。如果我嵌入字体并选择另一种抗锯齿方法,如“动画的消除锯齿”,则旋转的textInput会显示文本,但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.
}
}
功能不起作用。
我尝试过不同的字体。 Sans,Arial,我嵌入了它的所有风格(Bold,Italic,Bold-Italic)。什么!
我尝试将makeBold
放在textInput
内,然后轮换movieClip
。不起作用。
我也尝试为movieClip
设置embedFonts
参数,不确定我是否正确使用
textInput
这次即使myInputField.embedFonts = true;
未旋转,文字也会消失。
我真的陷入困境,无法想到任何其他事情可以使粗体功能与旋转textField
一起使用。
答案 0 :(得分:1)
嵌入方法
对于应用于文本字段的旋转等操作,应首先嵌入文本字体。
myText.text = "rotation with embed font";
myText.rotation = 10;
您的文字字段' myText'实际放在现场。当您点击它时,在窗口'属性'中,执行以下操作:
要嵌入字体,请点击“嵌入”字样。按钮>窗口'字体嵌入' > '字符范围' >选择:'大写','小写','数字','标点符号' (不要点击'所有')
3D方法
您还可以使用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);
}
答案 1 :(得分:0)
我将抗锯齿设置为它的默认值,即"使用设备字体"并使用rotationZ
来旋转文本字段。它工作了!
使用rotation
(非rotationZ
)默认消除锯齿功能不会显示文字。
并使用rotation
(而不是rotationZ
)进行抗锯齿处理会使粗体功能无效。
所以只需添加以下代码就可以解决这个问题:
myInputField.rotationZ = 45;