Applied Link doesn't work, when I'm changing paragraph format to Center or Right
Hi! I'm working on AS3 TextFlow and EditManager, Applied Link (editManager.applyLink()) doesn't work, when I'm changing paragraph format (editManager.applyParagraphFormat()).
| var tlfFormat:TextLayoutFormat = new TextLayoutFormat(); | ||
tlfFormat.textAlign = TextFormatAlign.RIGHT; // or TextFormatAlign.CENTER;
tlfFormat.textAlignLast = TextFormatAlign.CENTER;
changeParagraphAlign(tlfFormat);
public function changeParagraphAlign(tlfFormat:TextLayoutFormat):void
{
var sel:SelectionState = editManager.getSelectionState();
if (!this.editManager.hasSelection()) {
this.textFlow.interactionManager = this.editManager;
sel = new SelectionState(this.textFlow, 0, this.textFlow.textLength - 1);
}
//apply to selected paragraphs
this.editManager.applyParagraphFormat(tlfFormat, sel);
this.textFlow.flowComposer.updateAllControllers();
!this.editManager.hasSelection() && (this.textFlow.interactionManager = null);
}
public function applyLink(lnk:String😞void
{
var prevManager:ISelectionManager = this.textFlow.interactionManager;
var editManager:EditManager = this.textFlow.interactionManager as EditManager;
if (this.editManager.hasSelection()) {
var sel:SelectionState = prevManager.getSelectionState();
if (lnk == "" && sel.absoluteStart == sel.absoluteEnd) {
sel.absoluteEnd++;
}
//get link start and end positions
else if (sel.absoluteStart == sel.absoluteEnd) {
var spnElement:SpanElement = this.textFlow.findLeaf(sel.absoluteStart) as SpanElement;
if (spnElement.parent is LinkElement) {
var linkElement:LinkElement = (spnElement.parent as LinkElement);
sel.absoluteStart = linkElement.getAbsoluteStart();
sel.absoluteEnd = linkElement.getAbsoluteStart() + linkElement.href.length;
}
}
if (sel.absoluteStart != sel.absoluteEnd) {
//apply link
if (lnk != "") {
if(linkElement) {
linkElement.href = lnk;
} else {
editManager.applyLink(lnk, null, false, sel);
}
}
else {
editManager.applyLink(null, null, true, sel);
}
}
}
this.textFlow.flowComposer.updateAllControllers();
}