I'm not sure. Is there any way to deserialize to resolve to a reference to a 
class instance?

For the most part, I'm using custom styles to track character and paragraph 
styles. setStyle() and getStyle() writes and reads references to common styles 
that can be applied to any number of TextLayoutElements. (Yes. I can probably 
track them using strings rather than object references to solve my problem, but 
object references is much neater and I'd rather solve the underlying issue if 
possible.)

Is there a reason that the TextScrap is not written to and read from the 
clipboard directly? Is it really necessary to serialize it?

There's really two separate issues here:
1) Serialization of TLF could probably be more robust.
2) The question as to whether serialization is really necessary. Is that to 
facilitate copying the data from one swf to another? What about copying BOTH 
serialized data as well as the original TextScrap? The TextScrap could be used 
for the same swf and the serialized data can be used for a different one.

Harbs

On Nov 4, 2013, at 9:19 AM, Alex Harui wrote:

> So is it as simple as serializing non-strings to text and de-serializing
> on import?
> 
> 
> On 11/3/13 11:12 PM, "Harbs" <harbs.li...@gmail.com> wrote:
> 
>> 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
>>>> 
>>> 
>> 
> 

Reply via email to