我有这个代码在翻转,推出和发布时激活。我用于翻转和转出工作,但发布功能没有。我正在尝试将一些带有url的字符串传递给循环中的函数。
var url1:String = "http://www.google.com";
var url2:String = "http://www.google.com";
var url3:String = "http://www.google.com";
var url4:String = "http://www.google.com";
var url5:String = "http://www.google.com";
var url6:String = "http://www.google.com";
var url7:String = "http://www.google.com";
var url8:String = "http://www.google.com";
var url9:String = "http://www.google.com";
var url10:String = "http://www.google.com";
var url11:String = "http://www.google.com";
var url12:String = "http://www.google.com";
function SetMouseAction(buttonMC, arrowMC, dynamicTF, linkURL):Void {
trace(linkURL);
buttonMC.colorText = dynamicTF;
buttonMC.onRollOver = function() {
TweenLite.to(arrowMC,0.5,{_x:"2", _alpha:50, ease:Back.easeOut});
this.colorText.textColor = 0x7cb0b7;
};
buttonMC.onRollOut = function() {
TweenLite.to(arrowMC,0.5,{_x:37, _alpha:100, ease:Back.easeOut});
this.colorText.textColor = 0xffffff;
};
buttonMC.onRelease = function() {
if (linkURL) {
getURL(linkURL);
}
};
}
for (var i:Number = 1; i<=12; i++) {
SetMouseAction(this["link"+i],this["arrow"+i],this["text"+i],url+1);
}
我强烈感觉for循环中的 url + 1 是错误的,但我不知道该怎么做。
有什么想法吗?
答案 0 :(得分:1)
将url+1
更改为this["url"+i]
这将使这段代码正常工作。但是你真的应该考虑使用一个名为url的数组,其中包含12个元素,而不是创建12个单独的变量。
答案 1 :(得分:1)
var urls:Array = new Array();
urls.push("http://link1");
...
urls.push("http://link12");
function SetMouseAction(buttonMC, arrowMC, dynamicTF, linkURL):Void {
...
}
for (var i:Number = 1; i<=12; i++) {
SetMouseAction(this["link"+i],this["arrow"+i],this["text"+i],urls[i]);
}
确保数组网址至少包含12个元素,否则您将获得超出范围的索引错误。
稍后编辑:如果你需要从flashvars中提取网址,只需使用像“,”这样的分隔符,并定义一个包含所有网址的字符串,如下所示:urlVars=url1,url2,url3,...,url12
然后,为了提取网址并将它们推送到数组中,您可以使用split函数:
var urls:Array = new Array();
for (var i=0; i<urlVars.split(",").length; i++) urls.push(urlVars.split(",")[i]);