AS與.net的互動——載入web上的xml

一線碼農發表於2014-03-17

 

  最近搞了個私活,需要用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控制元件產生隨機數來模擬使用者動態參與情況,

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

 

 

相關文章