我的聊天室開發(fā)教程(一):讀取配置文件
2004年11月27日21:45星期六 [
FMS
]
一直沒有顧上,今天開個(gè)頭,也不知道什么時(shí)候可以寫完。
如果不知道我的聊天室是什么,
看這里吧
。
今天首先講下加載聊天配置文件
加載配置文件是通過調(diào)用php文件來動(dòng)態(tài)生成XML文件,然后通過Flash本身XML對(duì)象的方法來讀取。
首先,我們要定義php文件調(diào)用路徑
1 : var PhpPath = 'chat/' ; //程序執(zhí)行路徑
并定義了配置變量的保存數(shù)組
1 : _global.Setup = new Array(); //配置數(shù)組
接下來就是讀取配置文件
1 : var myXML = new XML() ;
2 : myXML.ignoreWhite = true ;
3 : myXML.load(PhpPath + 'config.php?rand=' + Math.random());
注意使用rand參數(shù)是為了防止緩存
定義加載完成事件
1 : myXML.onLoad = function(succes){
2 : if(succes){
3 : //讀取XML 數(shù)據(jù)
4 : } else {
5 : showMsg( '配置文件讀取錯(cuò)誤!' );
6 : }
7 : }
讀取XML數(shù)據(jù)的方法
1 : var root = this.firstChild ;
2 : nodes = root.childNodes ;
3 : for(var j=0; j < nodes.length; j++)
4 : {
5 : varName = nodes[j].attributes.name;
6 : varExpr = nodes[j].attributes.expr;
7 : Setup[varName] = varExpr;//把傳遞的變量存入數(shù)組
8 : }
我定義的XML配置文件格式如下:
1 : <data >
2 : <var name='變量名稱' expr='變量值' />
3 : 。。。。。。
4 : < /data >
至于如果取得變量的值就要根據(jù)你使用的編程語言了,如果你不想動(dòng)態(tài)生成XML文件,或者覺得沒有一些變動(dòng)的參數(shù)的話,就可以直接讀取xml文件的方式,這樣就不需要WEB環(huán)境的支持,myXML.load的時(shí)候直接加載XML文件就可以了。如果使用PHP、ASP等動(dòng)態(tài)語言,請(qǐng)按照各自的方式獲取和定義變量的值。
其中的各個(gè)變量含義如下
01 : AppDirectory 應(yīng)用程序目錄
02 : MaxConnect 最大連接數(shù)
03 : UserName 用戶名
04 : UserSex 性別
05 : UserLevel 用戶級(jí)別
06 : RoomId 房間號(hào)
07 : RoomName 房間名
08 : MaxUser 房間最多用戶數(shù)
09 : WebSiteUrl 服務(wù)器地址
10 : ChatStatus 聊天狀態(tài)
你可以根據(jù)自己系統(tǒng)的需要增減參數(shù)
XML數(shù)據(jù)讀取完成后,就要開始做一些聊天室系統(tǒng)的初始化工作了,(當(dāng)然,在這里你可以加上條件判斷,如聊天狀態(tài)chatStatus的值是否為1等)。首先要做的事情是連接服務(wù)器。
1 : simpleconnect.appDirectory= 'rtmp://' + Setup[ 'WebSiteUrl' ] + '/' + Setup[ 'AppDirectory' ];
2 : simpleconnect.serverConnect(Setup[ 'UserName' ], Setup[ 'RoomId' ]);
另外,在這里可以根據(jù)配置參數(shù)來做條件判斷,如是否隱藏管理員功能
1 : if (Setup[ 'UserLevel' ]==1){
2 : clearBut._visible = true; //清屏
3 : kickBut._visible = true; //踢人
4 : banBut._visible = true; //禁止
5 : lookBut._visible = true; //查看IP
6 : }
其它方面,就是要檢測(cè)用戶的攝像頭和麥克風(fēng)是否可用
這里使用了兩個(gè)方法
checkForCam() 檢測(cè)攝像頭
checkForMic() 檢測(cè)麥克風(fēng)
具體請(qǐng)參考源文件
根據(jù)檢測(cè)情況來設(shè)置配置數(shù)組
1 : if(checkForCam()==1) Setup[ 'Camera' ]=1;
2 : else Setup[ 'Camera' ]=0;
3 : if(checkForMic()==1) Setup[ 'Mic' ]=1;
4 : else Setup[ 'Mic' ]=0;
在這個(gè)部分,你可以添加自己的條件判斷了~
現(xiàn)在讀取配置文件的工作和系統(tǒng)初始化的工作已經(jīng)完成,其實(shí)大家可以根據(jù)我的實(shí)現(xiàn)方式發(fā)揮,不要拘泥于我的代碼實(shí)現(xiàn)~