zoukankan      html  css  js  c++  java
  • Flash/Flex学习笔记(10):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,用来显示操作结果

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

    view source

    print?

    01
    import flash.net.NetConnection;

    02
    import flash.events.MouseEvent;

    03
    import flash.events.NetStatusEvent;

    04

    05
    var nc:NetConnection;

    06

    07
    //注册事件

    08
    btnConn.addEventListener(MouseEvent.CLICK,btnConnClick);

    09
    btnDisConn.addEventListener(MouseEvent.CLICK,btnDisConnClick);

    10

    11
    function btnConnClick(e:MouseEvent) {

    12
    if (nc==null) {

    13
    nc = new NetConnection();

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

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

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

    17
    }

    18

    19
    }

    20

    21
    function btnDisConnClick(e:MouseEvent) {

    22
    if (nc!=null) {

    23
    nc.close();

    24
    nc=null;        

    25
    }

    26
    }

    27

    28

    29
    function connHandler(e:NetStatusEvent) {

    30
    trace(e.info.code);

    31
    switch (e.info.code) {

    32
    case "NetConnection.Connect.Closed" :

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

    34
    break;

    35
    case "NetConnection.Connect.Failed" :

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

    37
    break;

    38
    case "NetConnection.Connect.Success" :

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

    40
    var resp:Responder = new Responder(onReply);

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

    42
    break;

    43
    case "NetConnection.Connect.Rejected" :

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

    45
    break;

    46
    default :

    47
    lblResult.text=e.info.code;

    48
    break;

    49
    }

    50
    }

    51

    52
    function onReply(e:Object){

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

    54
    lblResult.text = e.toString();

    55

    56
    }

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

    3.创建FMS服务端代码

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

    view source

    print?

    1
    application.onConnect = function(client){  

    2
    client.serverHelloMsg = function(helloStr){ 

    3
    trace(helloStr);

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

    5
    }  

    6
    application.acceptConnection(client);  

    7
    }

    服务端有二个特殊对象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可以运行了

  • 相关阅读:
    Swift流程控制之循环语句和判断语句详解
    框架内的文件集合
    十分钟让你明白Objective-C的语法(和Java、C++的对比)
    Swift版音乐播放器(简化版),swift音乐播放器
    通过数字电视通过宽带网络取代互联网电视机顶盒应用
    JS学习笔记-OO创建怀疑的对象
    如果不能显示真正的考验个别车型toast问题解决
    swift 它们的定义TabBarItem
    NSUserDefaults API简单的介绍和使用英文文件
    FZU 1686 龙之谜 重复覆盖
  • 原文地址:https://www.cnblogs.com/happysky97/p/1884485.html
Copyright © 2011-2022 走看看