我正在构建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;
}
然后在另一个函数中,我正在更改beforeResult
,searchResult
和afterResult
中的文字,但由于某种原因,我在控件中的文字是空的!我错过了什么?我可以添加更改文本的代码,如果它可以帮助找到问题,但基本上它只是beforeResult.text=...
然后labelField.textFlow.flowComposer.updateAllControllers();
感谢您的帮助。
答案 0 :(得分:0)
我认为你可能会以错误的方式做这件事。不要尝试使用分配给TextFlow
的现有Label
对象,而是创建一个全新的TextFlow
对象,然后在Label
上设置该对象。这是我记得在任何地方都能看到的模式,而且我知道过去这种模式运作良好:
所以而不是:
var textFlow:TextFlow=labelField.textFlow;
执行:
var textFlow:TextFlow = new TextFlow();
然后,在您使用文字填充TextFlow
后,将TextFlow
分配给标签:
labelField.textFlow=textFlow;
有可能以原始方式执行,但您必须深入研究Label
和/或TextFlow
类的内部,以确定它无法正常工作的原因。< / p>