zoukankan      html  css  js  c++  java
  • FMS Dev Guide学习笔记(SharedBall)

    一、开发交互式的媒体应用程序
    1.共享对象(Shared objects)

    ----SharedBall example

        这个SharedBall example创建了一个临时的远程共享对象.类似于多人游戏.当一个用户移动这个球,其他用户都能看得到.

        我将这个例子改成了Flex版本的了,贴上代码先:

    1.新建Flex项目SharedBall

    2.新建ActionScript文件:MyBall.as

    package {
    import mx.core.UIComponent;

    public class MyBall extends UIComponent {
       public function MyBall() {
        init();
       }
       public function init():void {
        graphics.beginFill(0xff0000);
        graphics.drawCircle(0, 0, 20);
        graphics.endFill();
       }
    }
    }

    3.初始化应用程序

        private function initApp():void {
         mb = new MyBall();
         mb.x = 200;
         mb.y = 200;
         addChild(mb);
         nc = new NetConnection();
         addEventListeners();
         nc.connect("rtmp://localhost/SharedBall");
        }

    4.添加事件监听器

        private function addEventListeners():void {
         nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
         mb.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
         mb.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
        }

    5.当连接服务器成功的时候在netStatus handler中创建远程共享对象

         switch(event.info.code) {
          case "NetConnection.Connect.Success" :
           trace("Connect Success");
           so = SharedObject.getRemote("ballPosition", nc.uri, false);
           so.connect(nc);
           so.addEventListener(SyncEvent.SYNC, syncHandler);
           break;
         }

    6.当一个用户移动小球的时候,使用setProperty()方法在远程共享对象里面改变球的位置:

        private function onMouseMove(event:MouseEvent):void {
         mb.x = mouseX;
         mb.y = mouseY;
         if(so != null) {
          so.setProperty("x", mb.x);
          so.setProperty("y", mb.y);
         }
        }

        当远程共享对象被更新的时候,它就会发出sync事件

    7.写一个sync事件的handler处理更新所有客户端小球位置

        private function syncHandler(event:SyncEvent):void {
         mb.x = so.data.x;
         mb.y = so.data.y;
        }

    打开程序运行多个浏览器,当拖动其中一个小球的时候,其它小球都会改变位置。

  • 相关阅读:
    软件工程最后一次作业
    软件工程第四次作业
    软件工程第三次作业
    软件工程第一次作业
    软件工程第二次作业
    软件工程第一次作业
    2020年最后一次软工作业
    2020年第四次软工作业(第二次结对作业)
    2020年第三次软工作业(第一次结对作业)
    2020年第二次软工作业
  • 原文地址:https://www.cnblogs.com/chenhaib/p/3469690.html
Copyright © 2011-2022 走看看