flash相册随机不间断调用外部图片

来源:百度知道 编辑:UC知道 时间:2024/07/02 17:44:30
这原先是一个固定的图片显示次序,按照XML。但现在客户想让图片随机的出现,请问各位大侠有办法吗?
主要代码:
第一帧:stop();
_global.images = [];
_global.startpos;
_global.endpos;
_global.loops;
_global.totalimg;
_global.endloops;

function loadXML(loaded) {
if (loaded) {
xmlNode = this.firstChild;
_global.totalimg = xmlNode.childNodes.length;
_global.endloops = Math.ceil(_global.totalimg/18);
trace(Math.ceil(_global.endloops)+"........")
for (j=0; j<totalimg; j++) {
_global.images[j] = xmlNode.childNodes[j].childNodes[0].firstChild.nodeValue;
}
gotoAndStop(100);
}
}

xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("xml/homeimages.xml");

另外一段:
trace("start pos: "+_global.startpos);
trace("End pos: "+_global.endpos);
trace("Loop: "+_global.loops);

for (p=_global.startpo

AllArray.sort(function () {
return Math.round(Math.random()) ? -1 : 1;
});
这段经典的程序可以把一个数组(以上是AllArray)随机打乱次序。
例如:

数组 1 2 3 4
那么经过打乱后可能出现: 2 3 1 4之类之类的结果。
然后重新加入 数组。
=============================
有了上面的这段程序就不难解决问题了。
只要把你从XML上获取的每个元素加入一个数组中(假设为ImgArray),然后修改下这段循环获取代码:

ImgArray = new Array()

for (j=0; j<totalimg; j++) {
_global.images[j] = xmlNode.childNodes[j].childNodes[0].firstChild.nodeValue;

// 加入以下语句
ImgArray.push(_global.images[j])
}

ImgArray.sort(function () {
return Math.round(Math.random()) ? -1 : 1;
});
trace(ImgArray); //测试是否成功打乱

接下来如何将打乱好的数组利用起来就不用多说了吧?
随机的目的已经达到了。 HI我留言