<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initFun()" width="507" height="434">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Alert;
private var nc:NetConnection;
private var clientID:Number;
private var soChat:SharedObject;
private var arr:Array = new Array();
[Bindable]
private var con:ArrayCollection;
private function initFun():void
{
nc = new NetConnection();
nc.objectEncoding = flash.net.ObjectEncoding.AMF0;
nc.addEventListener(NetStatusEvent.NET_STATUS,statusHandler);
nc.connect( "rtmp://localhost/SOSample" );
//监听键盘回车键
application.addEventListener(KeyboardEvent.KEY_DOWN,sendKeyHandler);
}
private function statusHandler(event:NetStatusEvent):void
{
if(event.info.code == "NetConnection.Connect.Success"){
connectToChat();
}
}
private function connectToChat():void
{
soChat = SharedObject.getRemote( "wxwred5", nc.uri, true );
soChat.addEventListener( NetStatusEvent.NET_STATUS, netStatusHandler );
soChat.addEventListener( AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler );
soChat.addEventListener( SyncEvent.SYNC, sharedObjectSyncHandler );
soChat.client = this;
soChat.connect( nc );
soChat.send( "getName" );
}
public function getName():void
{
var msg:String=lTrim(rTrim(txtUser.text.valueOf()));
trace( "getName: " + txtUser.text );
if(msg.length==0){
Alert.show("禁止刷屏");
txtUser.text="";
}else{
soChat.setProperty("key",txtUser.text);
txtUser.text="";
}
}
public function newName(str:String):void
{
arr.push(str);
soChat.setProperty("arr",arr);
con = new ArrayCollection(arr);
}
private function sharedObjectSyncHandler( event:SyncEvent ):void
{
trace( "sharedObjectSyncHandler:code: " + event.changeList );
arr.push(event.target.data.key);
con = new ArrayCollection(arr);
}
private function netStatusHandler( event:NetStatusEvent ):void
{
trace( "netStatusHandler:code: " + event.info.code );
}
private function asyncErrorHandler( event:AsyncErrorEvent ):void
{
trace( "asyncErrorHandler:code: " + event.error );
}
private function sendKeyHandler(event:KeyboardEvent):void
{
//Enter 键
if(event.keyCode==13){
getName();
}
//监听组合键 Ctrl+Enter 键
if(event.keyCode==13&&event.ctrlKey){
Alert.show("监听组合键 Ctrl+Enter 键");
}
}
//去掉左空格
public function lTrim(str:String):String {
var regx:RegExp = /(^\s*)/g;
return str.substr(regx.exec(str)[0].toString().length);
}
//取得右空格
public function rTrim(str:String):String {
var regx:RegExp = /(\s*$)/g;
return str.substring(0, str.length - regx.exec(str)[0].toString().length);
}
]]>
</mx:Script>
<mx:Panel width="378" height="315" layout="absolute" y="50" x="70" title="聊天" fontSize="12">
<mx:TextInput id="txtUser" x="37" y="223" fontSize="12"/>
<mx:Button click="getName()" label="发送" x="220" y="223" fontSize="12"/>
<mx:List id="listView" height="203" dataProvider="{con}" width="237" x="37" y="10" fontFamily="Arial" fontSize="12" verticalScrollPolicy="on"></mx:List>
</mx:Panel>
</mx:Application>
分享到:
相关推荐
ShareObject,顾名思义共享对象,而通常意义上的共享,从B/S结构上来讲,无非是客户端(浏览器端)的共享和服务器端的共享了,不错,ShareObject刚好份演了这两种角色。而且ShareObject也是按此进行了两种分类,一类是LSO...
在不连接数据库的情况下,保存数据,并在下次打开SWF文件时依旧可以读取到以前写入的数据. 其他的可以照葫芦画瓢,都一个样的。
ShareObject 实例,通过此例就可以理解
Share object一般用来保存前来访问的用户的个人信息到用户的机器上。比如用户登陆过后保存他的名字,下次访问时自动显示,或者保存用户的个性化设置等等。
juv-rtmp-client shareobject连接,java版本rtmp的shareobject连接。可以实现java rtmp shareobject数据连接
ShareObject详解,相当于ShareObject帮助文档
仿造qq登陆功能写的 Flash提供的本地共享对象ShareObject是一种跨平台较好的方案,当然在客户端已经安装Flash Player的情况下。 ShareObject默认只能存储100Kb的数据,用户可
NULL 博文链接:https://ch-kexin.iteye.com/blog/1229696
智能卡应用防火墙与共享机制,智能卡应用防火墙与共享机制,智能卡应用防火墙与共享机制,智能卡应用防火墙与共享机制
flex + red5 开发聊天室,即时聊天采用 ShareObject.
如何利用Flash代码让Flash动画中的数据储存在电脑上。一般是利用Flash中的ShareObject代码来实现的。(下载的文件中有fla源文件,源文件中说明非常详细。)
shared Object对象相当强大,他提供了在多个客户端实时数据共享,并且可以存储在客户端或远程服务器。可以把本地共享对象比作cookies,把远程共享对象看作实时的数据传输设备。
AS3 SharedObject 本地通讯 小例子!以前很久的时候参考网上例子学习的!刚接触本地通讯的童鞋可以试试。
1、Powerbuilder9.0_8836的版本 2、采用API,支持串口信号事件 3、事件监听、读字符,写字符都是采用...4、多线程用的是PB的shareobject方法,不会crash。 5、内含虚拟串口工具和串口调试工具以及API串口相关说明文档。
使用AS2外部类库对ShareObject函数功能进行整合,可以直接创建对象对Flash Cookie进行读写.
1、Powerbuilder9.0_8836的版本 2、采用API,支持串口信号事件 3、事件监听、读字符,写字符都是采用的是多线程 4、多线程用的是PB的shareobject方法,不会crash。 5、内含虚拟串口工具和串口调试工具以及API串口...
6.5 新建一个Flex应用程序,测试连接 35 6.6 实际应用 37 7 Cairngrom框架 38 8 实例:Simple Note Management 40 8.1基本组件使用[Tree,datagrid,TitleWindow,ViewStack] 40 8.2读写XML 40 8.3读写ShareObject 40 8.4...
flash端报错统一处理,重力特效和商品图片加入购物车的动画效果,flex 渲染器,修改标题栏皮肤,ShareObject,State切换
Cookies.as ---------------------- shareObject类似cookies HtmCookies.as ---------------------- 真实cookies JavaScript.as ---------------------- javascript交互 ...