AS與.net的交互——加載web上的xml


 

  最近搞了個私活,需要用as去加載一個網站的xml,不過本人as也不咋滴,就去看看怎么玩,看完之后也蠻簡單的。

由於業務上比較復雜,就隨便說個小例子吧。

     很多時候,為了頁面區域更加靈活,生動,有吸引力,或多或少的都要使用flash,如果flash不能與外界進行交換,那

確實會大大限制的flash的功能,也就不好玩了,在很多網站上我們都能看到用flash來顯示當前的在線用戶數,或者用flash

展現當前的用戶參與數,或者滾動顯示當前中獎名單。

    由於是純教學的,所以業務非常簡單,動態顯示當前的用戶參與數,不過好玩的地方在於很多程序拿到一個基准的人數后,

不再向服務器輪訓狀態,而是采用在flash上用隨機數來模擬動態的增加和減少,用來欺騙參與者。。。

 

一:xml文件

    這個簡單,只放置一個基准的參與人數:

<?xml version="1.0" encoding="utf-8" ?>
<project>
  <joins>
    <nums>20</nums>
  </joins>
</project>


二:請求web上xml的as代碼

import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.text.TextField;
import flash.utils.Timer;
import flash.events.TimerEvent;

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="當前參與數有: "+ 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){
    
    //為了適應有增加有減少
    joinScale=joinScale+(10*Math.random())-3
     
    lab.text="當前參與數有: "+ joinScale
    
}


這里面用了UrlLoader來加載UrlRequest請求的結果,在拿到xml的結果后,用timer控件產生隨機數來模擬用戶動態參與情況,

下面這個圖片的數字是動態的。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM