Hi guys, please point me to the right place if this is the wrong.  I have 
encountered what appears to be an error in TLF present in the 4.10 SDK (checked 
multiple flash player target versions) in regard to EditManager.applyFormat

in the selection state I am specifying a small character range, but the format 
gets applied well beyond that range.  Attached are images from the exact same 
code (provided below) with drastically different results.  

Thank you for any assistance & advise.
~ Jason Taylor

<?xml version="1.0"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"; 
xmlns:s="library://ns.adobe.com/flex/spark" 
creationComplete="OnCreationComplete(event)">

    <s:TextArea width="100%" height="100%" id="txt">
        <s:content>
            Lorem ipsum dolor sit amet, consectetur adipiscing elit.<s:br/>
            Nulla sed metus facilisis, elementum arcu a, euismod est.<s:br/>
            Vivamus quis quam nec sapien accumsan luctus sit amet a 
magna.<s:br/>
            Vivamus eu erat ac est ullamcorper egestas eget nec mauris.<s:br/>
            Cras fringilla leo a risus luctus, eu volutpat diam luctus<s:br/>
        </s:content>
    </s:TextArea>

    <fx:Script><![CDATA[
        import flashx.textLayout.edit.EditManager;
        import flashx.textLayout.edit.SelectionState;
        import flashx.textLayout.elements.TextFlow;
        import flashx.textLayout.formats.TextLayoutFormat;

        import mx.events.FlexEvent;

        private function OnCreationComplete(event:FlexEvent):void
        {
            SetRegionColor(txt.textFlow, 5, 6, 0xB9CCFF);
        }

        public  function SetRegionColor(objFlow:TextFlow, iStart:int, iEnd:int, 
iBackgroundColor:*, nBgAlpha:Number = 1):void
        {
            try
            {
                var objFormat:TextLayoutFormat = new TextLayoutFormat();
                objFormat.backgroundColor = iBackgroundColor;
                objFormat.backgroundAlpha = nBgAlpha;


                var objSelection:SelectionState = new SelectionState(objFlow, 
iStart, iEnd);

                if(objFlow.interactionManager == null || 
objFlow.interactionManager is EditManager == true)
                {
                    var objManager:EditManager =  objFlow.interactionManager as 
EditManager;
                    objManager.applyFormat(objFormat, objFormat, objFormat, 
objSelection);
                }
                else
                {
                    throw new Error("TextFlow is Not Editable");
                }
            }
            catch(objError:Error)
            {
                trace("DocColorUtils::SetRegionColor Error: " + 
objError.message, objError);
            }
        }

        ]]></fx:Script>

</s:Application>

Reply via email to