Agree on 1, it should be more “pluggable” (unless it improved since the
last time I checked).

Regarding 2, clipboard class (see [1]) seems to support object references
in clipboard. If the TextScrap is completely independent from its
originating TextFlow, placing itself in the Clipboard (probably using a
dedicated clipboard format, and in addition to the current serialized form)
may have sense.


[1]
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/desktop/Clipboard.html




2013/11/4 Harbs <harbs.li...@gmail.com>

> 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