选择显示字体大小

flash mx 编程深层次应用-网络连线游戏(3)

7.2 游戏区(2)

    

下面是对应的sit部分的java代码:

if(cmd.equals(this.cmd_sit)) {

    if(param != null) {

        param = param.trim();

        if( param.indexof(" ") != -1) {

            string desk_name = param.substring(0, param.indexof(" "));

            param = param.substring(param.indexof(" "));

            param = param.trim();

            string chessman_status = param.substring(0,param.indexof(" "));

            string  player_name = param.substring(param.indexof(" "));

            player_name = player_name.trim();

            chessman_status = chessman_status.trim();

            user.deskname = desk_name;

          user.place = chessman_status;

            if (chessman_status.equals("stand_up")) {

               user.deskname = null;

               user.place = null;

               user.play_status = null;

            }

       // 由于是广播,所以自己也会收到一个坐下的命令,所以自己就不发给自己了

            user.manager.notifyall(packmsg(this.m_sit, desk_name+":" + chessman_status + ":" + player_name,"" ));

        }

    }

}

服务器发一条信息,是如何收到,然后如何动作的呢?请看下面的部分flash代码:

function onxml_receive(x) {

    if (x == null) {

             return;

    }

    var e = x.firstchild;

    if (e == null) {

             return;

    } else if (e.nodename == "sit") {

             trace("----sit----");

             _root.sit_down(e.attributes.value);

    }

……

这里的onxml_receive程序就是前面说到的接收信息的主处理程序。很明显,这个在收到<sit value="6:stand_up:dongua" />串后,就会把它分解成一个结构型的内容,节点名就叫:sit,其属性值e.attributes.value等于"6:stand_up:dongua",请看这里调用的坐下的子程序:

function sit_down(str) {

    var place = 0, pre, now;

    var player = new array(3);

   //把这个字符串分成三个部分

    player = str.split(":");

   //如果是自己收到自己坐下的信息就不做任何处理

    if (player[2] != _root.nickname) {

             set_sit(player);

             // 如果自己坐在他的对面就开始游戏,定为左边先走

       if (player[1] == "left" && _root.player_right[player[0]] == _root.nickname) {

                      // 表示自己坐在右边,拿蓝棋,后走

                      _root.i_run = false;

                      _root.my_logo = _root.second_play;

                      _root.your_logo = _root.first_play;

                      _root.rival = player[2];

                      _root.now_play_table = number(player[0]);

           //进入开始下棋的阶段

                      _root.init_play();

                      _root.gotoandplay("begin_play");

             }

      if (player[1] == "right" && _root.player_left[player[0]] == _root.nickname) {

                      // 表示自己坐在左边,拿红棋,先走

                      _root.i_run = true;

                      _root.my_logo = _root.first_play;

                      _root.your_logo = _root.second_play;

                      _root.rival = player[2];

                      _root.now_play_table = number(player[0]);

            //进入开始下棋的阶段

                      _root.init_play();

                      _root.gotoandplay("begin_play");

             }

    }

}

function set_sit(arr) {

    if (arr[0] != "null") {

             var place = number(arr[0]);

             var obj_place = place-_root.objtabledisplay.table_begin+1;

       //如果起立就清空对应棋盘对应位置的名字

             if (arr[1] == "stand_up") {

                      if (_root.player_left[place] == arr[2]) {

                                _root.objtabledisplay["table_"+obj_place].player_left = "";

                                _root.player_left[place] = "";

                      } else {

                                _root.objtabledisplay["table_"+obj_place].player_right = "";

                                _root.player_right[place] = "";

                      }

             }

       //如果坐左边就修改对应棋盘左边的内容

             if (arr[1] == "left") {

                      _root.objtabledisplay["table_"+obj_place].player_left = arr[2];

                      _root.player_left[place] = arr[2];

             }

       //如果坐右边就修改对应棋盘右边的内容

             if (arr[1] == "right") {

                      _root.objtabledisplay["table_"+obj_place].player_right = arr[2];

                      _root.player_right[place] = arr[2];

             }

    }

}

你是不是有点看晕了?没有办法,编程序就是这样,一定要弄清楚哪些是java代码,哪些是flash代码,这两种代码看上去很相像。或者你会问为什么要一会用java代码一会用flash代码,笔者认为只有这样讲读者才会弄明白游戏到底是如何运行的。如果分开讲的话,可能会更加糊涂!好了,言归正传,下面就来说明上面的代码吧。

上面的代码是游戏坐下的程序,sit_down程序的核心分成下面几个部分:

&ouml;           如果收到的是我坐下的信息就不做任何处理。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons