我用flash做了个简单的聊天程序,由JAVA在Eclipse中完成服务器的功能,在flash中建立Socket连接实现和服务器之间的通信,我在flash中的建立了Socket对象,并添加了事件监听:var socket:Socket;
socket=new Socket(ip,port);
socket.addEventListener(Event.CONNECT,connectHandler); //连接上
socket.addEventListener(Event.CLOSE,closeHandler); //关闭时调用此函数另外我还为一个断开“连接”按钮和“断开”按钮添加了事件监听:bt_connect.addEventListener(MouseEvent.MOUSE_UP,connectSocket); //单击连接按钮
bt_close.addEventListener(MouseEvent.MOUSE_UP,closeSocket); //断开连接以上函数分别是:function closeSocket(e:Event):void{
if (socket.connected==true)
socket.close(); //如果是脸上的,则断开
showInfo("按钮关闭 "); //我的问题所在:就是这里断开之后closeHandler函数应该要响应CLOSE事件
//但是他却没有响应
}//与服务器断开之后的处理函数
function closeHandler(e:Event):void{
var str:String="已经和服务器断开";
trace("真没有响应啊"+str);
bt_connect.enabled=true;
bt_send.enabled=false;
bt_close.enabled=false; //同上
trace(bt_close.enabled);
showInfo(str);
}function connectHandler(e:Event):void{
clearInfo();
var str:String="已经接入服务器\n";
connected=true;
bt_connect.enabled=false; //连上之后不能在连接了
bt_close.enabled=true;
bt_send.enabled=true; //连接上之后发送和断开都可用了
showInfo(str);
}问题是这样的:当我点击“连接”时,能够正确连接上服务器,会触发连接上就事件:Event.CONNECT,从而调用函数
connectHandler,这里能够正确执行,但是当我点击“断开”时,执行了socket.close()语句,此时应该会触发Event.CLOSE
事件而调用closeHandler函数,但是程序始终不执行,我在JAVA服务器中也断开了Socket连接可是还是不能触发Event.CLOSE事件。高手支招啊,我们写代码的就是这样,一个小问题有时候也很让人纠结。
socket=new Socket(ip,port);
socket.addEventListener(Event.CONNECT,connectHandler); //连接上
socket.addEventListener(Event.CLOSE,closeHandler); //关闭时调用此函数另外我还为一个断开“连接”按钮和“断开”按钮添加了事件监听:bt_connect.addEventListener(MouseEvent.MOUSE_UP,connectSocket); //单击连接按钮
bt_close.addEventListener(MouseEvent.MOUSE_UP,closeSocket); //断开连接以上函数分别是:function closeSocket(e:Event):void{
if (socket.connected==true)
socket.close(); //如果是脸上的,则断开
showInfo("按钮关闭 "); //我的问题所在:就是这里断开之后closeHandler函数应该要响应CLOSE事件
//但是他却没有响应
}//与服务器断开之后的处理函数
function closeHandler(e:Event):void{
var str:String="已经和服务器断开";
trace("真没有响应啊"+str);
bt_connect.enabled=true;
bt_send.enabled=false;
bt_close.enabled=false; //同上
trace(bt_close.enabled);
showInfo(str);
}function connectHandler(e:Event):void{
clearInfo();
var str:String="已经接入服务器\n";
connected=true;
bt_connect.enabled=false; //连上之后不能在连接了
bt_close.enabled=true;
bt_send.enabled=true; //连接上之后发送和断开都可用了
showInfo(str);
}问题是这样的:当我点击“连接”时,能够正确连接上服务器,会触发连接上就事件:Event.CONNECT,从而调用函数
connectHandler,这里能够正确执行,但是当我点击“断开”时,执行了socket.close()语句,此时应该会触发Event.CLOSE
事件而调用closeHandler函数,但是程序始终不执行,我在JAVA服务器中也断开了Socket连接可是还是不能触发Event.CLOSE事件。高手支招啊,我们写代码的就是这样,一个小问题有时候也很让人纠结。
解决方案 »
- Map、Cookie、HttpSession这三者的区别?
- struts 动态ActionForm: DynaActionForm的配置问题 Resources cannot be null.
- hibernate报错 找了一天还是没解决 我快疯了 大侠们快来帮忙啊
- spring事物管理
- sax方式如何获得xml文件的元素、属性、文本
- 两年经验开发求学习java路线
- 一个关于jsp中使用xslt时的中文显示问题
- 急!急!急! 关于域认证的具体实现!!!!!
- 求think in java的中的包
- 新手提问~~为什么Date对象的getTime总返回一个值啊?
- java 替换文本文件中某一行的 数据 ,怎么做的
- webService!!!CXF+spring 访问数据库的相关
flash中的Socket调用close()方法是不会触发close事件的,只用服务器主动发起断开
才会触发.唉,就当是自娱自乐把。给自己顶一个就是因为自己是初学,这个知识点不知到,直接导致我被这个问题困扰 N 久,现在解决方
法却是如此匪夷所思,唉,学软件的不容易,学软件的人也不简单啊