火花RichText中的空文本

时间:2013-09-23 11:51:14

标签: flex flex4 flex-spark

我正在构建RichText控件的内容:

private function buildLabelTextElements():void
        {
            beforeResult=new SpanElement(); 
            beforeResult.color=0x000000; 
            beforeResult.fontWeight=FontWeight.NORMAL;
            searchResult=new SpanElement(); 
            searchResult.color=0x9C0836;
            searchResult.fontWeight=FontWeight.BOLD;
            afterResult=new SpanElement(); 
            afterResult.color=0x000000; 
            afterResult.fontWeight=FontWeight.NORMAL;
            var paragraphElement:ParagraphElement=new ParagraphElement();
            paragraphElement.addChild(beforeResult); 
            paragraphElement.addChild(searchResult);
            paragraphElement.addChild(afterResult);
            var textFlow:TextFlow=labelField.textFlow;
            textFlow.addChild(paragraphElement);
            /*var controller:ContainerController=new ContainerController(
                    labelField);
            textFlow.flowComposer.addController(controller);*/
            textFlow.flowComposer.updateAllControllers();
            //labelField.textFlow=textFlow;
        }

然后在另一个函数中,我正在更改beforeResultsearchResultafterResult中的文字,但由于某种原因,我在控件中的文字是空的!我错过了什么?我可以添加更改文本的代码,如果它可以帮助找到问题,但基本上它只是beforeResult.text=...然后labelField.textFlow.flowComposer.updateAllControllers();

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我认为你可能会以错误的方式做这件事。不要尝试使用分配给TextFlow的现有Label对象,而是创建一个全新的TextFlow对象,然后在Label上设置该对象。这是我记得在任何地方都能看到的模式,而且我知道过去这种模式运作良好:

所以而不是:

var textFlow:TextFlow=labelField.textFlow;

执行:

var textFlow:TextFlow = new TextFlow();

然后,在您使用文字填充TextFlow后,将TextFlow分配给标签:

labelField.textFlow=textFlow;

有可能以原始方式执行,但您必须深入研究Label和/或TextFlow类的内部,以确定它无法正常工作的原因。< / p>