Flash 读入xml文件,连接地址总是最后一个?解决思路
Flash 读入xml文件,连接地址总是最后一个?
主要问题在注释哪里,请问怎么解决,谢谢谢谢
MsgList.ignoreWhite = true;
MsgList.load( "flashhome.php ");
MsgList.onLoad = function(success) {
if (success) {
loading.removeMovieClip();
forumslist();
} else {
loading.guide_title = "xml数据载入错误... ";
}
};
arr_guide=new Array();
//listfor
function forumslist() {
//导读展示
guide = MsgList.firstChild.childNodes[3].childNodes;
for (var i = 0; i <guide.length; i++) {
arr_guide[i] = new Object();
arr_guide[i].strname = guide[i].attributes.fname;
arr_guide[i].strnum = guide[i].attributes.fnum;
arr_guide[i].strurl = guide[i].attributes.furl;
}
for (var i = 0; i <arr_guide.length; i++) {
this.attachMovie( "fumone ", "list "+i, 5+i);
var item = eval( "list "+i);
item._y = 44+23*i;
item._x = 20;
item.fum_tag = i+1;
item.fum_name = arr_guide[i].strname;
item.fum_num = arr_guide[i].strnum;
//就是这里的问题,url总是最后一条,前面的显示都是正常的点击trace出来都总是最后一个
iurl=arr_guide[i].strurl;
item.onRelease = function() {
trace(iurl);
};
}
}
------解决方案--------------------
因为在循环的最后,iurl就变成了最后一条地址。而item的onRelease函数执行时是trace(iurl),所以总是trace最后一条。
解决办法是:
iurl=arr_guide[i].strurl;
item.iurl=iurl;
item.onRelease = function() {
trace(this.iurl);
};
------解决方案--------------------
楼上正解。
主要问题在注释哪里,请问怎么解决,谢谢谢谢
MsgList.ignoreWhite = true;
MsgList.load( "flashhome.php ");
MsgList.onLoad = function(success) {
if (success) {
loading.removeMovieClip();
forumslist();
} else {
loading.guide_title = "xml数据载入错误... ";
}
};
arr_guide=new Array();
//listfor
function forumslist() {
//导读展示
guide = MsgList.firstChild.childNodes[3].childNodes;
for (var i = 0; i <guide.length; i++) {
arr_guide[i] = new Object();
arr_guide[i].strname = guide[i].attributes.fname;
arr_guide[i].strnum = guide[i].attributes.fnum;
arr_guide[i].strurl = guide[i].attributes.furl;
}
for (var i = 0; i <arr_guide.length; i++) {
this.attachMovie( "fumone ", "list "+i, 5+i);
var item = eval( "list "+i);
item._y = 44+23*i;
item._x = 20;
item.fum_tag = i+1;
item.fum_name = arr_guide[i].strname;
item.fum_num = arr_guide[i].strnum;
//就是这里的问题,url总是最后一条,前面的显示都是正常的点击trace出来都总是最后一个
iurl=arr_guide[i].strurl;
item.onRelease = function() {
trace(iurl);
};
}
}
------解决方案--------------------
因为在循环的最后,iurl就变成了最后一条地址。而item的onRelease函数执行时是trace(iurl),所以总是trace最后一条。
解决办法是:
iurl=arr_guide[i].strurl;
item.iurl=iurl;
item.onRelease = function() {
trace(this.iurl);
};
------解决方案--------------------
楼上正解。