实现聊天窗口的功能,可以设置字体,字号 获得点击的玩家昵称,全部代码如下,俺不知道如何上传附件:)
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<s:layout>
<s:BasicLayout/>
</s:layout>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import flashx.textLayout.elements.ParagraphElement;
import flashx.textLayout.events.FlowElementMouseEvent;
private var idplayer:int = 0;
protected function button1_clickHandler(event:MouseEvent):void
{
// TODO Auto-generated method stub
var linkPar:ParagraphElement = new ParagraphElement();
var linkEl:LinkElement = new LinkElement();
var span1:SpanElement = new SpanElement();
span1.text = "Adobe " + idplayer++;
span1.color = "0xFF0000";
span1.fontSize = 24;
linkEl.addChild(span1);
linkPar.addChild(linkEl);
var span2:SpanElement = new SpanElement();
span2.text ="text text text";
span2.color = "0xFF00FF";
span2.fontSize = 20;
linkPar.addChild(span2);
textArea.textFlow.addChild(linkPar);
linkEl.addEventListener(FlowElementMouseEvent.CLICK,linkClickHandler);
textArea.textFlow.flowComposer.updateAllControllers();
// 使拖动条拖到最底
textArea.validateNow();
textArea.scroller.verticalScrollBar.value =
textArea.scroller.verticalScrollBar.maxHeight;
}
private function linkClickHandler(event:FlowElementMouseEvent):void
{
trace(event.flowElement.getText());
lab.text = "人物昵称:" + event.flowElement.getText();
}
]]>
</fx:Script>
<s:Button click="button1_clickHandler(event)" x="200" label="发送" />
<!--关键点:需要设置textArea.editable = false; 如果没有 <s:a></s:a> 点击获取玩家昵称也不行!!!-->
<s:TextArea x="400" editable="false" id="textArea" >
<s:content>
this is <s:span color="0xFF0000">
html text
</s:span>
<s:a click="linkClickHandler(event)" >
<s:span color="0x00FF00">
link text
</s:span>
</s:a>
</s:content>
</s:TextArea>
<s:Label id="lab" x="200" y="100" />
</s:Application>