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

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

转载于:https://www.cnblogs.com/chenhaib/p/3469690.html

FMS Dev Guide学习笔记(SharedBall)相关推荐

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

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

  2. VCS User Guide学习笔记【使用精简版】

    VCS_UG学习笔记 除了说明性质的内容,关于命令和仿真,均是默认Verilog语言,暂不考虑SystemVerilog相关的内容. 环境: 运行脚本来验证你的系统配置:syschk.sh 库: 名称 ...

  3. ICC使用----ICC 1 Lab Guide学习笔记

    文章目录 Preface ICC 1 Lab Guide Note: 1.Data Setup & Basic Flow(P27) Learning Objectives Create a M ...

  4. Dev XtraTreeList 学习笔记

    一.设置载请保留地址http://www.cnblogs.com/vincentluo 使用dev的树控件(XtaTreeList)来显示有父子关系的分类, 数据库表中只要三列:ParentID,Ca ...

  5. Advanced Bash-Scripting Guide 学习笔记一

    第九章:[变量的访问] 1节:bash内部变量 变量:$BASH 意义:bash程序的路径. 例子: 变量:$BASH_ENV 意义:每个bash脚本被执行前会调用$BASH_ENV所指向的脚本 例子 ...

  6. 九十分钟极速入门Linux——Linux Guide for Developments 学习笔记

    转载自: 九十分钟极速入门Linux--Linux Guide for Developments 学习笔记 http://mp.weixin.qq.com/s?__biz=MzAwNTMxMzg1MA ...

  7. TensorFlow2.0 Guide官方教程 学习笔记17 -‘Using the SavedModel format‘

    本笔记参照TensorFlow官方教程,主要是对'Save a model-Training checkpoints'教程内容翻译和内容结构编排,原文链接:Using the SavedModel f ...

  8. 学习笔记——频率调制光谱(FMS)技术

    直接吸收光谱(DAS)和波长调制光谱(WMS)介绍已经很多了,不贴网址防止被当广告(但其实那家公司写的很好). 今天记录一下频率调制光谱(FMS)的学习. 目录 简介 公式推导 仿真实验 简介 FMS ...

  9. Scss、elementUI引入、transition动画 - 学习笔记

    文章目录 Scss.elementUI引入.transition动画 - 学习笔记 Sass 是什么? elementUI transition动画 Scss.elementUI引入.transiti ...

最新文章

  1. java mybatis 代码生成器_Java MyBatis-Plus 代码生成器
  2. java ibm 2035,C# java 连接 IBM MQ时出现 2035 或 2013认证错误的解决方法
  3. 慕课乐学python单元测试答案_中国大学慕课第三章单元测试答案_乐学软件工程免费答案...
  4. AI算法连载07:统计之支持向量机模型
  5. JQuery DataTables改变行或列的背景或字体颜色
  6. 将一个列表的奇数列赋值到另外一个列表
  7. python入门难?几个练习实例 全会就入门了
  8. MySQL · 物理备份 · Percona XtraBackup 备份原理
  9. 大数据系统架构是什么
  10. 企业微信应用设置可信域名_企业微信更新版本 全平台内容可设置成英文
  11. Bootstrap 后台模板-AdminLTE
  12. debian编译openjdk8
  13. STM8S003F3使用总结——定时器
  14. SmileMiner:国人李海峰开发的开源Java机器学习库
  15. CMOS到触发器(二)
  16. 一文了解中央银行数字货币CBDC的总体框架
  17. Linux 多点电容触摸屏实验(1)
  18. antd select.option选项加入额外属性
  19. Dell电脑如何设置Fn键和其它功能键的组合
  20. Technical support(技术支持)

热门文章

  1. C++接收字符串数组_Java 中初始化数组
  2. eigrp配置实验_EIGRP负载均衡的实现
  3. python获取当前网页元素_python – 如何获取webdriver中元素的当前内容
  4. css 波纹扩散效果
  5. mysql数据库的函数_详解数据库_MySQL: mysql函数
  6. JQuery中淡出和淡入动画效果
  7. python飞机大战跟随鼠标移动_用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动...
  8. 89c51,8255,6个led数码管显示时钟的汇编语言程序,汇编语言要求编写一个时钟程序 用八位数码管实现时分秒的计时功能...
  9. html对话框跳转页面,html5各种页面切换效果和模态对话框用法总结
  10. netcore5开发Android,那些鼓吹国内首个.NET 5框架的,该醒醒了!