一、开发交互式的媒体应用程序
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. c#语言---数据类型

    整型 值类型 名称                        CTS类型                                说明                             ...

  2. python实现排序算法(一)——插入排序算法

    ''' 插入排序算法 原始数据data 排序数据后数据SortedData,默认是从小打大排序 1.从data第一个元素开始,该元素赋值给SortedData[0],可以认为SortedData已经被 ...

  3. Opening socket connection to server :2181. Will not attempt to authenticate using SASL (unknown error) hbase

    问题: 在HBase机群搭建完成后,通过jdbc连接hbase,在连接zookeeper阶段出现Opening socket connection to server  :2181. Will not ...

  4. Html标签及各种属性(持续更新)

    <!--Html标签属性之:required (必须的)--> <input type="file" id="Images" required ...

  5. android 实现一个简单纯文本的ListView

    思维线路: 1.创建一个ListViewActivity,LinearLayout布局里写了一个ListView布局 2.创建一个TextView布局给ArrayAdapter适配器使用 3.将Tex ...

  6. Linux网络管理-相关笔记【自用】

    ISO/OSI七层模型应用层            APDU 应用层协议数据单元   越靠近用户表示层            PPDU 表示层协议数据单元会话层            SPDU 会话协 ...

  7. IBeacon协议分析

    IBeacon协议分析 跳转至: 导航. 搜索 对于一个UUID是E2C56DB5-DFFB-48D2-B060-D0F5A71096E0, major是0, minjor是0的iBeacon,此时的 ...

  8. yarn 日志查看

    1.  yarn 日志列表 yarn application -list 2. impala-shell impala-shell -q 'invalidate metadata' ## impala ...

  9. 使用windows性能计数器监控cpu使用率

    https://blog.csdn.net/yabingshi_tech/article/details/26672355 2. http://blog.51cto.com/qixue/1702557 ...

  10. Flex自定义组件、皮肤,并调用

    标签:Flex  自定义组件  自定义皮肤  主应用调用模块 本程序样例学习自flex 实战教程.但因原教程代码不全,且根据个人需求有更改. 1文件列表 自定义as类Reveal.as,该类实现组件的 ...