最近搞了個(gè)私活,需要用as去加載一個(gè)網(wǎng)站的xml,不過本人as也不咋滴,就去看看怎么玩,看完之后也蠻簡單的。由于業(yè)務(wù)上比較復(fù)雜,就隨便說個(gè)小例子吧。很多時(shí)候,為了頁面區(qū)域更加靈活,生動(dòng),有吸引力,或多或少的都要使用flash,如果flash不能與外界進(jìn)行交換,那確實(shí)會大大限制的flash的功能,也就不好玩了,在很多網(wǎng)站上我們都能看到用flash來顯示當(dāng)前的在線用戶數(shù),或者用flash展現(xiàn)當(dāng)前的用戶參與數(shù),或者滾動(dòng)顯示當(dāng)前中獎(jiǎng)名單。由于是純教學(xué)的,所以業(yè)務(wù)非常簡單,動(dòng)態(tài)顯示當(dāng)前的用戶參與數(shù),不過好玩的地方在于很多程序拿到一個(gè)基準(zhǔn)的人數(shù)后,不再向服務(wù)器輪訓(xùn)狀態(tài),而是采用在flash上用隨機(jī)數(shù)來模擬動(dòng)態(tài)的增加和減少,用來欺騙參與者。。。
一:xml文件
這個(gè)簡單,只放置一個(gè)基準(zhǔn)的參與人數(shù):
二:請求web上xml的as代碼
var myxml:XML;
//請求web上的xml
var url="http://localhost:25212/test.xml";
var req:URLRequest=new URLRequest(url);
var loader:URLLoader=new URLLoader(req);
var lab:TextField=new TextField();
var timer:Timer=new Timer(1000);
var joinScale:int
loader.addEventListener(Event.COMPLETE,onComplete);
function onComplete(e:Event):void{
myxml=new XML(loader.data);
joinScale= myxml.joins.nums
var output="當(dāng)前參與數(shù)有: "+ joinScale
trace(output);
lab.text=output
lab.width=200;
lab.x=100;
lab.y=100;
addChild(lab);
timer.addEventListener(TimerEvent.TIMER,setText);
timer.start();
}
function setText(e:TimerEvent){
//為了適應(yīng)有增加有減少
joinScale=joinScale+(10*Math.random())-3
lab.text="當(dāng)前參與數(shù)有: "+ joinScale
}
這里面用了UrlLoader來加載UrlRequest請求的結(jié)果,在拿到xml的結(jié)果后,用timer控件產(chǎn)生隨機(jī)數(shù)來模擬用戶動(dòng)態(tài)參與情況,
大家運(yùn)行示例后可以看到一個(gè)會變動(dòng)的數(shù)字
新聞熱點(diǎn)
疑難解答