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