Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

Applied Link doesn't work, when I'm changing paragraph format to Center or Right

New Here ,
Jul 08, 2015 Jul 08, 2015

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

            
}

TOPICS
ActionScript
174
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
no replies

Have something to add?

Join the conversation