2010-10-08 81 views
2

粘贴到Flash中时是否可以捕获富文本?使用Flex TextEditArea,我可以在Flash本身中粘贴丰富格式的文本,但是如果我尝试从外部源(例如网页,微软单词等)粘贴,它会以纯文本的形式进行粘贴。相反:如果我从Flash中复制丰富的文本并粘贴到外部源,它将以纯文本的形式出现。将富文本粘贴到Flash中?

+0

copypasta +1 :) – dstarh 2010-10-08 17:06:33

回答

0

看看TinyMCE或其他编辑器,他们有粘贴单词文本的选项,也许你可以看看他们如何解析它并模拟它。如果你可以针对FLEX4的Flash Player 10,你可以看看http://labs.adobe.com/technologies/textlayout/这可能会帮助你this post在砖坯论坛上指出

+0

TinyMCE是为Javascript,它使用浏览器内置的能力来处理HTML,我不认为这会帮助我。我实际上使用Flex 4和基于TLF的文本编辑器,所以我会看看这些链接,谢谢。 – davr 2010-10-08 17:16:45

+0

第一个链接就是关于TLF的通用信息页面,第二个链接是关于flash 9/flex 3的,谈到在这种情况下不可能。但我正在使用Flash 10/flex 4,所以试图弄清楚如何做到这一点。 – davr 2010-10-08 17:20:09

+0

我知道TinyMCE是用于JavaScript的,但我的想法是,tinyMCE解析来自单词的文本并将其格式化以摆脱任何单词的尴尬。 – dstarh 2010-10-08 17:45:18

3

我中途有,到目前为止,我得到这个:

<s:RichEditableText paste="pasteHandler(event)" width="100%" height="100%"/> 

 

protected function pasteHandler(event:Event):void 
{    
    if(Clipboard.generalClipboard.hasFormat(ClipboardFormats.HTML_FORMAT)) { 
     var txt:RichEditableText = event.target as RichEditableText;      
     var html:String = Clipboard.generalClipboard.getData(ClipboardFormats.HTML_FORMAT) as String; 
     var mgr:EditManager = txt.textFlow.interactionManager as EditManager; 

     mgr.pasteTextScrap(new TextScrap(TextConverter.importToFlow(html, TextConverter.TEXT_FIELD_HTML_FORMAT))); 

     event.stopImmediatePropagation(); 
    } 
} 

它得到一些格式但是现在有字体大小的问题 - 什么,这不是一个默认字体大小,是极其微小的。普通字体保持正常。大字体变成小字体。小字体变成1像素高点。

+0

好像你应该能够遍历所有文本流元素,并确保字体大小在一定范围内。 – JTtheGeek 2010-12-01 23:07:25