如何从TLF中的FlowElement中删除样式?

时间:2016-11-10 06:36:59

标签: flash flex tlf

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

null

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

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

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);

我不确定这是对的。但如果它似乎工作,我会添加它作为答案。

1 个答案:

答案 0 :(得分:0)

我在编辑管理器类中找到了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)传入包含要删除的属性的对象。