<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 8  文章 - 55  trackbacks - 0
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(6)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    朋友的Blog

    最新評論

    閱讀排行榜

    評論排行榜

    FCS組件篇:RoomList組件

    2004年11月21日00:01星期日 [ FMS ]


    好像還挺多人喜歡使用roomlist組件,我倒是沒有怎么使用這個組件,所以原本對這個組件的作用也有點模糊,總覺得這個組件的作用不大(因為完全可以通過動態改變simpleconnect的參數來實現登錄不同的房間),不過看了下這個組件還是其它復雜的使用,寫這篇文章的同時我也學習一下。
    RoomList的組件的作用是讓用戶可以創建、進入和刪除房間(確切的說是一個應用程序實例)。該組件類似于一個應用程序管理處,可以控制用戶訪問不同的應用程序。
    RoomList組件有兩種使用方式:
    1. 通過虛擬大廳登錄不同的應用程序實例;
    2. 使用大廳應用程序作為入口,登錄另外的房間應用程序
    第一種方法是比較簡單的,不過其實道理都相同。下面以第二種方式為例說明。
    要使用RoomList組件,你必須要創建兩個應用程序:大廳和房間。打個比方的話,大廳應用程序可以認為是起始入口,而房間才是用戶的目的地。其實roomlist組件可以登錄任何fcs應用程序,你也可以打開同一個應用程序的不同實例,只要這些實例具有唯一的會話ID。
    如果你使用simpleconnect組件的話,并不需要在客戶端添加代碼就可以使用roomlist組件。服務器端的大廳應用程序目錄的main.asc文件中需要加載component.asc文件。
    在房間應用程序的服務器腳本中,也需要加載component.asc文件,并取得用戶和房間的名稱,以及管理房間和用戶統計等。中間包含了在服務器端的來回帶參數調用,但是并不控制用戶是否以及連接到該應用程序。如果需要單獨使用roomlist組件的話,在房間應用程序中,你必須傳遞用戶名和應用程序實例名。你使用了simpleconnect組件的話,這些都是自動完成的。
    下面我們來分析一個簡單的例子。
    首先創建大廳應用程序,步驟如下:
    1. 在服務器端創建lobby_com_test目錄,并創建main.asc文件,添加下面代碼
    ?load('components.asc');
    2. 創建客戶端文件,名為lobby_com_test. 添加SimpleConnect組件,應用程序路徑為rtmp:/lobby_com_test
    3. 添加roomlist組件,實例名為roomList_mc
    4. 在simpleconnect組件列表中添加roomList_mc實例
    5. 設定roomlist組件的目標room應用程序位置,如../chat_room_test/chat_room_test.html(這個路徑是調用網站的html文件,根據你的實際位置調整)
    6. 創建一個房間應用程序(或者使用之前開發的任何聊天室應用程序),名稱為chat_room_test
    7. 在chat_room_test.fla中添加simpleconnect組件,實例名為connector_mc,應用程序路徑為 rtmp:/chat_room_test,
    8. 發布應用程序的時候,會生成一個chat_room_test.html文件
    9. 更改HTML參數設定,把文件body標識內容替換為:

    10. 在服務器端的chat_room_test目錄下面創建main.asc文件,其中添加代碼如下:
    01 : // 加載組件包含文件
    02 : load( 'components.asc' );
    03 :
    04 : //在應用程序連接事件中增加用戶ID到全局變量,允許客戶端連接,調用方法獲取房間實例名稱等
    05 : application.onConnect = function( newClient, username, password ) {
    06 : // Save the user name
    07 : gFrameworkFC.getClientGlobals(newClient).username = username;
    08 : // Accept the new user’s connection
    09 : application.acceptConnection(newClient);
    10 : // Get the instance name and update the room count
    11 : if (this.name.indexOf('/'
    ) != -1) {
    12 : newClient.room = this.name.substr(this.name.lastIndexOf('/')+1);
    13 : roomConnect(newClient);
    14 : }
    15 : }
    16 :
    17 : //定義連接到房間的返回值處理
    18 : function roomResult(newClient) {
    19 : this.onResult = function(roomName) {
    20 : newClient.call( 'FCSimpleConnect/connector_mc/roomName' ,null,roomName);
    21 : }
    22 : }
    23 :
    24 : //房間連接時候傳遞用戶選擇的房間名稱,調用roomResult得到返回值
    25 : function roomConnect (newClient, room) {
    26 : // Create a new NetConnection
    27 : lobby_nc = new NetConnection();
    28 : lobby_nc.onStatus = function (infoStatus) {
    29 : if (infoStatus.code == 'NetConnection.Connect.Success' ) {
    30 : lobby_nc.call( 'FCRoomList/roomlist_mc/roomConnect', new roomResult(newClient), newClient.room);
    31 : }
    32 : };
    33 : // Connect to the lobby application
    34 : lobby_nc.connect( 'rtmp://localhost/lobby_com_test' );
    35 : }
    36 :
    37 : // 斷開連接的事件響應
    38 : // 客戶端斷開連接,通知大廳應用程序
    39 : application.onDisconnect = function( client ) {
    40 : if (client.room != null) {
    41 : roomDisconnect(client.room);
    42 : }
    43 : }
    44 : //調整房間數據,移除用戶顯示
    45 : function roomDisconnect (room) {
    46 : // Create a new NetConnection
    47 : lobby_nc = new NetConnection();
    48 : lobby_nc.onStatus = function (infoStatus) {
    49 : if (infoStatus.code == 'NetConnection.Connect.Success' ) {
    50 : lobby_nc.call( 'FCRoomList/roomlist_mc/roomDisconnect' , null, room);
    51 : }
    52 : }
    53 : // Connect to the lobby application
    54 : lobby_nc.connect( 'rtmp://localhost/lobby_com_test' );
    55 : }
    保存main.asc文件,重啟應用程序,按照下面步驟測試roomlist組件。
    1. 打開包含lobby_com_test.swf文件的lobby_com_test.html,并登錄服務器
    2. 增加房間到房間列表
    3. 選擇房間,進入
    4. 一個新的 chat_room_test應用程序實例窗口會打開
    5. 用同樣的方式打開另一個房間實例
    posted on 2006-06-08 13:59 blog搬家了--[www.ialway.com/blog] 閱讀(520) 評論(0)  編輯  收藏 所屬分類: FMS
    主站蜘蛛池模板: 天天爽亚洲中文字幕| 亚洲A∨无码一区二区三区 | 亚洲精品少妇30p| 成人免费视频一区二区| 全亚洲最新黄色特级网站| 立即播放免费毛片一级| 免费jlzzjlzz在线播放视频| 久久久久久亚洲精品无码| 男人的天堂亚洲一区二区三区| 亚洲国产中文在线二区三区免| 免费国产成人高清在线观看网站 | 久久精品亚洲视频| 日韩插啊免费视频在线观看 | 亚洲av无码一区二区三区不卡| 免费在线看黄网站| 亚洲色图.com| 在线jyzzjyzz免费视频| 美女黄色免费网站| 亚洲av综合av一区| 久久久久久99av无码免费网站 | 在线亚洲精品自拍| 久久国产精品免费看| 亚洲男女性高爱潮网站| 毛片a级毛片免费观看品善网| 亚洲av综合av一区二区三区| 亚洲精品国产成人影院| 一区二区免费视频| 亚洲中文字幕久久精品无码A| 免费一级做a爰片久久毛片潮喷| 黄桃AV无码免费一区二区三区| 亚洲黄网站wwwwww| 永久黄网站色视频免费观看| 久久精品成人免费国产片小草| 亚洲精品无码久久久久久久| 国产网站免费观看| 久久久久久免费一区二区三区| 亚洲国产视频久久| 亚洲人JIZZ日本人| 全免费a级毛片免费看不卡| 国产日韩精品无码区免费专区国产| 亚洲精品亚洲人成在线观看麻豆|