发新话题
打印

[求救] 数组.循环问题..............- -!

数组.循环问题..............- -!

var url = new Array("cn/d/d_1.shtml","cn/d/d_2.shtml","cn/d/d_3.shtml","cn/d/d_4.shtml");
for(i=1;4>=i;i++){
this["l"+i].onRelease =function() {
getURL(url[i-1], "_blank");
trace(url[i-1]);
}
}


为什么这样写不行了!~??  谁来帮我下.谢谢!~

TOP

应该是:
for(i=1;i<=4;i++){
......
}

TOP

.非常谢谢你!
但 连接那里怎么还没连上去呢?

[ 本帖最后由 Ken. 于 2008-4-29 11:43 编辑 ]

TOP

getURL(this._parent.url[i-1], "_blank");
水星

TOP

谢谢你!
getURL(this._parent.url[i-1], "_blank");
这样写也是undefined...........

TOP

因为你是在for循环里,i值会是循环后的最大值.你可以trace(i)看看就知道了.
这样解决:
var num = Number(this._name.split("l")[1]);
getURL(url[num], "_blank");

TOP

复制内容到剪贴板
代码:
var url = new Array("cn/d/d_1.shtml", "cn/d/d_2.shtml", "cn/d/d_3.shtml", "cn/d/d_4.shtml");
for (i=1; 4>=i; i++) {
        this["l"+i]._link = url[i-1];//这个时候就让按钮记住,各自要跳转的页面地址
        this["l"+i].onRelease = function() {
                getURL(this._link, "_blank");
        };
}

TOP

非常谢谢各位.很清晰.这里热心人士真多.谢谢!
楼上2位的方法都记住了!.都能用上!

[ 本帖最后由 Ken. 于 2008-4-29 20:02 编辑 ]

TOP

以上各位说的都对。楼主的错误表现在两方面:
1、for语句只能看到最后输出的那个结果;对于此例不合适;
2、没有专门的数组来定义按钮的名字。
我是这样做的。
var url = new Array("http://space.flash8.net/bbs/thread-353815-1-1.html", "http://space.flash8.net/bbs/redirect.php?fid=10&tid=353815&goto=nextnewset", "http://space.flash8.net/bbs/thread-353556-1-1.html");
var btn = new Array(btn1, btn2, btn3);
i = 0;
onEnterFrame = function () {
        if (i<3) {
                btn.onRelease = function() {
                        getURL(url, _blank);
                        i++;
                };
        }
};
效果不错。

TOP

补充一点:上面代码中应该是btn.on......复制 时不知道怎么没有了。

TOP

谢谢楼上的.又学习了!

TOP

9楼的说法严重错误!
引用:
原帖由 梦花 于 2008-4-30 07:34 发表
以上各位说的都对。楼主的错误表现在两方面:
1、for语句只能看到最后输出的那个结果;对于此例不合适;
2、没有专门的数组来定义按钮的名字。
我是这样做的。
var url = new Array("http://space.flash8.net/bbs/thread-353815-1-1.html", "http://space.flash8.net/bbs/redirect.php?fid=10&tid=353815&goto=nextnewset", "http://space.flash8.net/bbs/thread-353556-1-1.html");
var btn = new Array(btn1, btn2, btn3);
i = 0;
onEnterFrame = function () {
        if (i<3) {
                btn.onRelease = function() {
                        getURL(url, _blank);
                        i++;
                };
        }
};
效果不错。
复制内容到剪贴板
代码:
onEnterFrame = function () {//这里用onEnterFrame完全没有必要。用for才是对的。
if (i<3) {
  btn[i].onRelease = function() {
   getURL(url[i], _blank);
   i++;//点击一次,i++,这样一来,三个按钮没有分别了,你点同一个按钮,3次,得到3个链接,而且点第4次及以上时,链接为空了。而且这样写,第一次只能点击第一个按钮才有效,因为些时i值为0,只有btn数组中的第一个元素才被赋予了点击事件  };
}
};

TOP

发新话题