如何获取当前选择的格式?

时间:2018-02-04 05:22:37

标签: flex tlf

有没有办法获得当前选择的格式?以下是我到目前为止的情况:

var currentFormat:TextLayoutFormat;
var selectionStart:int;
var selectionEnd:int;
var operationState:SelectionState;
var editManager:IEditManager;

if (richEditableText.textFlow && richEditableText.textFlow.interactionManager is IEditManager) {
    editManager = IEditManager(richEditableText.textFlow.interactionManager);

    selectionStart = Math.min(richEditableText.selectionActivePosition, richEditableText.selectionAnchorPosition);
    selectionEnd = Math.max(richEditableText.selectionActivePosition, richEditableText.selectionAnchorPosition);

    if (operationState == null) {
        operationState = new SelectionState(richEditableText.textFlow, selectionStart, selectionEnd);
    }

    // this does not work
    currentFormat = editManager.getCommonCharacterFormat(operationState);

}

1 个答案:

答案 0 :(得分:0)

我找不到任何东西,所以这里似乎有用:

bar

/** * Get format of element range **/ public static function getElementRangeFormat(elementRange:ElementRange):TextLayoutFormat { var leaf:FlowLeafElement = elementRange.firstLeaf; var attr:TextLayoutFormat = new TextLayoutFormat(leaf.computedFormat); for (;;) { if (leaf == elementRange.lastLeaf) break; leaf = leaf.getNextLeaf(); attr.concatInheritOnly(leaf.computedFormat); } return Property.extractInCategory(TextLayoutFormat, TextLayoutFormat.description, attr, Category.CHARACTER, false) as TextLayoutFormat; } 的启发。