我希望通过为几行代码创建循环来节省代码。让我解释一下,没有循环:
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"));
}
欢迎任何想法......
答案 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] ));
}
这使您可以随心所欲地调用图标对象,以及任何您喜欢的实际图标图形。
答案 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"));
}