Here is a simple test case which illustrates the problem. I can change my app for custom handling of copy/paste, but it seems to me that this is a general short-coming in the was copy paste is handled in TLF.
Note: customStyle1 is preserved when the TextFlow is exported because it's simple text, but customStyle2 is not preserved. The result of TextFlowExporter.export() is what's written to the clipboard, so it's missing any complex custom styles. <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="onComplete()"> <fx:Script> <![CDATA[ import flashx.textLayout.conversion.ITextExporter; import flashx.textLayout.conversion.TextConverter; import flashx.textLayout.edit.EditManager; import flashx.textLayout.elements.ParagraphElement; import flashx.textLayout.elements.SpanElement; import flashx.textLayout.elements.TextFlow; import flashx.undo.UndoManager; [Bindable]private var textFlow:TextFlow; private function onComplete():void{ var para:ParagraphElement; var span:SpanElement; var i:int; textFlow = new TextFlow(); textFlow.interactionManager = new EditManager(new UndoManager()); textFlow.tabStops = "s12 s72"; textFlow.paragraphSpaceAfter = 16; para = new ParagraphElement(); span = new SpanElement(); span.fontSize = 16; span.fontWeight = "bold"; span.text = "Here's some text."; span.setStyle("customStyle1","hello"); span.setStyle("customStyle2",{id:1,content:"this is some custom content"}); para.addChild(span); textFlow.addChild(para); var exporter:ITextExporter = TextConverter.getExporter("textLayoutFormat"); var res:Object = exporter.export(textFlow,"stringType"); trace(res); } ]]> </fx:Script> <s:RichEditableText verticalCenter="0" width="400" textFlow="{textFlow}"/> </s:Application> Harbs On Nov 4, 2013, at 7:21 AM, Alex Harui wrote: > I'm not sure what user styles are and why the aren't in the markup. Can > you provide more details? > > Consider whether this is a general TLF issue or just something you should > do in your app to add functionality. A general TLF issue probably can't > bypass the Clipboard because you should be able to copy/paste from one SWF > to another SWF. > > -Alex > > On 11/3/13 1:01 PM, "Gavriel Harbater" <gavha...@gmail.com> wrote: > >> Okay. After researching this, it looks like the problem is as follows: >> >> The TextFlow is saved to the clipboard as a string which is the markup >> representation of the TextFlow. The markup is produced using >> BaseTextLayoutExporter.export(). The markup produced from that is missing >> custom user styles. My custom user styles are actually quite complex >> classes. >> >> I'm looking for suggestions on the best way to handle this problem. I can >> think of three possible angles: >> 1) Somehow write user styles into the TextFlow markup. I'm not sure if >> there's a way to markup custom styles and complex ones are definitely an >> issue. >> 2) Write complex objects to the clipboard. Is this possible? If yes, why >> are strings currently used? >> 3) Skip the clipboard altogether and create some static function to call >> when the clipboard content is pasted to apply custom styles. >> >> Thoughts? >> >> On Nov 3, 2013, at 10:13 AM, Harbs wrote: >> >>> Looking into an issue I had, I noticed that user styles in TLF are not >>> preserved on copy/paste. (Actually, it would probably be more correct to >>> say that they're not preserved on copy.) >>> >>> I'm looking into TextScrap/TextClipboard now, but if anyone has >>> experience here as to why the styles are being dropped, I'd love to knowŠ >>> >>> Harbs >> >