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