AS3 异步请求问题

    今天刚接触下flex,满是好奇,正好项目上需要, 顺便学习了下。当时我遇到的一个问题是flash在firefox上运行正常,但是在IE7和Safari上运行则会出现显示不正常的问题,比如我当时遇到的情况是将某条记录assign给某个人,然后这个记录应该在表格中消失(要求不要刷新页面),但实际上它并没有马上去掉,而是要重新加载这个flash的时候,这条记录才会消失不见。后来逐步跟踪才发现是因为在flex调用删除方法时,异步执行了刷新列表的方法,因为此时记录尚未删除, 导致刷新列表的方法没有起到作用。也就说要让执行‘刷新列表’的方法后才继续向下执行。 怎么才能执行这样的方法呢? 我查了相关资料,AS3.0中网络通信是通过URLLoader和URLRequest来加载外部文件, 需要三个过程来实现:

1、使用URLRequest创建通信请求对象。

2、使用通信请求对象,创建URLLoader载入对象,并发出请求的要求。

3、监听URLLoader对象,在响应完成事件后,返回要处理的数据。

因此这里把原来调用刷新列表的方法放到“删除方法”响应完成事件之后,再进行调用,这样就会避免因为删除方法还没有执行完,就执行了刷新的方法。具体的修改如下:

 

var csrListRequest:URLRequest = new URLRequest();

csrListRequest.method="GET";

csrListRequest.url = domain;// domain is the delete request url.

 

var csrListLoader:URLLoader = new URLLoader();

 

csrListLoader.addEventListener(Event.COMPLETE, function(e:Event):void

     {

          // invoke refresh functions.

     });

     csrListLoader.load(csrListRequest);

 

 

 

 

 

参考资料:

      http://edu.docin.com/product-1546330.html;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值