今天做了一个聊天用的面板,到是没用多长时间,就是API不熟,都是一边找资料一边在做,不过现在还是搞定了。把中间很多比较有意思的东西记录下来,以后也好看!
TextArea自动滚动的方法
首先增加事件监听
<mx:TextArea valueCommit="setScroll(event)"/>
如果TextArea是不可编辑的,就用上面的事件,如果是可以编辑的,就可以用change事件。
然后是方法:
private function setScroll(evt:FlexEvent):void{
var ta:BaseTextArea=evt.target as BaseTextArea;
ta.verticalScrollPosition=ta.maxVerticalScrollPosition;
}
关于TextArea中字体颜色的问题,主要还是TextArea的htmlText属性。只需要在要加入的字符串中添加html标签就可以了
<font color="#333333"></font>
当然也支持img标签,可以再聊天过程中添加表情进去。
最后说说TabNavigator初始化的问题。TabNavigator显示出来之后,并没有初始化完成,比如我一共有3个Tab,只有第一个能用,后面2个是不能用的,必须点击过去之后才能用
我的解决办法
<mx:TabNavigator x="10" y="67" width="390" height="329" id="tab">
<mx:Canvas label="t1" width="100%" height="100%" creationComplete = "tab.selectedIndex=1" >
<mx:TextArea valueCommit="setScroll(event)" x="0" y="0" width="388" height="296" />
</mx:Canvas>
<mx:Canvas label="t2" width="100%" height="100%" creationComplete = "tab.selectedIndex=2">
<mx:TextArea valueCommit="setScroll(event)" x="0" y="0" width="388" height="296" />
</mx:Canvas>
<mx:Canvas label="t3" width="100%" height="100%" creationComplete = "tab.selectedIndex=0" >
<mx:TextArea valueCommit="setScroll(event)" x="0" y="0" width="388" height="296" />
</mx:Canvas>
</mx:TabNavigator>
初始化的时候一个一个向后自动完成初始化,就不怕用的时候找不到对象了。