文章出處

 

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

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

 

 


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()