首页 > 办公 > Flash > 正文

使用as加载xml的示例

2024-09-12 17:51:32
字体:
来源:转载
供稿:网友

最近搞了个私活,需要用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控件产生随机数来模拟用户动态参与情况,

大家运行示例后可以看到一个会变动的数字

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表