共享对象
$"QåúÖ www.flash-bbs.comÁí}D[¡[|$"QåúÖ www.flash-bbs.comÁí}D[¡[|共享对象,说英文大概你比较熟ha~ SharedObject, 恩flash中有两种sharedObject,local sharedobject (LSO) 和 remote sharedobject (RSO),也就是本地共享和远程共享,偶们讨论远程的,不过之前你最好先去了解了解本地的,对你有好处...
$"QåúÖ www.flash-bbs.comÁí}D[¡[|$"QåúÖ www.flash-bbs.comÁí}D[¡[|RSO在服务器端是以文件形式存储的,扩展名是.fso,为什么不是.rso?....我也想问呢- -b
$"QåúÖ www.flash-bbs.comÁí}D[¡[|$"QåúÖ www.flash-bbs.comÁí}D[¡[|代码$"QåúÖ www.flash-bbs.comÁí}D[¡[|$"QåúÖ www.flash-bbs.comÁí}D[¡[|初始化RSO需要先与服务器建立一个连接,续上节 ,我们先与服务器建立一个连接
$"QåúÖ www.flash-bbs.comÁí}D[¡[|$"QåúÖ www.flash-bbs.comÁí}D[¡[|//初始化远程共享要利用nc通道
$"QåúÖ www.flash-bbs.comÁí}D[¡[|var myNC = new NetConnection();
$"QåúÖ www.flash-bbs.comÁí}D[¡[|myNC.onStatus = function(info) {
$"QåúÖ www.flash-bbs.comÁí}D[¡[|if (info.code == "NetConnection.Connect.Success") {
$"QåúÖ www.flash-bbs.comÁí}D[¡[|//成功则利用此nc初始化rso
$"QåúÖ www.flash-bbs.comÁí}D[¡[|initRSO(this);
$"QåúÖ www.flash-bbs.comÁí}D[¡[|}
$"QåúÖ www.flash-bbs.comÁí}D[¡[|};
$"QåúÖ www.flash-bbs.comÁí}D[¡[|$"QåúÖ www.flash-bbs.comÁí}D[¡[|跟以前的代码一样,只是连接成功后多了一个initRSO()函数,看不懂的回去重头再看一下。。。
$"QåúÖ www.flash-bbs.comÁí}D[¡[|$"QåúÖ www.flash-bbs.comÁí}D[¡[|下边是initRSO了,跟连接结构差不多
$"QåúÖ www.flash-bbs.comÁí}D[¡[|function initRSO(NC) {
$"QåúÖ www.flash-bbs.comÁí}D[¡[|//在服务器上建立myRSO.fso文件,第2个参数指定nc通道,第3个指定文件在服务器上持久保留,即使服务器重启了,还是有
$"QåúÖ www.flash-bbs.comÁí}D[¡[|my_rso = SharedObject.getRemote("myRSO", NC.uri, true);
$"QåúÖ www.flash-bbs.comÁí}D[¡[|my_rso.onSync = function(list) {
$"QåúÖ www.flash-bbs.comÁí}D[¡[|//list 是一个对象数组 ,类似这种[{name:"x",code:"success"},{name:"y",code:"success"}] ,下边会详细讲
$"QåúÖ www.flash-bbs.comÁí}D[¡[|//初始成功
$"QåúÖ www.flash-bbs.comÁí}D[¡[|};
$"QåúÖ www.flash-bbs.comÁí}D[¡[|my_rso.connect(NC); //连接
$"QåúÖ www.flash-bbs.comÁí}D[¡[|}
$"QåúÖ www.flash-bbs.comÁí}D[¡[|$"QåúÖ www.flash-bbs.comÁí}D[¡[|了解了吧,看一个完整的例子
$"QåúÖ www.flash-bbs.comÁí}D[¡[|$"QåúÖ www.flash-bbs.comÁí}D[¡[|画一个mc起名叫mc,在第一帧上写代码,
$"QåúÖ www.flash-bbs.comÁí}D[¡[|//初始化远程共享要利用nc通道
$"QåúÖ www.flash-bbs.comÁí}D[¡[|var myNC = new NetConnection();
$"QåúÖ www.flash-bbs.comÁí}D[¡[|myNC.onStatus = function(info) {
$"QåúÖ www.flash-bbs.comÁí}D[¡[|if (info.code == "NetConnection.Connect.Success") {
$"QåúÖ www.flash-bbs.comÁí}D[¡[|//成功则利用此nc初始化rso
$"QåúÖ www.flash-bbs.comÁí}D[¡[|initRSO(this);
$"QåúÖ www.flash-bbs.comÁí}D[¡[|}
$"QåúÖ www.flash-bbs.comÁí}D[¡[|};
$"QåúÖ www.flash-bbs.comÁí}D[¡[|myNC.connect("rtmp://localhost/test1"); //不会不知道要建test1文件夹吧
$"QåúÖ www.flash-bbs.comÁí}D[¡[|$"QåúÖ www.flash-bbs.comÁí}D[¡[|function initRSO(NC) {
$"QåúÖ www.flash-bbs.comÁí}D[¡[|my_rso = SharedObject.getRemote("myRSO", NC.uri, true);
$"QåúÖ www.flash-bbs.comÁí}D[¡[|//onSync是回调函数,每次服务器端so数据有改变,这里都会有反映!这里的意思每当有人按鼠标,这里都会有反映,我们读取so的data下的值就可以了
$"QåúÖ www.flash-bbs.comÁí}D[¡[|my_rso.onSync = function() {
$"QåúÖ www.flash-bbs.comÁí}D[¡[|mc._x=this.data.x
$"QåúÖ www.flash-bbs.comÁí}D[¡[|mc._y=this.data.y
$"QåúÖ www.flash-bbs.comÁí}D[¡[|};
$"QåúÖ www.flash-bbs.comÁí}D[¡[|my_rso.connect(NC);
$"QåúÖ www.flash-bbs.comÁí}D[¡[|}
$"QåúÖ www.flash-bbs.comÁí}D[¡[|$"QåúÖ www.flash-bbs.comÁí}D[¡[|onMouseDown = function () {
$"QåúÖ www.flash-bbs.comÁí}D[¡[|//改变so的数据
$"QåúÖ www.flash-bbs.comÁí}D[¡[|my_rso.data.x = _root._xmouse
$"QåúÖ www.flash-bbs.comÁí}D[¡[|my_rso.data.y = _root._ymouse
$"QåúÖ www.flash-bbs.comÁí}D[¡[|};
$"QåúÖ www.flash-bbs.comÁí}D[¡[|$"QåúÖ www.flash-bbs.comÁí}D[¡[|然后发布设置中设置
只允许网络,发布看看
$"QåúÖ www.flash-bbs.comÁí}D[¡[|$"QåúÖ www.flash-bbs.comÁí}D[¡[|现在你可以开多个播放器窗口,点其中一个,看看其他的窗口变不变
$"QåúÖ www.flash-bbs.comÁí}D[¡[|$"QåúÖ www.flash-bbs.comÁí}D[¡[|源文件:
http://www.nshen.net/blog/attachments/200601/11_145320_test3.fla $"QåúÖ www.flash-bbs.comÁí}D[¡[|$"QåúÖ www.flash-bbs.comÁí}D[¡[|连接流程$"QåúÖ www.flash-bbs.comÁí}D[¡[|$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|$"QåúÖ www.flash-bbs.comÁí}D[¡[|$"QåúÖ www.flash-bbs.comÁí}D[¡[|再写一个,看起来很像在做网游~
$"QåúÖ www.flash-bbs.comÁí}D[¡[|mync = new NetConnection();
$"QåúÖ www.flash-bbs.comÁí}D[¡[|mync.onStatus = function(info) {
$"QåúÖ www.flash-bbs.comÁí}D[¡[|if (info.code == "NetConnection.Connect.Success") {
$"QåúÖ www.flash-bbs.comÁí}D[¡[|initRSO();
$"QåúÖ www.flash-bbs.comÁí}D[¡[|}
$"QåúÖ www.flash-bbs.comÁí}D[¡[|if (info.code == "NetConnection.Connect.Closed") {
$"QåúÖ www.flash-bbs.comÁí}D[¡[|trace("关闭");
$"QåúÖ www.flash-bbs.comÁí}D[¡[|}
$"QåúÖ www.flash-bbs.comÁí}D[¡[|};
$"QåúÖ www.flash-bbs.comÁí}D[¡[|$"QåúÖ www.flash-bbs.comÁí}D[¡[|function initRSO() {
$"QåúÖ www.flash-bbs.comÁí}D[¡[|my_RSO = SharedObject.getRemote("myRSO", mync.uri, true);
$"QåúÖ www.flash-bbs.comÁí}D[¡[|trace(my_RSO);
$"QåúÖ www.flash-bbs.comÁí}D[¡[|my_RSO.onSync = function() {
$"QåúÖ www.flash-bbs.comÁí}D[¡[|mc._x = this.data.hero.x;
$"QåúÖ www.flash-bbs.comÁí}D[¡[|};
$"QåúÖ www.flash-bbs.comÁí}D[¡[|my_RSO.connect(mync);
$"QåúÖ www.flash-bbs.comÁí}D[¡[|}
$"QåúÖ www.flash-bbs.comÁí}D[¡[|mync.connect("rtmp:/my_app/test1");
$"QåúÖ www.flash-bbs.comÁí}D[¡[|$"QåúÖ www.flash-bbs.comÁí}D[¡[|mc.onEnterFrame = function() {
$"QåúÖ www.flash-bbs.comÁí}D[¡[|my_RSO.data.hero.x = this._x;
$"QåúÖ www.flash-bbs.comÁí}D[¡[|if (Key.isDown(Key.LEFT)) {
$"QåúÖ www.flash-bbs.comÁí}D[¡[|this._x -= 5;
$"QåúÖ www.flash-bbs.comÁí}D[¡[|}
$"QåúÖ www.flash-bbs.comÁí}D[¡[|if (Key.isDown(Key.RIGHT)) {
$"QåúÖ www.flash-bbs.comÁí}D[¡[|this._x += 5;
$"QåúÖ www.flash-bbs.comÁí}D[¡[|}
$"QåúÖ www.flash-bbs.comÁí}D[¡[|};
$"QåúÖ www.flash-bbs.comÁí}D[¡[|$"QåúÖ www.flash-bbs.comÁí}D[¡[|写个简单的聊天室 $"QåúÖ www.flash-bbs.comÁí}D[¡[|$"QåúÖ www.flash-bbs.comÁí}D[¡[|很简单的东西,基本上就是共享对象的运用,没有用到服务器端,大型聊天室可能不会这么做,这个只适用于初学者 :/
$"QåúÖ www.flash-bbs.comÁí}D[¡[|$"QåúÖ www.flash-bbs.comÁí}D[¡[|注释很详细,不说多了,可以直接下载原文件
$"QåúÖ www.flash-bbs.comÁí}D[¡[|$"QåúÖ www.flash-bbs.comÁí}D[¡[|http://www.nshen.net/blog/attachments/200602/smallchat.fla $"QåúÖ www.flash-bbs.comÁí}D[¡[|$"QåúÖ www.flash-bbs.comÁí}D[¡[|代码: $"QåúÖ www.flash-bbs.comÁí}D[¡[|//用户名
$"QåúÖ www.flash-bbs.comÁí}D[¡[|myname="游客"
$"QåúÖ www.flash-bbs.comÁí}D[¡[|//建立连接
$"QåúÖ www.flash-bbs.comÁí}D[¡[|var myNC = new NetConnection();
$"QåúÖ www.flash-bbs.comÁí}D[¡[|myNC.connect("rtmp://localhost/smallchat");
$"QåúÖ www.flash-bbs.comÁí}D[¡[|$"QåúÖ www.flash-bbs.comÁí}D[¡[|//搞到rso
$"QåúÖ www.flash-bbs.comÁí}D[¡[|Talk_SO = SharedObject.getRemote("Talk", myNC.uri, false);
$"QåúÖ www.flash-bbs.comÁí}D[¡[|Talk_SO.onSync = function() {
$"QåúÖ www.flash-bbs.comÁí}D[¡[|//先把聊天文本框清空
$"QåúÖ www.flash-bbs.comÁí}D[¡[|remoteText.text = "";
$"QåúÖ www.flash-bbs.comÁí}D[¡[|//把聊天列表显示出来,talklist的格式就是[谁谁说:啊啊啊,谁谁谁说:2222]
$"QåúÖ www.flash-bbs.comÁí}D[¡[|var t = this.data.talklist;
$"QåúÖ www.flash-bbs.comÁí}D[¡[|for (var i = 0; i<t.length; i++) {
$"QåúÖ www.flash-bbs.comÁí}D[¡[|writeln(t
);$"QåúÖ www.flash-bbs.comÁí}D[¡[|
}$"QåúÖ www.flash-bbs.comÁí}D[¡[|
};$"QåúÖ www.flash-bbs.comÁí}D[¡[|
Talk_SO.connect(myNC);$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
//发消息函数$"QåúÖ www.flash-bbs.comÁí}D[¡[|
function post() {$"QåúÖ www.flash-bbs.comÁí}D[¡[|
//如果不存在talklist就建一个,这里没用server端,是个技巧$"QåúÖ www.flash-bbs.comÁí}D[¡[|
if (Talk_SO.data.talklist[0] == undefined) {$"QåúÖ www.flash-bbs.comÁí}D[¡[|
Talk_SO.data.talklist = [];$"QåúÖ www.flash-bbs.comÁí}D[¡[|
}$"QåúÖ www.flash-bbs.comÁí}D[¡[|
//限制数组长度,是个队列。保证里边有5条消息,当然也可以更多,但如果没有限制,flash会垮的$"QåúÖ www.flash-bbs.comÁí}D[¡[|
if (Talk_SO.data.talklist.length>=5) {$"QåúÖ www.flash-bbs.comÁí}D[¡[|
Talk_SO.data.talklist.shift();$"QåúÖ www.flash-bbs.comÁí}D[¡[|
}$"QåúÖ www.flash-bbs.comÁí}D[¡[|
//把消息装到so里$"QåúÖ www.flash-bbs.comÁí}D[¡[|
Talk_SO.data.talklist.push(myname+"说:"+meText.text);$"QåúÖ www.flash-bbs.comÁí}D[¡[|
meText.text = "";$"QåúÖ www.flash-bbs.comÁí}D[¡[|
}$"QåúÖ www.flash-bbs.comÁí}D[¡[|
//文字显示,换行$"QåúÖ www.flash-bbs.comÁí}D[¡[|
function writeln(msg) {$"QåúÖ www.flash-bbs.comÁí}D[¡[|
remoteText.text += msg+"\n";$"QåúÖ www.flash-bbs.comÁí}D[¡[|
remoteText.vPosition =remoteText.maxVPosition$"QåúÖ www.flash-bbs.comÁí}D[¡[|
}$"QåúÖ www.flash-bbs.comÁí}D[¡[|
//-----------------------------------------------$"QåúÖ www.flash-bbs.comÁí}D[¡[|
Btn.onRelease = function() {$"QåúÖ www.flash-bbs.comÁí}D[¡[|
post();$"QåúÖ www.flash-bbs.comÁí}D[¡[|
};$"QåúÖ www.flash-bbs.comÁí}D[¡[|
this.onKeyDown = function() {$"QåúÖ www.flash-bbs.comÁí}D[¡[|
if (Key.isDown(Key.ENTER)) {$"QåúÖ www.flash-bbs.comÁí}D[¡[|
post();$"QåúÖ www.flash-bbs.comÁí}D[¡[|
}$"QåúÖ www.flash-bbs.comÁí}D[¡[|
};$"QåúÖ www.flash-bbs.comÁí}D[¡[|
Key.addListener(this);$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
深入onSync $"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
onSync有个list参数,这个开始有些难度了。不想动脑的可以跳过没影响,只是以后写出的程序效率会低点 :($"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
看代码:$"QåúÖ www.flash-bbs.comÁí}D[¡[|
my_rso = SharedObject.getRemote("myRSO", NC.uri, true);$"QåúÖ www.flash-bbs.comÁí}D[¡[|
my_rso.onSync = function(list) {//.......};$"QåúÖ www.flash-bbs.comÁí}D[¡[|
my_rso.connect(NC); //连接$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
在onSync回调中我们可以知道我们的my_rso被改变了,但my_rso里具体什么改变了呢? 我们就要分析这个 list 参数 了$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
list参数其实是一个对象数组 ,首先它是一个数组,里边装了很多对象(Object),每一个对象都包括了SharedObject中一个插槽(slot)的改动信息。我暂时给他起名叫插槽信息对象。。。这名字太猥亵了。。但我就这么叫了。。$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
插槽信息对象包含两个属性,name 和 code,偶尔还会有个oldValue?我不太常用,不说它$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
name 描述被改变的属性名$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
code 描述该属性的改变方式 ,有可能为以下几种值:"success" , "change" , "delete" , "reject" , "clear" ,具体含义后边说$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
说白了这个插槽信息对象大概就是这么个样子:$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
{name:"x",code:"success"} $"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
表示x属性被修改成功$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
要得到这些插槽信息对象就要for in 这个list参数$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
for (var i in list) {$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
list 就是插槽信息对象$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
}$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
要分析具体so哪改变了,就是分析list,比如$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
if(list.code=="change") trace("list.name"+被+"change了")$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
if(list.code=="delete") trace("list.name"+被+"delete")$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
“change”是啥?“delete”是啥?$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
"success" , "change" , "delete" , "reject" , "clear" 具体含义:$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
success : 表示当前影片修改so的插槽获得了成功$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
change : 表示so的插槽被别人修改,或填加$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
也就是说,你修改so的某个属性成功了会收到 "success" ,与此同时其他影片会收到 "change"$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
reject : 拒绝修改$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
例如发生在两个或多个客户端同时要修改一个so的插槽,这时候fms会只让一个client修改,并返回"success" 其他的会收到"reject"$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
delete , clear : 这个好理解,一个是删除,一个是清空,看例子:$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
比如服务器端删除某个so$"QåúÖ www.flash-bbs.comÁí}D[¡[|
so = SharedObject.get("某个so");$"QåúÖ www.flash-bbs.comÁí}D[¡[|
so.lock( );$"QåúÖ www.flash-bbs.comÁí}D[¡[|
var names = so.getPropertyNames( );$"QåúÖ www.flash-bbs.comÁí}D[¡[|
for (i in names) {$"QåúÖ www.flash-bbs.comÁí}D[¡[|
so.setProperty(names, null);$"QåúÖ www.flash-bbs.comÁí}D[¡[|
}$"QåúÖ www.flash-bbs.comÁí}D[¡[|
so.unlock( );$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
这样client端会收到 若干个插槽信息对象,所有的code都为"delete",表示若干个item被删除$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
然而这样:$"QåúÖ www.flash-bbs.comÁí}D[¡[|
so = SharedObject.get("某个so");$"QåúÖ www.flash-bbs.comÁí}D[¡[|
so.clear( );$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
client端就只会收到一个插槽信息对象,code属性为“clear”。 $"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
client端与server端直接交互 $"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
看完了SO,看一下client与server端如何直接进行交互的 $"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
原文件在这里: $"QåúÖ www.flash-bbs.comÁí}D[¡[|
http://www.nshen.net/blog/attachments/200602/25_152648_csc.rar$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
1. 客户端呼叫服务器$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
fla: $"QåúÖ www.flash-bbs.comÁí}D[¡[|
//客户端呼叫server端msgfromclient函数,并将返回值trace出来$"QåúÖ www.flash-bbs.comÁí}D[¡[|
mync = new NetConnection();$"QåúÖ www.flash-bbs.comÁí}D[¡[|
mync.connect("rtmp://localhost/connect");$"QåúÖ www.flash-bbs.comÁí}D[¡[|
//返回值接收对象$"QåúÖ www.flash-bbs.comÁí}D[¡[|
var resObj = new Object();$"QåúÖ www.flash-bbs.comÁí}D[¡[|
resObj.onResult = function(val):Void {$"QåúÖ www.flash-bbs.comÁí}D[¡[|
trace("val"+val);$"QåúÖ www.flash-bbs.comÁí}D[¡[|
}; $"QåúÖ www.flash-bbs.comÁí}D[¡[|
/* $"QåúÖ www.flash-bbs.comÁí}D[¡[|
我们用mync去call服务器端的msgfromclient函数,resObj是返回接收对象,当服务器有返回值后,会自动直接调用这个对象的onResult处理函数,后边可以传递给server无数个参数,这里只传一个字符串 $"QåúÖ www.flash-bbs.comÁí}D[¡[|
*/$"QåúÖ www.flash-bbs.comÁí}D[¡[|
mync.call("msgfromclient", resObj, "第一个call");$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
服务器端代码是放在main.asc里的,你可以到你的application下的connect目录下建一个main.asc,写代码$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
main.asc: $"QåúÖ www.flash-bbs.comÁí}D[¡[|
//要把函数定义到Client上!!$"QåúÖ www.flash-bbs.comÁí}D[¡[|
application.onConnect = function(client) {$"QåúÖ www.flash-bbs.comÁí}D[¡[|
/* 在这里定义也可以,在Client.prototype里定义也是可以的 $"QåúÖ www.flash-bbs.comÁí}D[¡[|
client.msgfromclient=function(what){$"QåúÖ www.flash-bbs.comÁí}D[¡[|
trace(what+"进来了")$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
var aa="呼叫成功并返回结果"$"QåúÖ www.flash-bbs.comÁí}D[¡[|
return aa$"QåúÖ www.flash-bbs.comÁí}D[¡[|
}$"QåúÖ www.flash-bbs.comÁí}D[¡[|
*/$"QåúÖ www.flash-bbs.comÁí}D[¡[|
application.acceptConnection(client);$"QåúÖ www.flash-bbs.comÁí}D[¡[|
};$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
Client.prototype.msgfromclient=function(what){$"QåúÖ www.flash-bbs.comÁí}D[¡[|
trace(what+"进来了")$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
var aa="呼叫成功并返回结果"$"QåúÖ www.flash-bbs.comÁí}D[¡[|
return aa$"QåúÖ www.flash-bbs.comÁí}D[¡[|
$"QåúÖ www.flash-bbs.comÁí}D[¡[|
}$"QåúÖ www.flash-bbs.comÁí}D[¡[|