FMS Dev Guide学习笔记(远程共享对象)
一、开发交互式的媒体应用程序
1.共享对象(Shared objects)
----远程共享对象
在你创建一个远程共享对象之前,创建一个NetConnection对象并且连接到服务器.一旦你创建了这个链接,就可以使用SharedObject类中的方法创建和更新远程对象了.一半的使用远程共享对象的步骤如下:
1.创建一个NetConnection对象并且连上服务器:
nc = new NetConnection();
nc.connect("rtmp://localhost/SharedBall");
这是链接服务器最简单的方法.在真正的应用程序中,你应该为NetConnection对象添加事件监听器并且定义handler方法.(阅读SharedBall example一节以获取更多的信息)
2.创建远程共享对象.当连接成功,调用SharedObject.getRemote()方法在服务器创建一个远程共享对象:
so = SharedObject.getRemote("ballPosition", nc.uri, false);
第一个参数是这个远程共享对象的名称.第二个参数是你连接的这个应用程序的URI并且要和在Netconnection.connet()方法里面使用的
URI一致.最简便的方法便是使用nc.uri属性.第三个参数指定这个远程共享对象是否是持久的.false用来指定这个远程对象为临时的.
3.连接上远程共享对象.一旦共享对象被创建,使用你刚刚创建的NetConnection对象将客户端和共享对象建立连接:
so.connect()nc;
你同时也需要通过共享对象为同步事件添加一个事件监听器:
so.addEventListener(SyncEvent.SYNC, syncHandler);
4.使远程共享对象和客户端同步.同步远程对象需要两个步骤.
第一,当一个客户端发生改变或者设置了一个数据值,你需要更新远程共享对象.第二,根据远程共享对象更新所有的客户端.
a. 通过setProperty()方法来更新远程共享对象当一个客户端发生改变的时候:
so.setProperty("x", sharedBall.x);
你必须使用setProperty()方法来更新共享对象里面的值.远程共享对象有一个包括了属性和值的data属性.但是在AS3里,你不能直接将值写入,像这样:
so.data.x = sharedBall.x;//you can't do this
b. 当共享对象被更新的时候,它会发送出一个sync事件.通过读取这个共享对象的data属性同步这个改变到剩余的客户端:
sharedBall.x = so.data.x;
这个步骤通常在sync事件handler里面执行.
FMS Dev Guide学习笔记(远程共享对象)的更多相关文章
- FMS Dev Guide学习笔记
翻译一下其中或许对游戏开发有用的一个章节 一.开发交互式的媒体应用程序 1.共享对象(Shared objects) ----关于共享对象 使用共享对象可以同步用户和存储数据.共享对象 ...
- FMS Dev Guide学习笔记(SharedBall)
一.开发交互式的媒体应用程序1.共享对象(Shared objects) ----SharedBall example 这个SharedBall example创建了一个临时的远程共享对象.类似于多人 ...
- FMS Dev Guide学习笔记(权限控制)
一.开发交互式的媒体应用程序 1.关于访问(权限)控制 当一个用户访问服务器的时候,默认情况下,他可以访问所有的流媒体文件和共享对象.但是你可以使用服务端ActionScript为流媒体文件和 ...
- FMS Dev Guide学习笔记(验证客户端)
一.开发交互式的媒体应用程序 1.使用客户端对象的属性 当一个客户端连接上服务器上的一个应用,服务端就会创建一个包含这个客户端信息的客户端对象并且将它传递给application.onConn ...
- [转载]FMS Dev Guide学习笔记(验证用户)
一.开发交互式的媒体应用程序 1.使用外部资源验证用户 对于有限数量的客户,请求用户名密码,然后通过外部资源(像数据库.LDAP服务或其它访问授权服务)验证它们,是可行的. a.SWF在请求连 ...
- [转载]FMS Dev Guide学习笔记(验证客户端二)
一.开发交互式的媒体应用程序 1.使用unique key a. 在客户端ActionScript中创建一个unique key,如下代码所示,unique key的组成为本地电脑时间和一个随机数连接 ...
- JavaScript:学习笔记(9)——Promise对象
JavaScript:学习笔记(9)——Promise对象 引入Promise Primose是异步编程的一种解决方案,比传统的解决方案回调函数和事件更加合理和强大.如下面为基于回调函数的Ajax操作 ...
- 《python基础教程(第二版)》学习笔记 类和对象(第7章)
<python基础教程(第二版)>学习笔记 类和对象(第7章) 定义类class Person: def setName(self,name): self.name=n ...
- JavaScript:学习笔记(10)——XMLHttpRequest对象
JavaScript:学习笔记(10)——XMLHttpRequest对象 XHR对象 使用XMLHttpRequest (XHR)对象可以与服务器交互.您可以从URL获取数据,而无需让整个的页面刷新 ...
随机推荐
- cocos源码分析--RenderTexture
cocos中RenderTexture主要用来实现截屏,然后把截取出来的图片保存到磁盘中,除了保存图片和渲染纹理,它还可以得到一些预渲染结果,并将这些结果作为一种纹理数据. 例如我们可以用RGB5_A ...
- oracle执行update时卡死问题的解决办法
原因: 由于在PLSQL Developer执行update时没有commit,oracle将该条记录锁住了. 可以通过以下办法解决: 先查询锁定记录 Sql代码 SELECT s.sid, s.se ...
- IOS 7层协议
ios七层 (1)物理层——Physical 这是整个OSI参考模型的最低层,它的任务就是提供网络的物理连接.所以,物理层是建立在物理介质上(而不是逻辑上的协议和会话),它提供的是机械和电气接口.主要 ...
- DIV左、右布局
1.右边宽度固定,左边自适应 第一种(flex布局,不兼容IE9以下浏览器): <style> body { display: flex; } .left { background-col ...
- spring boot区分生产环境和开发环境
回顾一下spring boot使用基础,做个笔记. 通过配置文件,设置项目的开发环境和生成环境. 项目目录结构: application-dev.yml是开发环境配置文件,application-pr ...
- .netLinq动态Where条件
文章介绍全网最佳方式使用EF+Linq实现多条件组合查询:代码中没有使用到网上主流自定义Expression表达式而是采用linq原生态功能编写示例直观.易懂,且有效解决自定义Expression不支 ...
- [转]IISExpress配置使其能通过IP访问方法
转自http://www.cnblogs.com/liujh/p/4315927.html 环境说明: 本机IP:192.168.2.100:Web端口:11843 步骤一 打开[我的文档]\IISE ...
- springBoot基本配置
Spring Boot 基本配置 1.新建maven jar工程 使用依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" ...
- Linux实用命令整理
说明 点击标题可进入详细讲解的章节 0. 基本命令 linux 基本命令整理 1. 压缩 解压 tar -zcvf a.tar.gz a #把a压缩成a.tar.gz tar -zxvf a.tar. ...
- 《算法》第二章部分程序 part 5
▶ 书中第二章部分程序,加上自己补充的代码,包括利用优先队列进行多路归并和堆排序 ● 利用优先队列进行多路归并 package package01; import edu.princeton.cs.a ...