一、开发交互式的媒体应用程序
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. h5项目如何打成war包

    有着java的运行环境,进入到h5工作目录,运行: jar -cvf projectname.war ./* projectname为项目的名称.

  2. position:absolute溢出处理

    今天在做布局的时候发现把table设置了position:absolute后 overflow居然不管用了,溢出的部分依然溢出. 百度后,才想起来... ... position后,元素已经和父元素不 ...

  3. hadoop 问题及解决方式

    转自http://www.bkjia.com/ASPjc/931209.html 解决Exception: org.apache.hadoop.io.nativeio.NativeIO$Windows ...

  4. cat & 文件结束符

    语法: 连接显示 选项: -n,显示行号. -v,显示不可见打印符. -E,显示“行结束符”($). 显示行号 $ cat -n /etc/fstab /dev/VolGroup00/LogVol00 ...

  5. python生成器异步使用

    import dis,time # 反汇编 import threading def request(): print('start request') v = yield print(v) def ...

  6. 在linux环境下mongodb的安装和启动

    安装 下载mongodb的版本,两点注意 根据业界规则,偶数为稳定版,如1.6.X,奇数为开发版,如1.7.X 32bit的mongodb最大只能存放2G的数据,64bit就没有限制 到官网,选择合适 ...

  7. eclipse创建的maven项目中使用javafx

    类似普通maven项目,不需要特地创建javafx项目. 将fxml资源文件放在resource目录下即可.

  8. nine

    [拉肚子] 1.原因:消化不良.不良刺激.进食不当的食物/病毒 2.调理: 消化不良引起的:妈咪爱:山药粥:少食多餐 不良刺激引起的:不要受惊受凉过热

  9. 22.纯 CSS 创作出美丽的彩虹条纹文字

    原文地址:https://segmentfault.com/a/1190000014858628 感想: 利用四个span的::before 和 ::after创出多个WEB,给其颜色,绝对定位,再利 ...

  10. python中的keys、values、items

    keys()获取字典中所有的键并放入列表 values()获取字典中所有的值并放入列表 items()获取字典中所有的键值对并放入列表 举个例子: 1 a = { 2 "name" ...