Flash AS3用于循环查询

时间:2010-01-21 16:31:12

标签: flash actionscript-3 for-loop

我希望通过为几行代码创建循环来节省代码。让我解释一下,没有循环:

icon1.button.iconLoad.load(new URLRequest("icons/icon1.jpg"));
icon2.button.iconLoad.load(new URLRequest("icons/icon2.jpg"));
icon3.button.iconLoad.load(new URLRequest("icons/icon3.jpg"));
icon4.button.iconLoad.load(new URLRequest("icons/icon4.jpg"));
等等......但是我可以使用循环来实现:

for (var i:uint = 0; i < 4; i++) {  
    icon+i+.button.iconLoad.load(new URLRequest("icons/icon"+i+"jpg"));
}

欢迎任何想法......

3 个答案:

答案 0 :(得分:2)

在AS2中它会是这样的:

for (var i = 1; i <= 4; i++) {  
    this["icon"+i].button.iconLoad.load(new URLRequest("icons/icon"+i+".jpg"));
}

答案 1 :(得分:1)

我会做这样的事情:

import flash.utils.Dictionary;

var iconDict:Dictionary = new Dictionary();
iconDict[icon1] = "icons/icon1.jpg";
iconDict[icon2] = "icons/icon2.jpg";
iconDict[icon3] = "icons/icon3.jpg";
iconDict[icon4] = "icons/icon4.jpg";

for (key:Object in iconDict)
{
    key.button.iconLoad.load(new URLRequest( iconDict[key] ));
}

这使您可以随心所欲地调用图标对象,以及任何您喜欢的实际图标图形。

There is some documentation on Dictionary here.

答案 2 :(得分:0)

如果这些图标已经是包含您正在编写的代码的对象的子代,并且已使用Flash IDE设置了它们的实例名称,则可以执行此操作。

var icon_count:int = 4;
for(var i:int = 0; i < icon_count; ++i)
{
    getChildByName("icon" + i).button.iconLoad.load(new URLRequest("icons/icon" + i + ".jpg"));
}