【发布时间】:2015-03-12 18:09:08
【问题描述】:
我是 AS3 的新手。基本上我有一个由 98 个 UILoaders 组成的网格,每个 UILoaders 都基于 XML 文件抓取一个图像。与其写出 98 行代码,有没有一种简单的方法可以每次用不同的数字重复它?
function loadworld() {
var xmlData:XML = new XML();
var theURL_ur:URLRequest = new URLRequest("imagepos.xml" + "#lawl=" + (Math.random() * 1000));
var loader_ul:URLLoader = new URLLoader(theURL_ur);
loader_ul.addEventListener("complete", fileLoaded);
function fileLoaded(e:Event):void
{
xmlData = XML(loader_ul.data);
if (t88.source == xmlData.t88) { } else { t88.source = xmlData.t88; };
if (t89.source == xmlData.t89) { } else { t89.source = xmlData.t89; };
if (t90.source == xmlData.t90) { } else { t90.source = xmlData.t90; };
loadworld();
}
}
从代码中可以看出,数字始终相同,所以我只需从 1 到 98 重复 98 次。
我在尝试记录所有 98 个 UILoader 上的鼠标点击时也遇到了同样的问题:
this.t88.addEventListener(MouseEvent.CLICK, function (){
pi1(88);
});
t88 表示 tile 88 或 UILoader88 我需要它来激活功能pi1(88),然后t89 需要激活pi1(89) 等。
【问题讨论】:
-
为什么在xml文件中用不同的数字来区分呢?它们是按特定顺序排列的,还是您只是想加载图像列表并将它们显示在网格中?
-
是的,xml 会随着网格需要加载的不同图像而不断变化,因此它首先检查图像是否相同。 "if (t88.soruce == xmlData.t88)" 那么它会改变 UILoader,需要这样做 98 次
-
@Callum 您是否尝试过使用数组来放置图块,然后您可以使用 for 循环来执行所有操作?
-
我不确定如何使用数组并在每个循环中更改数字?
标签: xml actionscript-3 flash loops variables