最近搞了個私活,需要用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控件產生隨機數來模擬用戶動態參與情況,
下面這個圖片的數字是動態的。

本欄目