一、开发交互式的媒体应用程序
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;
    }

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

FMS Dev Guide学习笔记(SharedBall)的更多相关文章

  1. FMS Dev Guide学习笔记(远程共享对象)

    一.开发交互式的媒体应用程序1.共享对象(Shared objects)    ----远程共享对象 在你创建一个远程共享对象之前,创建一个NetConnection对象并且连接到服务器.一旦你创建了 ...

  2. [转载]FMS Dev Guide学习笔记(验证用户)

    一.开发交互式的媒体应用程序 1.使用外部资源验证用户 对于有限数量的客户,请求用户名密码,然后通过外部资源(像数据库.LDAP服务或其它访问授权服务)验证它们,是可行的.     a.SWF在请求连 ...

  3. [转载]FMS Dev Guide学习笔记(验证客户端二)

    一.开发交互式的媒体应用程序 1.使用unique key a. 在客户端ActionScript中创建一个unique key,如下代码所示,unique key的组成为本地电脑时间和一个随机数连接 ...

  4. FMS Dev Guide学习笔记

    翻译一下其中或许对游戏开发有用的一个章节 一.开发交互式的媒体应用程序 1.共享对象(Shared objects)     ----关于共享对象     使用共享对象可以同步用户和存储数据.共享对象 ...

  5. FMS Dev Guide学习笔记(权限控制)

    一.开发交互式的媒体应用程序 1.关于访问(权限)控制     当一个用户访问服务器的时候,默认情况下,他可以访问所有的流媒体文件和共享对象.但是你可以使用服务端ActionScript为流媒体文件和 ...

  6. FMS Dev Guide学习笔记(验证客户端)

    一.开发交互式的媒体应用程序 1.使用客户端对象的属性     当一个客户端连接上服务器上的一个应用,服务端就会创建一个包含这个客户端信息的客户端对象并且将它传递给application.onConn ...

  7. CUDA Programming Guide 学习笔记

    CUDA学习笔记 GPU架构 GPU围绕流式多处理器(SM)的可扩展阵列搭建,每个GPU有多个SM,每个SM支持数百个线程并发执行.目前Nvidia推出了6种GPU架构(按时间顺序,详见下图):Fer ...

  8. ubuntu server guide 学习笔记

    1. 软件包 1.1. dpkg dpkg -l dpkg -l | grep apache2 dpkg -L ufw dpkg -S /etc/host.conf dpkg -i zip_3.0-4 ...

  9. UIView Programming Guide学习笔记

    |View |Creating and Configuring View Objects |Creating and Managing a View Hierarchy |Adjusting the ...

随机推荐

  1. 分享微信开发Html5轻游戏中的几个坑

    这段时间团队一直在做微信端的一些产品设计和开发,当然也包含一定的运营工作.做过的东西也不少,微名片.微抢票.微活动.微招聘等一些小case. 今天想说的是我们在微信中被玩的最活跃的轻游戏--微刮奖,这 ...

  2. pytho 单例模式

    单例模式存在的目的是保证当前内存中仅存在单个实例,避免内存浪费!!! (程序如果并发量大的话,内存里就会存在非常多功能上一模一样的对象.存在这些对象肯定会消耗内存,对于这些功能相同的对象可以在内存中仅 ...

  3. json.loads()的字符串中为单引号引发的错误

    如下错误属于弱智错误,但是错的原因让我无语,所以记录一下 str2="{'card':6217001650004184441}"print(json.loads(str2)) Tr ...

  4. 查看Selinux和关闭Selinux

    查看Selinux和关闭Selinux   注:本文非原创文章,转自以下: 链接:https://www.jianshu.com/p/a7900dbf893c 查看SELinux状态: /usr/sb ...

  5. git 使用教程(二)

    MyEclipse下使用GitHub方法(Eclipse同理) 原创 2016年01月04日 20:30:25 标签: myeclipse / 软件 / git / github / eclipse ...

  6. 16.纯 CSS 创作一个渐变色动画边框

    原文地址:https://segmentfault.com/a/1190000014785816 感想:边框是伪元素::after来的: HTML代码: <div class="box ...

  7. List 的一个有用的高效的操作 removeAll

    如果有多个list集合,那么 使用 removeAll 可以快速的删除另外一个集合的内容: List<String> list1 = new ArrayList<String> ...

  8. Pig latin基础

    pig的两种运行模式,local模式,mapreduce模式 local模式下,pig只能访问本地一台:在mapreduce模式下,pig可以访问一个hadoop集群和hdfs的安装位置.这时,pig ...

  9. 16.linux常用查看命令

    cat :查看整个文件tail -200f  abc.txt  :查看abc.txt的最后200行

  10. 使用子查询创建表(oracle)

    转自:https://blog.csdn.net/lxh123456789asd/article/details/81164321 语句: CREATE TABLE tablename[(column ...