如何在 Flash TLFTextField 中定义项目符号?
How to define bullets in Flash TLFTextField?
我在 flex 项目中使用 Flash TLFTextField
。我们可以使用 HTMLText(li)
在 TLFTextField
中添加项目符号,但是如何在不使用 HTMLText 的情况下向 TLFTextField
添加项目符号?
我可以用TextFormat
的子弹属性在Flash的经典TextField
中做子弹。
试试这个
var pText:String = "<list listStylePosition='inside' listStyleType='disc' afterFormat = '\t' paddingLeft = '30' tabStops='e100 s700'>" +
"<li><p>Mango</p></li>" +
"<li><p>Apple</p></li>" +
"</list>";
var t:TLFTypographicCase;
textLayoutFormat = new TextLayoutFormat();
//textLayoutFormat.color = "#ffffff";
textLayoutFormat.fontFamily = "Myriad Pro";
textLayoutFormat.fontSize = 36;
textLayoutFormat.paragraphSpaceBefore = 12;
linkNormal = new TextLayoutFormat();
linkNormal.color = 0x26e1fd;
linkNormal.fontFamily = textLayoutFormat.fontFamily;
linkNormal.fontSize = textLayoutFormat.fontSize;
richTextArea.textFlow = TextFlowUtil.importFromString(pText);
richTextArea.textFlow.format = textLayoutFormat;
richTextArea.textFlow.linkNormalFormat = linkNormal;
请检查此 link 以获取更多帮助..
https://forums.adobe.com/thread/787203?tstart=0
希望对您有所帮助
这不是一个可靠的修复,但它解决了我的问题。我分享我的代码,以便它可以帮助遇到此问题的任何人。
// Imagine you have to apply bullet to the text index between beginIndex, endIndex
var index : int = beginIndex;
var le : FlowLeafElement = this.textFlow.findLeaf( index + 1 );
var listEle : ListElement = new ListElement();
while( le && index < endIndex ) {
if( le ){
var p : ParagraphElement = le.getParagraph();
if( p ) {
index += p.getText().length + 1;
if ( p.getText().length > 0 && ( !( p.parent is ListItemElement ) ) ) {
var childIndex : int = this.textFlow.getChildIndex( p );
this.textFlow.removeChild( p );
listEle = new ListElement();
var listItem : ListItemElement = new ListItemElement();
listItem.addChild( p );
listEle.addChild( listItem );
if( childIndex >= 0 ){
this.textFlow.addChildAt( childIndex, listEle );
} else {
this.textFlow.addChild( listEle );
}
}
}
}
le = le.getNextLeaf();
}
我在 flex 项目中使用 Flash TLFTextField
。我们可以使用 HTMLText(li)
在 TLFTextField
中添加项目符号,但是如何在不使用 HTMLText 的情况下向 TLFTextField
添加项目符号?
我可以用TextFormat
的子弹属性在Flash的经典TextField
中做子弹。
试试这个
var pText:String = "<list listStylePosition='inside' listStyleType='disc' afterFormat = '\t' paddingLeft = '30' tabStops='e100 s700'>" +
"<li><p>Mango</p></li>" +
"<li><p>Apple</p></li>" +
"</list>";
var t:TLFTypographicCase;
textLayoutFormat = new TextLayoutFormat();
//textLayoutFormat.color = "#ffffff";
textLayoutFormat.fontFamily = "Myriad Pro";
textLayoutFormat.fontSize = 36;
textLayoutFormat.paragraphSpaceBefore = 12;
linkNormal = new TextLayoutFormat();
linkNormal.color = 0x26e1fd;
linkNormal.fontFamily = textLayoutFormat.fontFamily;
linkNormal.fontSize = textLayoutFormat.fontSize;
richTextArea.textFlow = TextFlowUtil.importFromString(pText);
richTextArea.textFlow.format = textLayoutFormat;
richTextArea.textFlow.linkNormalFormat = linkNormal;
请检查此 link 以获取更多帮助.. https://forums.adobe.com/thread/787203?tstart=0
希望对您有所帮助
这不是一个可靠的修复,但它解决了我的问题。我分享我的代码,以便它可以帮助遇到此问题的任何人。
// Imagine you have to apply bullet to the text index between beginIndex, endIndex
var index : int = beginIndex;
var le : FlowLeafElement = this.textFlow.findLeaf( index + 1 );
var listEle : ListElement = new ListElement();
while( le && index < endIndex ) {
if( le ){
var p : ParagraphElement = le.getParagraph();
if( p ) {
index += p.getText().length + 1;
if ( p.getText().length > 0 && ( !( p.parent is ListItemElement ) ) ) {
var childIndex : int = this.textFlow.getChildIndex( p );
this.textFlow.removeChild( p );
listEle = new ListElement();
var listItem : ListItemElement = new ListItemElement();
listItem.addChild( p );
listEle.addChild( listItem );
if( childIndex >= 0 ){
this.textFlow.addChildAt( childIndex, listEle );
} else {
this.textFlow.addChild( listEle );
}
}
}
}
le = le.getNextLeaf();
}