在好例子网,分享、交流、成长!
您当前所在位置:首页C# 开发实例C#语言基础 → 聊天室源码下载(ActionScript 3.0实现)

聊天室源码下载(ActionScript 3.0实现)

C#语言基础

下载此实例
  • 开发语言:C#
  • 实例大小:2.58M
  • 下载次数:17
  • 浏览次数:401
  • 发布时间:2016-11-16
  • 实例类别:C#语言基础
  • 发 布 人:person2018
  • 文件格式:.rar
  • 所需积分:2
 相关标签: 聊天

实例介绍

【实例简介】
【实例截图】

【核心代码】

package demo.chartRoom.ui
{
	import demo.chartRoom.serverApi.DataEvent;
	import demo.chartRoom.serverApi.IServerApi;
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	import org.aswing.ASColor;
	import org.aswing.ASFont;
	import org.aswing.AsWingConstants;
	import org.aswing.BorderLayout;
	import org.aswing.JButton;
	import org.aswing.JLabel;
	import org.aswing.JPanel;
	import org.aswing.JScrollPane;
	import org.aswing.JSplitPane;
	import org.aswing.JTextArea;
	import org.aswing.SoftBoxLayout;
	import org.aswing.geom.IntDimension;
	import org.aswing.geom.IntPoint;
	public class ChartRoom extends Sprite
	{
		private var upDown:JSplitPane//把界面划分为上下俩个区域
		private var leftRight:JSplitPane; //把聊天室上部分区域划分为左右两个区域
		private var allMsg_txt:JTextArea;//聊天历史文本框
		private var allMsg_panel:JScrollPane;//滚动聊天内容的容器
		private var users_panel:JScrollPane;//显示所有用户的面板
		private var msg_pan:JPanel;//消息发送区域
		private var msgText_panel:JScrollPane;//滚动消息内容的容器
	 	private var msg_txt:JTextArea;//消息内容文本框
		private var seletedUserLabel:JLabel;//当前被选中的用户标签
		private var selectedId:String;//被选中用户的ID
		private var userInner_panel:JPanel;//用户标签容器
		private var send_btn:JButton;//发送按钮
		private var onLineUserCount:uint=0;//当前在线人数
		 
		 
		private var _srvApi:IServerApi;
		public function set srvApi(api:IServerApi):void//设置通信与控制对象
		{
			_srvApi=api;
			//添加数据事件
			_srvApi.addEventListener(DataEvent.ALL_DATA_ARRIVE,onAllDataArrive);	
		}
		public function ChartRoom()
		{
			//创建上下分栏控件
			upDown=new JSplitPane();
			upDown.setOrientation(AsWingConstants.VERTICAL);
			upDown.setSize(new IntDimension(800, 600));
			upDown.setDividerLocation(140);
			this.addChild(upDown);
			//创建左右分栏控件
			leftRight=new JSplitPane();
			leftRight.setOrientation(AsWingConstants.HORIZONTAL);
			leftRight.setSize(new IntDimension(800, 300));
			leftRight.setDividerLocation(300);
			upDown.append(leftRight,JSplitPane.LEFT);
			//创建历史消息显示的区域及控件
			allMsg_panel=new JScrollPane();
		 	allMsg_txt=new JTextArea("");
		 	allMsg_panel.append(allMsg_txt,BorderLayout.CENTER)
		 	leftRight.append(allMsg_panel,JSplitPane.LEFT);	 	
		 	//创建登录用户显示区域
		 	users_panel=new JScrollPane();
		 	userInner_panel=new JPanel();
		 	var layout:SoftBoxLayout=new SoftBoxLayout();
		 	userInner_panel.setLayout(layout);
		 	layout.setAxis(AsWingConstants.VERTICAL);
		 	users_panel.append(userInner_panel);
		 	leftRight.append(users_panel,JSplitPane.RIGHT)
		 	//创建消息发送区域
		 	msg_pan=new JPanel();
		 	var blayout:BorderLayout=new BorderLayout(5,5);
		 	msg_pan.setLayout(blayout);
		 	upDown.append(msg_pan,JSplitPane.RIGHT); 
		 	msgText_panel=new JScrollPane();
		 	msg_txt=new JTextArea();//创建消息发送框
		 	msgText_panel.append(msg_txt);
		 	msg_pan.append(msgText_panel,BorderLayout.CENTER);
			send_btn = new JButton();//创建消息发送按钮
			send_btn.setLocation(new IntPoint(300, 0));
			send_btn.setSize(new IntDimension(104, 400));
			send_btn.setText("            发送            ");
			msg_pan.append(send_btn,BorderLayout.EAST);
			send_btn.addEventListener(MouseEvent.CLICK,send);
			onLineUserCount=0;//设置当前在线人数为0
		}
		//鼠标移到用户标签上的效果
		private function onOver(e:MouseEvent):void
		{
			  var lb:JLabel=e.target as JLabel;
			  
			  if(seletedUserLabel!=null)
			  {
			  		if(lb==seletedUserLabel) return;
			  }
			  lb.setForeground(new ASColor(0xff6600));//设置标签的文字颜色
		}
		//用户标签选中效果
		private function onSele(e:MouseEvent):void
		{
			  if(seletedUserLabel!=null)
			  {
			  		//设置取消选中的效果
			  		seletedUserLabel.setForeground(new ASColor(0x000000));
			  		seletedUserLabel.setFont(new ASFont("宋体",12,false));
			  }
			  var lb:JLabel=e.target as JLabel;
			  //设置选中效果
			  lb.setForeground(new ASColor(0xff0000));
			  lb.setFont(new ASFont("宋体",12,true));
			  seletedUserLabel=lb;//设置选中标签
			  selectedId=seletedUserLabel.getName();
		}
		//鼠标移出用户标签的效果
		private function onOut(e:MouseEvent):void
		{
			  var lb:JLabel=e.target as JLabel;
			  if(seletedUserLabel!=null)
			  {
			  		if(lb==seletedUserLabel) return;
			  }
			  lb.setForeground(new ASColor(0x0));//设置是表移出时的文字颜色
		}
		public function send(e:MouseEvent):void//消息发送
		{
			if(seletedUserLabel==null)//如果没有选中的人,则发送给所有人
			{
			 	_srvApi.send("所有人",msg_txt.getText());//对所有人说
			}
			else
			{
				_srvApi.send(seletedUserLabel.getText(),msg_txt.getText());//对选中的某人说
			}
			send_btn.setEnabled(false);//禁用发送按钮
			msg_txt.setText("");
		}
		public function updataAllInfo(xml:XML):void//刷新界面
		{
			//更新历史消息内容
			var msgs:XMLList=xml.child("messages").children();
			allMsg_txt.setText("");
			for(var i:int=0;i<msgs.length();i  )
		 	{
		 		var msg:XML=msgs[i];
		 		allMsg_txt.appendText(msg.text() "\n\n");
		 	}
		 	allMsg_txt.scrollToBottomRight();
		 	//更新在线用户列表
		 	var users:XMLList=xml.child("users").children();
		 	userInner_panel.removeAll();
		 	var lb:JLabel=new JLabel("所有人");
	 		lb.setName("ALL");
	 		//设置鼠标事件
	 		lb.setHorizontalAlignment(AsWingConstants.LEFT);
	 		lb.addEventListener(MouseEvent.MOUSE_OVER,onOver);
	 		lb.addEventListener(MouseEvent.MOUSE_OUT,onOut);
	 		lb.addEventListener(MouseEvent.CLICK,onSele);
	 		userInner_panel.append(lb);
		 	for(i=0;i<users.length();i  )
		 	{
		 		var user:XML=users[i];
		 		lb=new JLabel(user.@name);
		 		lb.setName(user.@sid);
		 		//设置鼠标事件
		 		lb.setHorizontalAlignment(AsWingConstants.LEFT);
		 		lb.addEventListener(MouseEvent.MOUSE_OVER,onOver);
		 		lb.addEventListener(MouseEvent.MOUSE_OUT,onOut);
		 		lb.addEventListener(MouseEvent.CLICK,onSele);
		 		userInner_panel.append(lb);
		 		if(selectedId==lb.getName())
		 		{
		 			seletedUserLabel=lb;//获得选中的标签
		 		}
		 		onLineUserCount=i 1;//增加在线人数
		 	}
		 	send_btn.setEnabled(true);
		 	if(seletedUserLabel!=null)
		 	{
		 		//设置选中时的文字样式
		 		seletedUserLabel.setForeground(new ASColor(0xff0000));
			  	seletedUserLabel.setFont(new ASFont("宋体",12,true)); 
		 	}
		}
		public function onAllDataArrive(e:DataEvent):void //刷新聊天
		{
			 updataAllInfo(e.data);//更新借卖弄
		}
	}
}

标签: 聊天

实例下载地址

聊天室源码下载(ActionScript 3.0实现)

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

第 1 楼 lmb 发表于: 2016-11-18 16:35 01
觉得挺好的

支持(0) 盖楼(回复)

第 2 楼 lmb 发表于: 2016-11-18 16:35 04
觉得挺好的

支持(0) 盖楼(回复)

发表评论

(您的评论需要经过审核才能显示)

查看所有2条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警