[转]一些对TLF和FTE的思考

[原文链接: Some Thoughts on TLF & FTE 原文创作时间: July 13, 2010 原文作者: Grant Skinner ]

[原创翻译链接: http://www.smithfox.com/?e=74 , 转载请保留此声明, 谢谢]

[部分内容参考了 Tomyail的blog 的翻译文章 一些对TLF和FTE的思考 ]

这篇文章阐述了作者对Adobe TLF的架构实现的不足, 以及他的一些期望. 很少很少FTE相关内容. 没有怎么使用TLF的例子之类的内容. 但看完作者精辟的分析, 肯定使你对当前TLF不足, 乃至 Adobe framework 都会有一定的了解.

下面的翻译内容:

几个月前,我一直在思考关于TLF的一些事情: 怎么使用它,哪些是我喜欢的特征, 以及那些我所遇到的bug. 但不仅仅是这些, 还有关于它的原理和底层模型。我期望能过分享这些思考和来自社区的建议, 我能提供一些有用的反馈给Adobe,这将有助于TLF的未来发展.

继续阅读[转]一些对TLF和FTE的思考

在Flex中实现聊天表情图片支持-实战篇

2011年6月17日更新:有网友说

SDK4.5下编译报错 1119: 访问可能未定义的属性 textFlow (通过 static 类型
spark.core:IEditableText 引用)。 TextChat.mxml /TextChat/src 第 94 行

问题的原因,在于SDK4.5将TextInput和TextArea的外观部件textDisplay的类型从原来的RichEditableText改为了IEditableText,因此无法得到textFlow属性。这是为了适应Mobile设备。在Spark主题下,它是 RichEditableText,而在Mobile主题下,它是StyleableTextField。

我解决的办法是强制将IEditableText转换成RichEditableText(见TextChat.mxml第95,100行)。这在Spark主题下当然是没问题的,但这并非是最好的办法。现在的源码是可以正常在SDK4和SDK4.5下编译的,请重新下载。

另外,经常有网友问到下载的压缩包中是一个FXP文件,这个该如何处理。其实这个问题Google一下自然有答案,做Flex,居然不知道FXP是什么,而且随手Google也不愿意做,我就只能鄙视你一下了。为了避免大家的麻烦,新提供的源码中增加了编译好的swf方便大家看效果,同时也放弃了FXP格式。我现在采用的是ANT+SDK编译,所以不要问我怎么把项目导入Flash Builder。

2010年10月7日更新:很多网友反应在SDK4正式版中,即使修改了源码也用不了,于是就顺手改了一下。现在的源码基于SDK4.1正式版,删除了一些原来beta版的时候用来解决beta版bug的代码,并加入了切分字符串的功能。也就是说,如果先输入文字,然后将输入点置于文字中再插入图片,图片会自动将文字分开。唉——转眼间这个源码发布一年了,时间过得真快啊……

顺便说一句:后来我又做了一个魔法表情功能,可以看这里

2009年10月29日更新:今天发现,有几个问题,Flash Builder beta2 自带的SDK已经解决了(下面标出了),看来beta确实是不能用于正式产品啊……

2009年10月8日更新:Flash Builder beta 2发布后,spark组件中有些类的名称修改了,比如TextFilter改为TextConverter,SimpleText改为Label,TextArea.textview.textFlow改为TextArea.textFlow……因此如果使用beta2,那么下面的源码可能不会编译通过,请自行修改。


我发布“在Flex中实现聊天表情图片支持-资料篇”后,便有许多朋友找我要那个范例的源码。我在文章中就已提过那范例是从网上down来,并非我所做,自然没有源码。要源码,用X思,你懂的……

那好吧,源码来了。

继续阅读在Flex中实现聊天表情图片支持-实战篇

Flash Text Engine、Text Layout Framework在Flex、Flash中的实现

2011-08-24更新:几篇TLF相关文章的连接


在Flex中实现聊天表情图片支持-资料篇一文中,我提到了FTE(Flash Text Engine)和TLF(Text Layout Framework)。它们的强大自不必多说,可去该文章提供的网址查看,或者直接看这个Demo。但是,在Flex与Flash中有对应的组件可以使用么?FTE和TLF是什么关系?下面就来说说吧:
:em03:
继续阅读Flash Text Engine、Text Layout Framework在Flex、Flash中的实现

在Flex中实现聊天表情图片支持-资料篇

  • 2011年8月24日09:44:35 更新:重新找到了基于riaidea的TextField的图文混排组件源码,见作者博客 这个组件在对文本进行滚动的时候占用CPU较大,我在30行文本+少量表情滚动的时候,CPU瞬间可达30%以上(AMD羿龙II三核),因此在性能较差的机器上可能感觉滚动会卡。综合目前Flash Player 10的市占率90%以上来考虑,应该使用TLF来开发聊天表情支持功能 (其实TLF大量文本滚动也会卡的,但比这个要好些) 。见在Flex中实现聊天表情图片支持-实战篇
  • 2009年10月9日11:09:14 更新:增加riaidea的范例,(riaidea的作者自行关闭了googlecode上的开源项目,因此riaidea的源码不能下载了,我也没有源码
  • 2009年9月16日20:34:30 更新:在Flex中实现聊天表情图片支持-实战篇
  • 2009年8月21日09:36:19 更新:Flash Text Engine、Text Layout Framework在Flex、Flash中的实现

仔细研究了一下Flex支持表情图片,主要有下面三种方法:

  1. 使用TextArea,或直接使用TextField的html支持功能,在html中使用 <img> 标签嵌入表情图片文件。但这样做有两个问题,一是图片文件载入较慢;二是不容易控制载入的图片在文本中的“流向”。虽然可以使用getImageReference获取对图片的引用,但处理起来也比较费力。
  2. 将文本中需要插入图像的地方留出空白空间,获取空白空间的位置,并使用图像替代。这种方法的缺点在于每次更新文字内容的时候,所有的图片都要重排位置,对性能有一定影响,尤其是文本和图像比较多的情况下。
  3. 使用Flash Player 10提供的flash.text.engine(简称FTE)提供的高级功能进行处理,具体是使用GraphicElement类,这无疑是更好的方法。Adobe提供的Text Layout Framework(简称TLF)就是架设FTE的基础之上的。

下面是一些我搜集的资料,为后面的实战做个记录:
继续阅读在Flex中实现聊天表情图片支持-资料篇