仔细研究了一下Flex支持表情图片,主要有下面三种方法:
- 使用TextArea,或直接使用TextField的html支持功能,在html中使用<img>标签嵌入表情图片文件。但这样做有两个问题,一是图片文件载入较慢;二是不容易控制载入的图片在文本中的“流向”。虽然可以使用getImageReference获取对图片的引用,但处理起来也比较费力。
- 将文本中需要插入图像的地方留出空白空间,获取空白空间的位置,并使用图像替代。这种方法的缺点在于每次更新文字内容的时候,所有的图片都要重排位置,对性能有一定影响,尤其是文本和图像比较多的情况下。
- 使用Flash Player 10提供的flash.text.engine(简称FTE)提供的高级功能进行处理,具体是使用GraphicElement类,这无疑是更好的方法。Adobe提供的Text Layout Framework(简称TLF)就是架设FTE的基础之上的。
下面是一些我搜集的资料,为后面的实战做个记录:
- How to use Text Layout Framework in Flex 3.2 or AIR 1.5
- How to add a scrollbar to Text Layout Framework
- Utilizing Flash Text Layout Framework using MXML
- Flex 用AS3GIF类播放gif动画
- Spark Text Primitives – Functional and Design Specification
下面这个范例是我在网上找到的,使用的应该是第2种方法。