花了一点时间对一个看似简单的TextField做了一些了解,发现这个对象其实并不简单。
对于TextField,Adobe有一些秘密并没有公开。比如:flash.text.TextRun类,flash.text.TextFormatDisplay
类。还有几个未公开的TextField方法:
function getRawText() : String
function getTextRuns(beginIndex : int, endIndex : int) : Array
function getXMLText(beginIndex : int, endIndex : int) : String
function insertXMLText(beginIndex : int, endIndex : int, richText : String, pasting : Boolean) :
不过随着Fp10时代的到来,这些已经开始无关紧要了。因为新的flash.text.engine为我们带来了更多的惊喜。这些没有公开的类将会由新的内容来替代。
不过因为目前在开发上fp9下的AS3还是主流,所以我们的奇都项目(www.qdooo.com)中的表情聊天还是使用TextField类来开发的。如果希望了解FP10新的文本引擎不妨去看一下新的flash.text.engine类,或者去下载一个adobe做好的组件textlayout去了解一下如何利用新的框架来做文本编程。
做好的表情聊天效果:
演示文件下载:talkWithFace.swf
步骤讲解:(先列个目录)
1、我们的需求
2、TextFild的局限
3、替换的技巧
4、新的问题
5、让文本和表情一起滚动。
用flash做的这个,可能跟你的flex情况不一样。原理是:把表情代码提出出来,替换成几个空格,然后把表情swf放到textfield上面。你参考下,在目前来说,我看到别人的基本上也都差不多,标准完整让人满意没bug的没见过。