- 浏览: 513101 次
- 性别:
- 来自: 惠州
文章分类
- 全部博客 (255)
- ant (1)
- springMVC (2)
- ajax (4)
- oracle (12)
- SSH (13)
- struts1 (2)
- Hibernate (14)
- spring (5)
- jstl (1)
- 连接池 (1)
- acegi (4)
- java (17)
- jquery (11)
- div+css (4)
- drupal (1)
- php (8)
- freemaker调模板生成静态页面 (1)
- xml (1)
- json (2)
- javascript (9)
- 正则表达式 (4)
- Ext (8)
- jdbc (1)
- sql server (2)
- perl (5)
- db4o (1)
- webservice (4)
- flex (13)
- it资讯 (1)
- joomla (0)
- 设计模式 (1)
- struts2 (4)
- s2sh (8)
- linux (3)
- ejb (2)
- android旅途 (24)
- android (36)
- C/C++ (16)
- mysql (1)
最新评论
-
fengyuxing168:
IBelyService bs = IBelyService. ...
为 Android 添加 Java 层服务也就是添加自定义的aidl服务到serviceManager 通过ServiceManager.getService取 -
dengzhangtao:
"由于ActivityManagerService是 ...
binder理解 -
yzyspy:
ActivityManagerService:startHom ...
Android的Launcher成为系统中第一个启动的,也是唯一的 -
Matchstick:
使用SELECT DISTINCT alias FROM Po ...
hibernate 一对多表查询时fetchMode.join 生成left outer join 出来数据重复问题 -
dlheart:
没看懂你什么意思啊,我遇到的问题是一对多,设了fetch = ...
hibernate 一对多表查询时fetchMode.join 生成left outer join 出来数据重复问题
FMS函数
以下是对FMS的整理。 有时用起来忘了就打开快速取到。
//===================命令索引===============
//================App 类===============
application.onConnect /*
application.onDisconnect /*
application.onAppStart //APP载入调用
application.onAppStop //App卸载调用
application.onStatus //脚本发生错误调用
application.broadcastMsg("函数",参数) /*
application.acceptConnection(newClient) //接受 /*
application.disconnect(newClient) //断开 /*
application.getStats() //返回这个应用程序的网络状态
application.registerClass //注册或注销一个构造器
application.registerProxy() //注册一个NC或Client完成一个方法请求
application.rejectConnection() //拒绝连入 /*
application.shutdown() //卸载APP
//-----------属性-----------
application.allowDebug //true false 是否允许使用管理器
application.clients //连接群体
application.config //允许访问XML配置文件的属性
application.hostname //服务器主机名
application.name //App实例名字 /*
applicatiseon.server //平台和版本
application.gc //调用垃圾收集器来回收App未使用的资源
application.getStats //返回App的状态
参数:
bytes_in //数据接受和发送
bytes_out
msg_in //信息接受和发送数
msg_out
msg_dropped //客户机数
total_connects //总连接数
total_disconnects //总断开数
//============App_Client类=======
Client.getStats //返回客户机的状态
Client.readAccess //发送一个"ping"至客户,如果响应则返回true
Client.setBandwidthLimit() //设置连接的最大带宽
Client.agent //客户版本和平台
Client.ip //客户机的IP地址 /*
Client.protocol //客户机协议
Client.readAccess //客户机读访问权级列表
Client.referrer //连接的SWF或服务器的URL
Client.secure //布尔值 指出internet连接是否是安全的
Client.uri //客户机所确定的URI
Client.virtualKey //客户机类型(版本)
Client.writeAccess //客户机写访问权的列表
Call //
//============App_file类=========
构建方法
fileObject= new File(name或url)
File.close //关闭这个文件
File.copyTO //把一个文件复制到另一个位置
File.eof //文件指针是否位于文件的末尾
File.flush //清出文件输出的缓冲区
File.list //如果这个文件是目录,则返回数组
File.mkdir //创建目录
File.open //打开文件进行读取或写入
File.read //从文件中读取指定数量的字符并返回一个字符串
File.readByte //从文件读取下一个字节并返回下一个字节的数字值
File.readln //从这个文件中读取下一行作字符串返回
File.remove //移除该文件或目录
File.renameTo //移动文件或重命名
File.write //写入数据到一个文件
File.writeAll //暂未知
File.writeByte //把一个字节写入这个文件
File.writeln //写入数据到文件并输出最后一个参数
File.getGlobal //跳过指定数量的字节并返回新的文件位置
File.toString 返回File对象的名字
//---属性
File.canAppend //指出文件可以为追加目的而打开
File.canRead //是否可以被读取
File.canReplace //是否以替换标记启用模式打开
File.creationTime //文件创建时间
File.exists //指出这个文件或目录是否存在
File.isDirectory //是否是一个目录
File.isFile //是否是一个数据文件
File.isOpen //是否是打开的
File.lastModified //最近一次被修改的时间
File.length //目录:文件的数量。 文件:文件中的字节数
File.mode //打开文件的模式
File.name //文件名
File.position //文件当前的偏移量
File.type //文件使用的编码和数据类型
//===================连接实例===============
// 客户端连接
nc = new NetConnection();
// 处理来自伺候器的任何状态变化和反应
nc.onStatus = function(info) {
//连接成功进入
if (info.code == "NetConnection.Connect.Success") {
trace("连接成功");
} else if (info.code == "NetConnection.Connect.Closed") {
trace("断开连接");
} else {
trace("无法连接")
}
};
nc.connect("rtmp://192.168.1.223/test");
// 服务端连接
application.onConnect = function(newClient) {
application.acceptConnection(newClient);
};
application.onDisconnect = function(newClient) {
};
//服务端对客户端的响应函数
Client.prototype.XXX=function(){
}
#include "NetDebug.as" //测试连接效果
连接.connect()
Application.onConnect=function(联接名,用户名称,口命){}
关闭.close()
application.disconnect(clientObj)
Application.onDisconnect=function(){}
调用
.call()
调用一个伺候器定义方法。 方法与 main.asc 文件一起定义。
接受与客户端取得响应
application.acceptConnection(newClient)
拒绝与客户端取得响应
application.rejectConnection(newClient)
服务端连接数据
entries_so = SharedObject.get("room1/game_SO", true);
//设置服务器全局变量
gFrameworkFC.getClientGlobals(newClient).username =userName;
连接例子:
#include "NetDebug.as"
// 建立新的联接对象
myConnection_nc = new NetConnection();
// 处理来自伺候器的任何状态变化和反应
myConnection_nc.onStatus = function(info) {
trace("LEVEL: "+info.level+" CODE: "+info.code);
};
// 开始连接到服务器
myConnection_nc.connect("rtmp:/YC_SD/myInstance", "Kevin Towes");
// 建立UI组件测试是否连接成功
peopleList_mc.connect(myConnection_nc);//登陆名列表组件
connectionLight_mc.connect(myConnection_nc);//登陆测试组件
数据读写例子:(利用上面的先建立连接)
initRemoteSharedObject = function () {
trace("Connect a Remote SharedObject");
//创建一个SO数据库 库名为:myRemoteSO 联接对象为myConnection_nc
rem_so = SharedObject.getRemote("myRemoteSO", myConnection_nc.uri, true);
//设置数据同步函数
rem_so.onSync =function(){
}
//数据联接
rem_so.connect(myConnection_nc);
// 写入数据
rem_so.data.simpleTest = "FlashCom 将改变我的世界";
rem_so.data.arrayTest = ["Brett", "Mike", "Ryan", "Paul", "Jody", "Kevin"];
// 读取数据
var my_var = rem_so.data.simpleTest;
var my_array = rem_so.data.arrayTest;
trace(" Remote SharedObject Read Test: "+my_var);
trace(" Remote SharedObject Read Test: "+my_array[0]);
trace("Remote SO Size: "+rem_so.getSize());
};
数据交互
服务器端:
//顶头
Client.prototype.getData=function(){}
//其中
Client.getData=function()
{
var ss=new Array("asdf",5666,6777)
return ss
}
客户端:
var s_Result = new Object();
s_Result.onResult = function(info) {
//info里就是服务器返回的数据
trace(info);
};
myConnection_nc.call("getData", s_Result);
服务端CALL客户
newClient.call("test");
AS:
myConnection_nc.test = function () {
trace("服务器调用");
};
服务器管理SharedObject
//连接Shared
application.game_so = SharedObject.get("game_SO", true);
//写入
application.game_so.setProperty("变量名", 值)
//读取
变量名=application.game_so.getProperty("变量名")
trace(变量名)
//读取全部变量名
getPropertyNames()
获得退出者名字
application.onConnect =function(newClient,userName,my_pic)
{
application.acceptConnection(newClient);
//为连接对象加入名字
newClient.userName=userName
}
application.onDisconnect=function(newClient)
{
//获得退出者名字
trace(newClient.userName)
}
所有的连入者
application.clients
当前的连入者
this
UI连接
peopleList_mc.connect(myConnection_nc);
AV视频/音频
//写入
myConnection_nc.connect("rtmp:/AV_test/myInstance", "test");
publish_ns = new NetStream(myConnection_nc);
//publish写入参数 record :新建 append:追加 false:假的,不记录
publish_ns.publish("test","false");
publish_ns.attachVideo(Camera.get());
publish_ns.attachAudio(Microphone.get());
//停止录
publish_ns.close();
//播放
play_ns = new NetStream(myConnection_nc);
play_video.attachVideo(play_ns);
play_ns.play("test");
//停止播放
play_ns.close();
fileObject = new File("/aa/1.txt")
//fileObject.open("utf8","read")
if (fileObject.open("utf8","read") ){
//strVal = fileObject.read(100);
all=fileObject.readAll()
//t1=fileObject.readln()
//t2=fileObject.readln()
fileObject.close()
trace(all)
}
//添加错误日志追踪
application.onStatus = function(infoObject) {
var date_data = new Date();
var newdate = date_data.getFullYear()+"年"+(date_data.getMonth()+1)+"月"+date_data.getDate()+"日";
var newtime = date_data.getHours()+"时"+date_data.getMinutes()+"分"+date_data.getSeconds()+"秒";
//当前日期+时间
var new_DD = newdate+" "+newtime;
var log_txt=""
log_txt+="\r\n---------------------------"
log_txt+="\r\n日志出错 出错时间="+new_DD+" 错误实例名="+application.name
for (var i in infoObject) {
if (i == "level") {
log_txt+="\r\n出错等级="+infoObject[i];
} else if (i == "code") {
log_txt+="\r\n代码情况="+infoObject[i];
} else if (i == "descrīption") {
log_txt+="\r\n描述="+infoObject[i];
} else if (i == "details") {
log_txt+="\r\n详细资料="+infoObject[i];
} else if (i == "filename") {
log_txt+="\r\n脚本文件="+infoObject[i];
} else if (i == "lineno") {
log_txt+="\r\n出错行数="+infoObject[i];
}
//trace(i + ":" + infoObject[i]);
}
log_txt+="\r\n---------------------------"
//查看目录是否存在
root_dir=new File("/")
dirObj= new File("/Error_logs/")
//该目录不存在时创建
if(!dirObj.exists){
trace("创建成功")
root_dir.mkdir("/Error_logs")
}
//写入数据
var fileObj = new File("/Error_logs/"+newdate+".txt")
//fileObj.open("utf8","read")
if (fileObj.open("utf8","append") ){
//strVal = fileObj.read(100);
fileObj.write(log_txt);
fileObj.close()
}
};
发表评论
-
spring中当我用自动扫描和使用annotation 自动注册bean时,现在flex或者ext要引service怎么引用?
2010-05-26 09:18 2740在spring中,当我用自动扫描和使用annotation 自 ... -
Flex与WebService通信
2010-03-24 15:35 1185Flex与WebService通信 AS3 ... -
FMS NetStream对象
2009-08-05 16:12 2183FMS NetStream对象2008-04-02 1 ... -
完美的flex+php上传文件实例【转】
2009-08-05 12:06 3153完美的flex+php上传文件实例【转】2009年05月06日 ... -
Flex(flash)检测摄像头的3种状态
2009-08-05 12:00 2935Camera camera = Camera.getCamer ... -
Flex中如何利用HTTPService的send()将参数传递给HTTPService的例子
2009-07-28 15:50 4083<?xml version="1.0" ... -
FMS 流媒体视频技术介绍
2009-07-27 20:58 3330FMS 流媒体视频技术 — ... -
fms开发语音视频系统优缺点
2009-07-27 20:36 2409开发的是 用在html/.swf 的视频系统,用fms3.5 ... -
FMS实现多人同时语音聊天
2009-07-27 20:25 3507FMS能否实现多人同时语音聊天? 目前已实现一人说,N人听 服 ... -
每天一点学FMS(二)文字+视频语音
2009-07-27 20:02 1248每天一点学FMS(二)文字+视频 ... -
flex与JS互调方法
2009-07-23 17:05 1827flex与JS互调方法 关键字 ... -
flex,jsp,mysql三者之间的传值联系
2009-07-03 09:43 1968flex,jsp,mysql三者之间的传值联系(转)2008年 ...
相关推荐
教程会解释每个API函数的用途、参数和返回值,让开发者能熟练地利用这些工具进行二次开发。 在实际应用部分,教程可能涵盖了一些常见的应用场景,比如构建互动直播系统、实现vod点播服务,或者结合Flash Player或...
### FMS3视频教程知识点概览 #### 一、FMS简介及应用场景 - **FMS**(Flash Media Server)是Adobe公司推出的一款强大的媒体服务器软件,主要用于处理实时音视频流,支持多种协议如RTMP等,适用于视频聊天、视频...
在本文中,我们将深入探讨FMS(Flash Media Server)与客户端通信编程的两种主要方法:客户端呼叫服务器和服务器端呼叫指定的客户端。FMS 4.5 是Adobe提供的流媒体服务器,它支持实时媒体流传输、实时数据共享以及与...
文档"《Fms 视频录制屏幕共享 附源码.doc》"主要涉及使用Adobe Flash Media Server (FMS) 实现屏幕共享和视频录制的功能。FMS 是一款强大的实时流媒体服务器,它允许开发者创建实时交互式的多媒体应用程序,包括视频...
在这个Hello World示例中,客户端代码可能包含一个初始化连接到FMS服务器的函数,一个接收和显示“Hello World”消息的事件监听器,以及可能的断开连接功能。 通过分析“HelloFms_Sample”文件,我们可以学习如何...
广播的消息可以通过客户端定义的处理函数接收,如示例所示,服务器发送"handlderName"消息,客户端通过设置`NetConnection.handlerName`来接收并处理。 **Application.clearSharedObjects()** 方法用于清除指定路径...
根据提供的标题、描述、标签及部分内容,我们可以提炼出与FMS(Flash Media Server)相关的多个重要知识点,包括视频实时传输的基本原理、代码实现细节以及如何使用FMS进行视频流的发布等。 ### FMS视频实时聊天的...
在`onClickHandler`函数中,当用户点击按钮时,我们创建一个新的`NetConnection`对象来建立到FMS服务器的连接。实际的连接过程还需要配置连接URL和响应处理器,以及处理可能的网络状态变化和错误事件。 类似地,...
然后客户端运行服务器端的函数来返回一个字符串的值。当服务器端回应了,客户端的回应函数在label上显示字符传。客户端通过改变按钮的label来断开连接。当diaconnect的按钮被点击,客户端断开连接,并且清空label。 ...
5. **服务器管理ActionScript字典**:这可能是FMS2提供的服务器管理API的详细指南,开发者可以通过它查找特定的函数、类或方法,以便于在ActionScript中调用FMS2的服务和功能。 6. **使用Flash Media Server边缘...
根据给定的文件信息,我们可以深入探讨Flash Media Server (FMS)的相关知识点,特别是与“Hello World”应用程序相关的部分。FMS是一款由Adobe Systems开发的流媒体服务器软件,主要用于实时视频和音频流传输,以及...
3. **API参考**: 详述FMS3提供的各种API函数,帮助开发者构建自定义功能。 4. **问题解决**: 针对常见问题提供解决方案,帮助用户排除故障。 5. **最佳实践**: 分享经验丰富的建议,提升服务器性能和稳定性。 ...
在数字媒体领域,Flash Media Server (FMS) 是一个至关重要的工具,它为实时流媒体和交互式应用提供了强大的支持。在开发基于 FMS 的应用程序时,了解如何有效地检测和管理网络带宽是优化用户体验的关键。本文将深入...
4. **编写ActionScript代码**:NCTest.swf的AS代码需要实现与FMS的连接,例如使用NetConnection对象来建立连接,NetStream对象来处理流媒体数据,并使用trace函数输出日志信息。 5. **测试连接**:运行NCTest.swf,...
在建立FMS物流系统Petri网模型的基础上,采用“映射”思想,将Petri网模型转化为物流系统的仿真程序,提出了库所映射为程序数据、变迁映射为程序函数、系统子网映射为FMS系统基本类的映射方法,通过实例仿真验证了...
### FMS 中文文档知识点详解:动态缓冲流与优化视频播放体验 #### 一、缓冲流的概念及其重要性 在**Flash Media Server (FMS)**的中文文档中,重点介绍了**动态缓冲流**这一概念。缓冲流对于保障视频播放流畅性至...
标题中的“fms.rar_c”可能指的是一个关于C语言实现有限状态机(FSM)的压缩包,而“fms状态机”可能是对特定类型FSM的特指,可能是作者自定义的命名方式或某种特定的设计模式。"状态机编程"则直接表明了这个资料...
2. 引入库:在Python代码中导入mypy_boto3_fms库,然后就可以使用其中定义的类型和函数来操作AWS FMS。 3. 添加类型注解:在编写与FMS交互的代码时,使用mypy_boto3_fms提供的类型定义,增加代码的可读性和可维护性...