首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

关于监听函数,请大家帮下忙解决方案

2012-02-07 
关于监听函数,请大家帮下忙刚学AS3.0,很多地方不会,请大家帮下,在时间轴上写下:import flash.net.*var _x

关于监听函数,请大家帮下忙
刚学AS3.0,很多地方不会,请大家帮下,在时间轴上写下:
import flash.net.*;
var _xname:String;
var _yname:String;
var myloader:URLLoader=new URLLoader();
myloader.dataFormat=URLLoaderDataFormat.VARIABLES;
myloader.addEventListener(Event.COMPLETE, handleComplete);

myloader.load(new URLRequest("xxxx.txt"));

function handleComplete(event:Event):void {

//将event target 转换为URLLoader
var loader2:URLLoader = URLLoader( event.target );

_xname = loader2.data.xname;
trace(_xname);
_yname = loader2.data.yname;
trace(_yname);

}
trace("this is trace "+_xname);
trace("this is trace "+_yname);

测试得出结果为:

this is trace null
this is trace null
123
124

为什么不应该是
this is trace 123
this is trace 124
123
124

this is trace 123
this is trace 124
123
124
还有,为什么trace会在监听函数执行之前显示呢?是因为它执行快吗?监听函数里的_xname与外部的_xname是同一个变量吗?还是一个值传递?

谢谢大家!!!!

[解决办法]
flash 事件机制为异步调用 侦听的function只是作为该事件的回调函数,所以不会在代码执行中执行,所以:
第一次的trace是你最后那两句。
第二次的trace是回调函数中的。
[解决办法]
handleComplete待URLRequest请求返回后执行并不会同步等待

热点排行