为什么TextFormat无法在TextArea上运行?

时间:2016-08-01 23:43:08

标签: actionscript-3 flex actionscript adobe

我试图在单击文本区域后生成粗体文本。我做错了什么?

HelloWorld.mxml的

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="800" height="800">
    <mx:Script source="HelloWorldAS.as" />

        <mx:VBox width="70%" height="70%" label="Container">
            <mx:TextArea id="lblTest"  verticalScrollPolicy="off" focusThickness="0" borderThickness="0" borderStyle="none" editable="true" fontFamily="Arial" fontSize="14" width="100%" height="100%" click="areaClick()"/>
        </mx:VBox>

</mx:Application>

HelloWorldAS.as

// ActionScript file
import flash.text.TextField;
import flash.text.TextFormat;

public function areaClick() : void{
    lblTest.text = "Hello world!";

    var format:TextFormat = new TextFormat();
    format.bold=true;

    lblTest.setStyle("textFormat", format);
    lblTest.validateNow();
}

2 个答案:

答案 0 :(得分:1)

不幸的是TextArea没有textFormat样式。使用fontWeight作为bold,如下所示:

lblTest.setStyle("fontWeight", "bold");

答案 1 :(得分:0)

你可以在这里阅读官方的adobe文档:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/text/TextFormat.html,最有趣的部分是:

  

使用TextField.defaultTextFormat属性应用格式   在将文本添加到TextField和setTextFormat()方法之前   在将文本添加到TextField之后添加格式。

所以,如果你想要文字&#34; hello world&#34;要加粗,您必须按如下方式应用TextFormat:

lblText.setTextFormat(format);