apache-flex 如何在TLF中从FlowElement中删除样式?

3ks5zfa0  于 2022-11-01  发布在  Apache
关注(0)|答案(1)|浏览(162)

我使用以下代码将填充应用于InlineGraphicElement,但它似乎只是应用值而不是删除值。

imageFloat = inlineGraphicElement.float;
newFormat = new TextLayoutFormat();

if (imageFloat==Float.LEFT || imageFloat==Float.START) {
    newFormat.paddingRight = 5;
    inlineGraphicElement.paddingRight = 5;
}
else if (imageFloat==Float.RIGHT || imageFloat==Float.END) {
    newFormat.paddingLeft = 5;
    inlineGraphicElement.paddingLeft = 5;
}
else {
    newFormat.paddingLeft = undefined;
    newFormat.paddingRight = undefined;
}

absoluteStart = inlineGraphicElement.getAbsoluteStart();
textContainerManager = richEditableText.mx_internal::textContainerManager as RichEditableTextContainerManager;
textContainerManager.applyFormatOperation(newFormat, null, null, absoluteStart, absoluteStart+1);

看起来它忽略了未定义的值。现在我不知道如何将填充重置为无。

更新日期:

我在编辑管理器类中找到了clearFormat方法:

editManager = richEditableText.textFlow.interactionManager as IEditManager;
currentFormat = new TextLayoutFormat();
currentFormat.paddingLeft = 1;
currentFormat.paddingRight = 1;

editManager.clearFormat(currentFormat, null, null);

我不确定这是否正确,但如果它看起来有效,我会把它作为一个答案。

huwehgph

huwehgph1#

我在编辑管理器类中找到了clearFormat方法:

editManager = richEditableText.textFlow.interactionManager as IEditManager;
currentFormat = new TextLayoutFormat();
currentFormat.paddingLeft = 1;
currentFormat.paddingRight = 1;

editManager.clearFormat(currentFormat, null, null);

您必须为想要取消定义的属性给予。新TextLayoutFormat对象中的所有值都是未定义的。因此,要删除FlowElement上的任何样式,请将该样式设置为undefined以外的值,然后调用clearFormat(myTextLayoutFormat),传入具有要删除的属性的对象。

相关问题