最近做项目需要在air下面开发聊天功能,实现表情,图片,文件的发送和接受,起初用到的textarea由于安全沙箱问题以及图文混排的困难决定用自定义控件,研究了一下RichTextField控件,有些心得。
源码:
1.首先遇到的就是添加到Flex中的问题,控件为Sprite类型,这就需要借助mx.core.UIComponent,先将Sprite类型控件添加到UIComponent中,再将UIComponent容器添加到相应的Flex容器中。
例如:
http://www.cnblogs.com/jiahuafu/archive/2009/03/20/1417679.html
2.刚刚解决的问题,示例中用到了UIScrollBar控件,这是flash中的滚动条控件,当添加到flex中之后,调用控件的update()方法,提示出错,fl.event 无法转换成 flex.event,找到解决方案如下:
但是仍无法解决,最后干脆将UIScrollBar换成了flex中的VScrollBar控件实现。找出RichTextField控件中的textfield的一些属性来作绑定。如:textfield.maxScrollV,textfield.scrollV等。VscrollBar没有scrollTarget属性,所以需要在事件中手动绑定最大值和当前滚动位置。
3.修改了控件中的方法。