Flash/Flex学习笔记(9):FMS 3.5之Hello World!

Adobe的FMS真的是一个倍儿牛叉的技术!(至少Silverlight在"实时广播"方面目前还没有任何能超越FMS的迹象)

曾经盛极一时的tudou,ku6,第一视频...等一大堆视频分享类网站,几乎都使用的是Adobe的FMS技术.

今天先来做一个最简单的Hello World(例子出自FMS的官方文档)

1.先创建一个FMS应用HelloWorld

进入FMS的默认安装目录: C:\Program Files\Adobe\Flash Media Server 3.5\applications

在这下面创建一个HelloWorld目录即可

2.打开Flash Cs4,创建一个 Flash文件(ActionScript3.0),保存为"HelloWorld.fla"

拖二个按钮到舞台上,命名为btnConn,btnDisConn;对应的label文本为:"连接到FMS","断开与FMS的连接"

再拖一个Label到舞台上,命名为lblResult,用来显示操作结果

在第一帧上写入以下代码:

import flash.net.NetConnection;

import flash.events.MouseEvent;

import flash.events.NetStatusEvent;

var nc:NetConnection;

//注册事件


btnConn.addEventListener(MouseEvent.CLICK,btnConnClick);

btnDisConn.addEventListener(MouseEvent.CLICK,btnDisConnClick);


function btnConnClick(e:MouseEvent) {

if (nc==null) {

 
nc = new NetConnection();

nc.addEventListener(NetStatusEvent.NET_STATUS,connHandler);//每当连接状态有变化时,会自动调用 connHandler

 
nc.connect("rtmp://localhost/HelloWorld");

lblResult.text="正在连接FMS...";

 
}


}

function btnDisConnClick(e:MouseEvent) {


if (nc!=null) {

nc.close();


nc=null;        


}

}

function connHandler(e:NetStatusEvent) {

trace(e.info.code);

 
switch (e.info.code) {

case "NetConnection.Connect.Closed" :


lblResult.text="成功关闭连接";


break;

case "NetConnection.Connect.Failed" :

lblResult.text="连接尝试失败";

 
break;

case "NetConnection.Connect.Success" :

lblResult.text="连接尝试成功";


var resp:Responder = new Responder(onReply);

nc.call("serverHelloMsg", resp, "Hi FMS!");//调用服务端的serverHelloMsg的方法

break;


case "NetConnection.Connect.Rejected" :

lblResult.text="连接尝试没有访问应用程序的权限";


break;

default :

 
lblResult.text=e.info.code;

break 
}

}

function onReply(e:Object){

 
trace("服务端返回内容:" + e);

lblResult.text = e.toString();

}

上面演示了如何"连接到服务器"、"断开连接"、"调用服务端的方法",先不要急着运行,因为我们服务端的serverHelloMsg方法还没写呢

3.创建FMS服务端代码

定位到C:\Program Files\Adobe\Flash Media Server 3.5\applications\HelloWorld 新建一个main.asc的文本文件,写入以下代码

application.onConnect = function(client){  

 
client.serverHelloMsg = function(helloStr){ 

trace(helloStr);

return "Hello, " + helloStr + "!";  

}  

application.acceptConnection(client);  


}

服务端有二个特殊对象application,client;用来生成“应用实例”以及“对客户端的引用”,注意服务端的trace(helloStr),我们知道Flash CS4中trace的信息会显示在flash输出窗口中,而服务端没有输出窗口,输出的信息将会自动保存到

C:\Program Files\Adobe\Flash Media Server 3.5\logs\_defaultVHost_\HelloWorld\_definst_\application.xx.log

保存的内容类似下面这样:
#Version: 1.0

#Start-Date: 2010-03-14 13:38:08

#Software: Adobe Flash Media Server 3.5.1 r516

#Date: 2010-03-14

#Fields: date time x-pid x-status x-ctx x-comment

2010-03-14 13:38:05 8152 (s)2641173 Hi FMS! -

好了,回到Flash Cs4中,按下Ctrl + Enter可以运行了

<script type="text/javascript"></script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值