论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash AS编程教程
Tag:2.0,3.0菜鸟,游戏,,cs,技巧,源码,,文本,文字,函数,音乐,随机,拖拽,asp,access,xml,mc,视频教程

Blue框架的基本教程二:客户端调用服务器的方法

文章类别:Flash AS编程 | 发表日期:2008-10-6 18:07:18


上篇说到客户端连接和端开连接,服务器有什么事件,那么我们先做就来看看客户端调用服务器上的方法
客户端连接服务器的代码这里就不在重复了,只说调用服务器的代码
定义个接受服务器返回结果的响应事件对象
var receice:Object = new Object();
//服务器返回结果时调用该方法
receice.onResult = function(num:Number)
{
    trace("num:" + num);
}
//远程调用方法失败时响应该方法
receice.onFault = function(msg:String)
{
    trace("fail:" + msg);
}

//呼叫服务器的方法
function callServerMethod()
{
    //对象
    var obj:Object = new Object();
    obj.name = "objName";
    obj.num = 50;
    //数组
    var ary:Array = [1,4,7,16,98,100];
        //把参数发送到服务器上去,第一个为服务器上的一个类实例的标示
        //第二参数是要调用的方法名,第三个是要接受服务器返回结果的对象
        //往后就是要传到服务器的参数了,注意,参数类型顺序一定要和服务器方法的参数一致
    netConnect.call("services","callParams",receice,"中文",23);
}

//注意,记得在连接服务器成功后。再调用这个callServerMethod()函数就可以了

接着再来看服务端的代码,首先是要被客户端调用的对象
ReceiveClientCall.java
public class ReceiveClientCall
{
    public double callParams(String name, double age)
    {
        System.out.println("客户端传过来的name:" + name);
        System.out.println("客户端传过来的age:" + age);

        
        return 100;
    }
}

很简单,就定义了一个callParams方法以及两个参数,对应客户端的
netConnect.call("services","callParams",receice,"中文",23);
接着就可以看控制台是否打印出客户端传过去的数据。

就这样写一个类就可以被客户端调用了吗?答案是不行的,我们还必须做一些事,那就是告诉服务器,有这么一个对象可以被客户端调用
那么看回MainFrame.java这个类的代码
比较一下之前,就可以发现多了一行代码

import org.sujun.blue.net.Server;
import org.sujun.blue.global.Application;

public class MainFrame 
{
    public static void main(String[] args)
    {
        //注册响应客户端连接和端开处理类
        Application.addStartEndListenter(new StartAndEnd());
               //注册被客户端调用的对象
        Application.regeditClass("services", ReceiveClientCall.class);
        Server ser = new Server();
        //设置端口
        ser.setPort(5588);
        //启动服务
        ser.startServer();
    }
}

仔细一看,就是多了这行代码
 //注册被客户端调用的对象
Application.regeditClass("services", ReceiveClientCall.class);
第一个参数是被该对象命个名,即是被客户端调用的称号,第二个就是一个Class对象啦

恩,做完这些步骤,就可以去运行服务器看效果啦
(其实我们还可以传对象,数组等等的)

源代码下载:例子代码
视频教程列表
文章教程搜索
 
Flash AS推荐教程
Flash AS热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058